From 868fa35f1fac7557eedca7f2b8daf7a2b0d2a8ff Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 30 Oct 2020 09:46:53 +0100 Subject: [PATCH 1/4] Only run phpunit when php, xml or test files are modified Signed-off-by: Joas Schilling --- .drone.yml | 17 +++++++++++++++++ tests/drone-run-integration-tests.sh | 2 ++ tests/drone-run-php-tests.sh | 19 +++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100755 tests/drone-run-php-tests.sh diff --git a/.drone.yml b/.drone.yml index e0671a050a592..1c30ff8d0f1b5 100644 --- a/.drone.yml +++ b/.drone.yml @@ -334,10 +334,12 @@ steps: - name: nodb-php7.3 image: nextcloudci/php7.3:php7.3-4 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite - name: nodb-php7.4 image: nextcloudci/php7.4:2 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite services: @@ -368,10 +370,12 @@ steps: - name: sqlite-php7.3 image: nextcloudci/php7.3:php7.3-4 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite - name: sqlite-php7.4 image: nextcloudci/php7.4:2 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite services: @@ -398,6 +402,7 @@ steps: - name: mariadb10.1-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb services: @@ -433,6 +438,7 @@ steps: - name: mariadb10.2-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb services: @@ -467,6 +473,7 @@ steps: - name: mariadb10.3-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb services: @@ -501,6 +508,7 @@ steps: - name: mariadb10.4-php7.3 image: nextcloudci/php7.3:php7.3-4 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb services: @@ -536,6 +544,7 @@ steps: - name: mysql-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql services: @@ -572,6 +581,7 @@ steps: - name: mysql-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql services: @@ -604,6 +614,7 @@ steps: - name: mysql-php7.3 image: nextcloudci/php7.3:php7.3-4 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql services: @@ -636,6 +647,7 @@ steps: - name: mysql5.6-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql services: @@ -670,6 +682,7 @@ steps: - name: postgres-php7.3 image: nextcloudci/php7.3:php7.3-4 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - sleep 10 # gives the database enough time to initialize - POSTGRES=9 NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh pgsql @@ -705,6 +718,7 @@ steps: - name: postgres-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - sleep 10 # gives the database enough time to initialize - POSTGRES=10 NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh pgsql @@ -739,6 +753,7 @@ steps: - name: postgres-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - sleep 10 # gives the database enough time to initialize - POSTGRES=11 NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh pgsql @@ -774,6 +789,7 @@ steps: - name: mysqlmb4-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysqlmb4 services: @@ -809,6 +825,7 @@ steps: - name: mysqlmb4-php7.3 image: nextcloudci/php7.3:php7.3-4 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysqlmb4 services: diff --git a/tests/drone-run-integration-tests.sh b/tests/drone-run-integration-tests.sh index 9da224ccbad1e..605e1eb356bb5 100755 --- a/tests/drone-run-integration-tests.sh +++ b/tests/drone-run-integration-tests.sh @@ -8,6 +8,8 @@ echo "=========================" [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | wc -l) -eq 0 ]] && echo "No files are modified => merge commit" && exit 0 +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".xml") -gt 0 ]] && echo "info.xml files are modified" && exit 0 + [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".php$") -gt 0 ]] && echo "PHP files are modified" && exit 0 [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c "^build/integration/") -gt 0 ]] && echo "Integration test files are modified" && exit 0 diff --git a/tests/drone-run-php-tests.sh b/tests/drone-run-php-tests.sh new file mode 100755 index 0000000000000..9552141adcb05 --- /dev/null +++ b/tests/drone-run-php-tests.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +echo "=========================" +echo "= List of changed files =" +echo "=========================" +git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA +echo "=========================" + +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | wc -l) -eq 0 ]] && echo "No files are modified => merge commit" && exit 0 + +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".xml") -gt 0 ]] && echo "info.xml files are modified" && exit 0 + +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".php$") -gt 0 ]] && echo "PHP files are modified" && exit 0 + +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c "^tests/") -gt 0 ]] && echo "PHP test files are modified" && exit 0 + +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c "/tests/") -gt 0 ]] && echo "PHP test files of an app are modified" && exit 0 + +exit 1 From e5ec578d0166cfc6336ceb9f7eb99052d2d0bde6 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 30 Oct 2020 09:47:27 +0100 Subject: [PATCH 2/4] Also run all tests when drone config is modified Signed-off-by: Joas Schilling --- tests/drone-run-integration-tests.sh | 2 ++ tests/drone-run-php-tests.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/drone-run-integration-tests.sh b/tests/drone-run-integration-tests.sh index 605e1eb356bb5..9b610d01721cd 100755 --- a/tests/drone-run-integration-tests.sh +++ b/tests/drone-run-integration-tests.sh @@ -8,6 +8,8 @@ echo "=========================" [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | wc -l) -eq 0 ]] && echo "No files are modified => merge commit" && exit 0 +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".yml") -gt 0 ]] && echo "YML files are modified" && exit 0 + [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".xml") -gt 0 ]] && echo "info.xml files are modified" && exit 0 [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".php$") -gt 0 ]] && echo "PHP files are modified" && exit 0 diff --git a/tests/drone-run-php-tests.sh b/tests/drone-run-php-tests.sh index 9552141adcb05..0a215f7bf3bee 100755 --- a/tests/drone-run-php-tests.sh +++ b/tests/drone-run-php-tests.sh @@ -8,6 +8,8 @@ echo "=========================" [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | wc -l) -eq 0 ]] && echo "No files are modified => merge commit" && exit 0 +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".yml") -gt 0 ]] && echo "YML files are modified" && exit 0 + [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".xml") -gt 0 ]] && echo "info.xml files are modified" && exit 0 [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".php$") -gt 0 ]] && echo "PHP files are modified" && exit 0 From 83b78f6b7debcf0c87582eaef0f14a9b5b40ed32 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 30 Oct 2020 10:30:50 +0100 Subject: [PATCH 3/4] Also run for .sh and .json (when not package or package-lock) Signed-off-by: Joas Schilling --- tests/drone-run-integration-tests.sh | 4 ++++ tests/drone-run-php-tests.sh | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/tests/drone-run-integration-tests.sh b/tests/drone-run-integration-tests.sh index 9b610d01721cd..af3c7a895c836 100755 --- a/tests/drone-run-integration-tests.sh +++ b/tests/drone-run-integration-tests.sh @@ -8,6 +8,10 @@ echo "=========================" [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | wc -l) -eq 0 ]] && echo "No files are modified => merge commit" && exit 0 +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep ".json" | grep -v "package.json" | grep -c -v "package-lock.json") -gt 0 ]] && echo "JSON files are modified" && exit 0 + +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".sh") -gt 0 ]] && echo "bash files are modified" && exit 0 + [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".yml") -gt 0 ]] && echo "YML files are modified" && exit 0 [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".xml") -gt 0 ]] && echo "info.xml files are modified" && exit 0 diff --git a/tests/drone-run-php-tests.sh b/tests/drone-run-php-tests.sh index 0a215f7bf3bee..c51117a21d287 100755 --- a/tests/drone-run-php-tests.sh +++ b/tests/drone-run-php-tests.sh @@ -8,6 +8,10 @@ echo "=========================" [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | wc -l) -eq 0 ]] && echo "No files are modified => merge commit" && exit 0 +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep ".json" | grep -v "package.json" | grep -c -v "package-lock.json") -gt 0 ]] && echo "JSON files are modified" && exit 0 + +[[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".sh") -gt 0 ]] && echo "bash files are modified" && exit 0 + [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".yml") -gt 0 ]] && echo "YML files are modified" && exit 0 [[ $(git diff --name-only origin/$DRONE_TARGET_BRANCH...$DRONE_COMMIT_SHA | grep -c ".xml") -gt 0 ]] && echo "info.xml files are modified" && exit 0 From 694cad116283b5c0744c40f32d0bdf2f4dfcd426 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 30 Oct 2020 13:35:42 +0100 Subject: [PATCH 4/4] Add script to old versions Signed-off-by: Morris Jobke --- .drone.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.drone.yml b/.drone.yml index 1c30ff8d0f1b5..e586113864851 100644 --- a/.drone.yml +++ b/.drone.yml @@ -330,6 +330,7 @@ steps: - name: nodb-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite - name: nodb-php7.3 image: nextcloudci/php7.3:php7.3-4 @@ -366,6 +367,7 @@ steps: - name: sqlite-php7.2 image: nextcloudci/php7.2:php7.2-13 commands: + - bash tests/drone-run-php-tests.sh || exit 0 - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite - name: sqlite-php7.3 image: nextcloudci/php7.3:php7.3-4