From fa54fbc0dd4724bb278ae115cf06a542b82da419 Mon Sep 17 00:00:00 2001 From: Phillip Davis Date: Tue, 16 Jun 2026 20:08:14 +0930 Subject: [PATCH 1/5] chore(ci): reduce other test workflows so that we do not block the workflow runners while trying to get the webUI tests to run in CI. --- .github/workflows/ci.yml | 9 +-------- .github/workflows/php-unit.yml | 6 ------ 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6c872b72a05..06cce25b3c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,7 +45,6 @@ jobs: acceptance-api-smoke: if: ${{ !contains(github.event.pull_request.title, 'full-ci') }} name: API Smoke Tests - needs: [semantic-git-messages, php-unit, calens] uses: ./.github/workflows/acceptance.yml with: do-api-tests: true @@ -54,12 +53,7 @@ jobs: additional-app: 'notifications' additional-packages: 'imagemagick' filter-tags: '@smokeTest' - test-suites: "[ - 'apiAuth,apiAuthOcs,apiAuthWebDav,apiCapabilities,apiComments,apiFavorites,apiFederationToRoot1,apiFederationToRoot2,apiFederationToShares1,apiFederationToShares2,apiMain', - 'apiProvisioning-v1,apiProvisioning-v2,apiProvisioningGroups-v1,apiProvisioningGroups-v2,apiShareCreateSpecialToRoot1,apiShareCreateSpecialToRoot2,apiShareCreateSpecialToShares1,apiShareCreateSpecialToShares2,apiSharees,apiShareManagementBasicToRoot,apiShareManagementBasicToShares', - 'apiShareManagementToRoot,apiShareManagementToShares,apiShareOperationsToRoot1,apiShareOperationsToRoot2,apiShareOperationsToShares1,apiShareOperationsToShares2,apiSharePublicLink1,apiSharePublicLink2,apiSharePublicLink3,apiShareReshareToRoot1,apiShareReshareToRoot2,apiShareReshareToRoot3', - 'apiShareReshareToShares1,apiShareReshareToShares2,apiShareReshareToShares3,apiShareUpdateToRoot,apiShareUpdateToShares,apiSharingNotificationsToRoot,apiSharingNotificationsToShares,apiTags,apiTranslation,apiTrashbin,apiTrashbinRestore,apiVersions,apiWebdavDelete,apiWebdavEtagPropagation1,apiWebdavEtagPropagation2,apiWebdavLocks', - 'apiWebdavLocks2,apiWebdavLocks3,apiWebdavLocksUnlock,apiWebdavMove1,apiWebdavMove2,apiWebdavOperations,apiWebdavPreviews,apiWebdavProperties1,apiWebdavProperties2,apiWebdavUpload1,apiWebdavUpload2,apiWebdavUploadTUS']" + test-suites: "['apiComments']" acceptance-api: if: contains(github.event.pull_request.title, 'full-ci') @@ -130,7 +124,6 @@ jobs: acceptance-cli-smoke: if: ${{ !contains(github.event.pull_request.title, 'full-ci') }} name: CLI Smoke Tests - needs: [semantic-git-messages, php-unit, calens] uses: ./.github/workflows/acceptance.yml with: do-cli-tests: true diff --git a/.github/workflows/php-unit.yml b/.github/workflows/php-unit.yml index efc53e1dfd2..59dd65d1cc1 100644 --- a/.github/workflows/php-unit.yml +++ b/.github/workflows/php-unit.yml @@ -19,14 +19,8 @@ jobs: php: ${{ fromJSON(inputs.php-versions) }} database: [sqlite] include: - - php: "8.3" - database: "mysql:8.0" - - php: "8.3" - database: "mariadb:10.6" - php: "8.3" database: "mariadb:10.11" - - php: "8.3" - database: "postgres:10.21" services: mysql: From 2e5f551b83939d0042fd06c0d7ea0c0fa845435e Mon Sep 17 00:00:00 2001 From: Phillip Davis Date: Tue, 16 Jun 2026 20:12:45 +0930 Subject: [PATCH 2/5] chore(ci): run webUILogin acceptance test suite in CI --- .github/workflows/ci.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06cce25b3c3..f21c59e2bd6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -151,3 +151,12 @@ jobs: use-email-server: true server-folder: 'server' test-suites: "['cliProvisioning']" + + acceptance-webui: + name: WebUI Tests + uses: ./.github/workflows/acceptance.yml + with: + do-webui-tests: true + use-email-server: true + server-folder: 'server' + test-suites: "['webUILogin']" From fd8a708259cd60b2feb1338bdd50deaaac953484 Mon Sep 17 00:00:00 2001 From: Phillip Davis Date: Wed, 17 Jun 2026 00:33:23 +0930 Subject: [PATCH 3/5] chore(ci): do webUI tests in the root of the web server --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f21c59e2bd6..5bc5dfbdd64 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -158,5 +158,4 @@ jobs: with: do-webui-tests: true use-email-server: true - server-folder: 'server' test-suites: "['webUILogin']" From a5e33512d7f579a42201dfed83f37213774959a2 Mon Sep 17 00:00:00 2001 From: Phillip Davis Date: Wed, 17 Jun 2026 02:52:10 +0930 Subject: [PATCH 4/5] test: remove last slash from RewriteBase --- tests/acceptance/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/acceptance/run.sh b/tests/acceptance/run.sh index 81f6d7401ed..93a485a2328 100755 --- a/tests/acceptance/run.sh +++ b/tests/acceptance/run.sh @@ -808,7 +808,7 @@ then #get the sub path of the webserver and set the correct RewriteBase WEBSERVER_PATH=$(get_path_from_url ${TEST_SERVER_URL}) HTACCESS_UPDATE_FAILURE_MSG="Could not update .htaccess in local server. Some tests might fail as a result." - remote_occ ${ADMIN_AUTH} ${OCC_URL} "config:system:set htaccess.RewriteBase --value /${WEBSERVER_PATH}/" + remote_occ ${ADMIN_AUTH} ${OCC_URL} "config:system:set htaccess.RewriteBase --value /${WEBSERVER_PATH}" remote_occ ${ADMIN_AUTH} ${OCC_URL} "maintenance:update:htaccess" [[ $? -eq 0 ]] || { echo "${HTACCESS_UPDATE_FAILURE_MSG}"; } # check if mod_rewrite module is enabled @@ -817,7 +817,7 @@ then if [ -n "${TEST_SERVER_FED_URL}" ] then WEBSERVER_PATH=$(get_path_from_url ${TEST_SERVER_FED_URL}) - remote_occ ${ADMIN_AUTH} ${OCC_FED_URL} "config:system:set htaccess.RewriteBase --value /${WEBSERVER_PATH}/" + remote_occ ${ADMIN_AUTH} ${OCC_FED_URL} "config:system:set htaccess.RewriteBase --value /${WEBSERVER_PATH}" remote_occ ${ADMIN_AUTH} ${OCC_FED_URL} "maintenance:update:htaccess" [[ $? -eq 0 ]] || { echo "${HTACCESS_UPDATE_FAILURE_MSG/local/federated}"; } # check if mod_rewrite module is enabled From 32ac46dbf328f6c76726c86ba1b4e32181b145e5 Mon Sep 17 00:00:00 2001 From: Phillip Davis Date: Tue, 30 Jun 2026 18:39:29 +0930 Subject: [PATCH 5/5] ci: use owncloudci/core to install core from the git branch --- .github/workflows/acceptance.yml | 37 ++++++++++++++------------------ 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/.github/workflows/acceptance.yml b/.github/workflows/acceptance.yml index 771c79230ef..5f59b6a28e8 100644 --- a/.github/workflows/acceptance.yml +++ b/.github/workflows/acceptance.yml @@ -237,31 +237,26 @@ jobs: - name: Install Server env: SERVER_ROOT: /var/www/html${{ steps.prepend.outputs.server-dir }} - DATA_DIRECTORY: /var/www/html${{ steps.prepend.outputs.server-dir }}/data - DB: ${{ matrix.database }} - DB_NAME: owncloud - ADMIN_LOGIN: admin - ADMIN_PASSWORD: admin + GIT_REFERENCE: ${{ github.head_ref || github.ref_name }} + CORE_PATH: /var/www/html${{ steps.prepend.outputs.server-dir }} + DB_TYPE: 'mysql' + DB_NAME: 'owncloud' DB_HOST: 127.0.0.1 - DB_USERNAME: owncloud - DB_PASSWORD: owncloud + DB_USERNAME: 'owncloud' + DB_PASSWORD: 'owncloud' run: | + docker run -v ${SERVER_ROOT}:${SERVER_ROOT} \ + --network=host \ + -e PLUGIN_GIT_REFERENCE=${GIT_REFERENCE} \ + -e PLUGIN_CORE_PATH=${CORE_PATH} \ + -e PLUGIN_DB_TYPE=${DB_TYPE} \ + -e PLUGIN_DB_NAME=${DB_NAME} \ + -e PLUGIN_DB_HOST=${DB_HOST} \ + -e PLUGIN_DB_USERNAME=${DB_USERNAME} \ + -e PLUGIN_DB_PASSWORD=${DB_PASSWORD} \ + owncloudci/core:php83 cd ${SERVER_ROOT} - DB_TYPE=${DB%:*} - if [ $DB_TYPE == "postgres" ] ; then DB_TYPE="pgsql"; fi - if [ $DB_TYPE == "mariadb" ] ; then DB_TYPE="mysql"; fi - install_cmd="maintenance:install -vvv \ - --database=${DB_TYPE} \ - --database-name=${DB_NAME} \ - --admin-user=${ADMIN_LOGIN} \ - --admin-pass=${ADMIN_PASSWORD} \ - --data-dir=${DATA_DIRECTORY} \ - --database-host=${DB_HOST} \ - --database-user=${DB_USERNAME} \ - --database-pass=${DB_PASSWORD}" - - sudo -u www-data php occ ${install_cmd} echo "enabling apps" sudo -u www-data php occ app:enable files_sharing sudo -u www-data php occ app:enable files_trashbin