diff --git a/.drone.yml b/.drone.yml
index cadcc0d45a9061e48293fc48633884fd4ce83ec4..aa718998203d54df88503c6ccb709f60a919bcc5 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -249,14 +249,17 @@ steps:
 - name: nodb-php7.3
   image: nextcloudci/php7.3:latest
   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:latest
   commands:
+    - bash tests/drone-run-php-tests.sh || exit 0
     - NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite
 #- name: nodb-php8.0
 #  image: nextcloudci/php8.0:latest
 #  commands:
+#    - bash tests/drone-run-php-tests.sh || exit 0
 #    - NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite
 
 services:
@@ -283,14 +286,17 @@ steps:
 - name: sqlite-php7.3
   image: nextcloudci/php7.3:latest
   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:latest
   commands:
+    - bash tests/drone-run-php-tests.sh || exit 0
     - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite
 #- name: sqlite-php8.0
 #  image: nextcloudci/php8.0:latest
 #  commands:
+#    - bash tests/drone-run-php-tests.sh || exit 0
 #    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite
 
 services:
@@ -317,6 +323,7 @@ steps:
 - name: mariadb10.1-php7.3
   image: nextcloudci/php7.3:latest
   commands:
+    - bash tests/drone-run-php-tests.sh || exit 0
     - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb
 
 services:
@@ -352,6 +359,7 @@ steps:
 - name: mariadb10.2-php7.3
   image: nextcloudci/php7.3:latest
   commands:
+    - bash tests/drone-run-php-tests.sh || exit 0
     - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb
 
 services:
@@ -386,6 +394,7 @@ steps:
 - name: mariadb10.3-php7.3
   image: nextcloudci/php7.3:latest
   commands:
+    - bash tests/drone-run-php-tests.sh || exit 0
     - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb
 
 services:
@@ -421,10 +430,12 @@ steps:
 - name: mariadb10.4-php7.4
   image: nextcloudci/php7.4:latest
   commands:
+    - bash tests/drone-run-php-tests.sh || exit 0
     - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb
 #- name: mariadb10.4-php8.0
 #  image: nextcloudci/php8.0:latest
 #  commands:
+#    - bash tests/drone-run-php-tests.sh || exit 0
 #    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb
 
 services:
@@ -460,6 +471,7 @@ steps:
 - name: mysql-php7.4
   image: nextcloudci/php7.4:latest
   commands:
+    - bash tests/drone-run-php-tests.sh || exit 0
     - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql
 
 services:
@@ -496,6 +508,7 @@ steps:
 - name: mysql-php7.4
   image: nextcloudci/php7.4:latest
   commands:
+    - bash tests/drone-run-php-tests.sh || exit 0
     - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql
 
 services:
@@ -528,6 +541,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:
@@ -560,6 +574,7 @@ steps:
 - name: mysql5.6-php7.3
   image: nextcloudci/php7.3:latest
   commands:
+    - bash tests/drone-run-php-tests.sh || exit 0
     - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql
 
 services:
@@ -594,6 +609,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
 
@@ -629,6 +645,7 @@ steps:
 - name: postgres-php7.3
   image: nextcloudci/php7.3:latest
   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
 
@@ -663,6 +680,7 @@ steps:
 - name: postgres-php7.4
   image: nextcloudci/php7.4:latest
   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
 
@@ -699,10 +717,12 @@ steps:
 - name: mysqlmb4-php7.4
   image: nextcloudci/php7.4:latest
   commands:
+    - bash tests/drone-run-php-tests.sh || exit 0
     - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysqlmb4
 #- name: mysqlmb4-php8.0
 #  image: nextcloudci/php8.0:latest
 #  commands:
+#    - bash tests/drone-run-php-tests.sh || exit 0
 #    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysqlmb4
 
 services:
@@ -738,6 +758,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 9da224ccbad1e31eb71673a4061e06b021418ddd..af3c7a895c836d00af0affb2b004e3f82ead44ab 100755
--- a/tests/drone-run-integration-tests.sh
+++ b/tests/drone-run-integration-tests.sh
@@ -8,6 +8,14 @@ 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
+
 [[ $(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 0000000000000000000000000000000000000000..c51117a21d28715d510047a89d4bd059d1186ca5
--- /dev/null
+++ b/tests/drone-run-php-tests.sh
@@ -0,0 +1,25 @@
+#!/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 ".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
+
+[[ $(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