aboutsummaryrefslogtreecommitdiffstats
path: root/build/integration/run.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build/integration/run.sh')
-rwxr-xr-xbuild/integration/run.sh91
1 files changed, 80 insertions, 11 deletions
diff --git a/build/integration/run.sh b/build/integration/run.sh
index 5a222bda3e3..30dd0646b10 100755
--- a/build/integration/run.sh
+++ b/build/integration/run.sh
@@ -1,38 +1,107 @@
#!/usr/bin/env bash
+#
+# SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+# SPDX-FileCopyrightText: 2015-2016 ownCloud, Inc.
+# SPDX-License-Identifier: AGPL-3.0-only
+#
+OC_PATH=../../
+OCC=${OC_PATH}occ
+TAGS=""
+if [ "$1" = "--tags" ]; then
+ TAGS="--tags=$2"
-composer install
-
+ shift 2
+fi
SCENARIO_TO_RUN=$1
HIDE_OC_LOGS=$2
+INSTALLED=$($OCC status | grep installed: | cut -d " " -f 5)
+
+if [ "$INSTALLED" == "true" ]; then
+ # Disable appstore to avoid spamming from CI
+ $OCC config:system:set appstoreenabled --value=false --type=boolean
+ # Disable bruteforce protection because the integration tests do trigger them
+ $OCC config:system:set auth.bruteforce.protection.enabled --value false --type bool
+ # Disable rate limit protection because the integration tests do trigger them
+ $OCC config:system:set ratelimit.protection.enabled --value false --type bool
+ # Allow local remote urls otherwise we can not share
+ $OCC config:system:set allow_local_remote_servers --value true --type bool
+ # Allow self signed certificates
+ $OCC config:system:set sharing.federation.allowSelfSignedCertificates --value true --type bool
+ # Allow creating users with dummy passwords
+ $OCC app:disable password_policy
+else
+ if [ "$SCENARIO_TO_RUN" != "setup_features/setup.feature" ]; then
+ echo "Nextcloud instance needs to be installed" >&2
+ exit 1
+ fi
+fi
+NC_DATADIR=$($OCC config:system:get datadirectory)
+
+composer install
+
# avoid port collision on jenkins - use $EXECUTOR_NUMBER
if [ -z "$EXECUTOR_NUMBER" ]; then
EXECUTOR_NUMBER=0
fi
PORT=$((8080 + $EXECUTOR_NUMBER))
echo $PORT
-php -S localhost:$PORT -t ../.. &
+export PORT
+
+echo "" > "${NC_DATADIR}/nextcloud.log"
+echo "" > phpserver.log
+
+PHP_CLI_SERVER_WORKERS=2 php -S localhost:$PORT -t ../.. &> phpserver.log &
PHPPID=$!
echo $PHPPID
+# Output filtered php server logs
+tail -f phpserver.log | grep --line-buffered -v -E ":[0-9]+ Accepted$" | grep --line-buffered -v -E ":[0-9]+ Closing$" &
+LOGPID=$!
+echo $LOGPID
+
+function cleanup() {
+ kill $PHPPID
+ kill $LOGPID
+}
+trap cleanup EXIT
+
+# The federated server is started and stopped by the tests themselves
PORT_FED=$((8180 + $EXECUTOR_NUMBER))
echo $PORT_FED
-php -S localhost:$PORT_FED -t ../.. &
-PHPPID_FED=$!
-echo $PHPPID_FED
+export PORT_FED
export TEST_SERVER_URL="http://localhost:$PORT/ocs/"
export TEST_SERVER_FED_URL="http://localhost:$PORT_FED/ocs/"
-vendor/bin/behat -f junit -f pretty $SCENARIO_TO_RUN
+if [ "$INSTALLED" == "true" ]; then
+
+ #Enable external storage app
+ $OCC app:enable files_external user_ldap
+
+ mkdir -p work/local_storage
+ OUTPUT_CREATE_STORAGE=`$OCC files_external:create local_storage local null::null -c datadir=$PWD/work/local_storage`
+
+ ID_STORAGE=`echo $OUTPUT_CREATE_STORAGE | tr ' ' '\n' | tail -n1`
+
+ $OCC files_external:option $ID_STORAGE enable_sharing true
+
+fi
+
+vendor/bin/behat --strict --colors -f junit -f pretty $TAGS $SCENARIO_TO_RUN
RESULT=$?
-kill $PHPPID
-kill $PHPPID_FED
+if [ "$INSTALLED" == "true" ]; then
+
+ $OCC files_external:delete -y $ID_STORAGE
+
+ #Disable external storage app
+ $OCC app:disable files_external user_ldap
+fi
if [ -z $HIDE_OC_LOGS ]; then
- tail "../../data/owncloud.log"
+ tail "${NC_DATADIR}/nextcloud.log"
fi
+echo "runsh: Exit code: $RESULT"
exit $RESULT
-