From 058b69eef02be9bfa77e9b6a1d12d15f29ac6b0c Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 26 Oct 2023 16:22:11 +0200 Subject: [PATCH] chore: Move integration tests from drone to github * Improve grouping as setting up CI took 3* the time of the test in average Signed-off-by: Joas Schilling --- .drone.yml | 996 +----------------- .github/workflows/integration-sqlite.yml | 157 +++ .../comments-search.feature | 0 .../comments.feature | 0 build/integration/config/behat.yml | 80 ++ .../{features => dav_features}/caldav.feature | 0 .../carddav.feature | 0 .../{features => dav_features}/dav-v2.feature | 0 .../webdav-related.feature | 0 .../checksums.feature | 0 .../download.feature | 0 .../external-storage.feature | 0 .../favorites.feature | 0 .../{features => files_features}/tags.feature | 0 .../transfer-ownership.feature | 0 .../trashbin.feature | 0 .../sharing-v1-video-verification.feature | 0 17 files changed, 238 insertions(+), 995 deletions(-) create mode 100644 .github/workflows/integration-sqlite.yml rename build/integration/{features => comments_features}/comments-search.feature (100%) rename build/integration/{features => comments_features}/comments.feature (100%) rename build/integration/{features => dav_features}/caldav.feature (100%) rename build/integration/{features => dav_features}/carddav.feature (100%) rename build/integration/{features => dav_features}/dav-v2.feature (100%) rename build/integration/{features => dav_features}/webdav-related.feature (100%) rename build/integration/{features => files_features}/checksums.feature (100%) rename build/integration/{features => files_features}/download.feature (100%) rename build/integration/{features => files_features}/external-storage.feature (100%) rename build/integration/{features => files_features}/favorites.feature (100%) rename build/integration/{features => files_features}/tags.feature (100%) rename build/integration/{features => files_features}/transfer-ownership.feature (100%) rename build/integration/{features => files_features}/trashbin.feature (100%) rename build/integration/{sharing_features => videoverification_features}/sharing-v1-video-verification.feature (100%) diff --git a/.drone.yml b/.drone.yml index de4b481a39c..4503c9a8741 100644 --- a/.drone.yml +++ b/.drone.yml @@ -567,1000 +567,6 @@ trigger: - pull_request - push ---- -kind: pipeline -name: integration-capabilities_features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-capabilities_features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh capabilities_features/capabilities.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-collaboration_features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-collaboration_features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh collaboration_features/ - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-federation_features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-federation_features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin - - cd build/integration - - ./run.sh federation_features/ - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-auth - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-auth - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/auth.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-avatar - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-avatar - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/avatar.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-maintenance-mode - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-maintenance-mode - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/maintenance-mode.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-ratelimiting - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-ratelimiting - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - ./occ config:system:set redis host --value=cache - - ./occ config:system:set redis port --value=6379 --type=integer - - ./occ config:system:set redis timeout --value=0 --type=integer - - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.local - - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.distributed - - ./occ app:enable testing - - cd build/integration - - ./run.sh features/ratelimiting.feature - -services: -- name: cache - image: ghcr.io/nextcloud/continuous-integration-redis:latest - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-carddav - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-carddav - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/carddav.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-dav-v2 - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-dav-v2 - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/dav-v2.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-ocs-v1 - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-ocs-v1 - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/ocs-v1.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-checksums-v1 - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-checksums-v1 - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/checksums.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-external-storage - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-external-storage - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/external-storage.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-provisioning-v1 - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-provisioning-v1 - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/provisioning-v1.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-tags - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-tags - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/tags.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-caldav - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-caldav - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/caldav.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-comments - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-comments - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/comments.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-comments-search - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-comments-search - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/comments-search.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-contacts-menu - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-contacts-menu - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/contacts-menu.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-favorites - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-favorites - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/favorites.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-provisioning-v2 - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-provisioning-v2 - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/provisioning-v2.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-webdav-related - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-webdav-related - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/webdav-related.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-sharees-features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-sharees-features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh sharees_features/sharees.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-sharees-v2-features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-sharees-v2-features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh sharees_features/sharees_provisioningapiv2.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-sharing-v1 - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-sharing-v1 - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh sharing_features/sharing-v1.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-sharing-v1-part2 - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-sharing-v1-part2 - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh sharing_features/sharing-v1-part2.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-sharing-v1-part3 - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-sharing-v1-part3 - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh sharing_features/sharing-v1-part3.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-sharing-v1-video-verification - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: install-talk - image: ghcr.io/nextcloud/continuous-integration-php8.0:latest - commands: - # JavaScript files are not used in integration tests, so it is not needed to - # build them. - - git clone --depth 1 --branch main https://github.com/nextcloud/spreed apps/spreed - - cd apps/spreed - - composer --version - - composer self-update --2 - - composer install --no-dev - - cd ../.. -- name: integration-sharing-v1-video-verification - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh sharing_features/sharing-v1-video-verification.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-setup-features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-setup-features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - cd build/integration - - ./run.sh setup_features/setup.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-filesdrop-features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-filesdrop-features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh filesdrop_features/filesdrop.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-transfer-ownership-features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-transfer-ownership-features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/transfer-ownership.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-ldap-features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-ldap-features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh ldap_features/ldap-ocs.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-ldap-openldap-features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-ldap-openldap-features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - ./occ config:system:set redis host --value=cache - - ./occ config:system:set redis port --value=6379 --type=integer - - ./occ config:system:set redis timeout --value=0 --type=integer - - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.local - - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.distributed - - cd build/integration - - ./run.sh ldap_features/ldap-openldap.feature - -services: -- name: cache - image: ghcr.io/nextcloud/continuous-integration-redis:latest -- name: openldap - image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-7 - environment: - SLAPD_DOMAIN: nextcloud.ci - SLAPD_ORGANIZATION: Nextcloud - SLAPD_PASSWORD: admin - SLAPD_ADDITIONAL_MODULES: memberof - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-ldap-openldap-uid-features - -steps: - - name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init - - name: integration-ldap-openldap-uid-features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - ./occ config:system:set redis host --value=cache - - ./occ config:system:set redis port --value=6379 --type=integer - - ./occ config:system:set redis timeout --value=0 --type=integer - - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.local - - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.distributed - - cd build/integration - - ./run.sh ldap_features/openldap-uid-username.feature - -services: - - name: cache - image: ghcr.io/nextcloud/continuous-integration-redis:latest - - name: openldap - image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-7 - environment: - SLAPD_DOMAIN: nextcloud.ci - SLAPD_ORGANIZATION: Nextcloud - SLAPD_PASSWORD: admin - SLAPD_ADDITIONAL_MODULES: memberof - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push -type: docker - ---- -kind: pipeline -name: integration-ldap-openldap-numerical-id-features - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-ldap-openldap-numerical-id-features - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - ./occ config:system:set redis host --value=cache - - ./occ config:system:set redis port --value=6379 --type=integer - - ./occ config:system:set redis timeout --value=0 --type=integer - - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.local - - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.distributed - - cd build/integration - - ./run.sh ldap_features/openldap-numerical-id.feature - -services: -- name: cache - image: ghcr.io/nextcloud/continuous-integration-redis:latest -- name: openldap - image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-7 - environment: - SLAPD_DOMAIN: nextcloud.ci - SLAPD_ORGANIZATION: Nextcloud - SLAPD_PASSWORD: admin - SLAPD_ADDITIONAL_MODULES: memberof - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-trashbin - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-trashbin - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh features/trashbin.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-remote-api - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-remote-api - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh remoteapi_features/remote.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - ---- -kind: pipeline -name: integration-download - -steps: -- name: submodules - image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest - commands: - - git submodule update --init -- name: integration-download - image: ghcr.io/nextcloud/continuous-integration-integration-php8.0:latest - commands: - - bash tests/drone-run-integration-tests.sh || exit 0 - - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int - - cd build/integration - - ./run.sh --tags ~@large features/download.feature - -trigger: - branch: - - master - - stable* - event: - - pull_request - - push - --- kind: pipeline name: nodb-codecov @@ -1728,4 +734,4 @@ trigger: - push --- kind: signature -hmac: 641c0bf70ed3d9561f41687c19dd5223da37143cbd6c2ad829836da41b57d4c5 +hmac: 893f108e2269f7da269bf70b284e40d13932bd2697d0393686c42b287da5afcf diff --git a/.github/workflows/integration-sqlite.yml b/.github/workflows/integration-sqlite.yml new file mode 100644 index 00000000000..cc24de3a11c --- /dev/null +++ b/.github/workflows/integration-sqlite.yml @@ -0,0 +1,157 @@ +name: Integration sqlite + +on: + pull_request: + paths: + # Only running on PR for this file to save CI time (otherwise pgsql only) + - '.github/workflows/integration-sqlite.yml' + + push: + branches: + - main + - master + - stable* + +permissions: + contents: read + +concurrency: + group: integration-sqlite-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + changes: + runs-on: ubuntu-latest + + outputs: + # FIXME src: ${{ steps.changes.outputs.src}} + src: 'true' + + steps: + - uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1 + id: changes + continue-on-error: true + with: + filters: | + src: + - '.github/workflows/**' + - '3rdparty/**' + - '**/*.php' + - '**/lib/**' + - '**/tests/**' + - '**/vendor-bin/**' + - 'build/integration/**' + - '.php-cs-fixer.dist.php' + - 'composer.json' + - 'composer.lock' + + integration-sqlite: + runs-on: ubuntu-latest + + needs: changes + if: needs.changes.outputs.src != 'false' + + strategy: + fail-fast: false + matrix: + test-suite: + - 'capabilities_features' + - 'collaboration_features' + - 'comments_features' + - 'dav_features' + - 'features' + - 'federation_features' + - 'files_features' + - 'filesdrop_features' + #- 'ldap_features' + - 'remoteapi_features' + - 'setup_features' + - 'sharees_features' + - 'sharing_features' + #- 'videoverification_features' + + php-versions: ['8.2'] +# server-versions: ['master'] +# guests-versions: ['master'] +# call-summary-bot-versions: ['main'] +# notifications-versions: ['master'] + + steps: + - name: Checkout server + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + with: + submodules: true + +# - name: Checkout call_summary_bot app +# uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 +# with: +# repository: nextcloud/call_summary_bot +# path: apps/call_summary_bot +# ref: ${{ matrix.call-summary-bot-versions }} +# +# - name: Checkout guests app +# uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 +# with: +# repository: nextcloud/guests +# path: apps/guests +# ref: ${{ matrix.guests-versions }} +# +# - name: Checkout notifications app +# uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 +# with: +# repository: nextcloud/notifications +# path: apps/notifications +# ref: ${{ matrix.notifications-versions }} + + - name: Set up php ${{ matrix.php-versions }} + uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2 + with: + php-version: ${{ matrix.php-versions }} + # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation + extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite + coverage: none + ini-file: development + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up production dependencies + run: composer i --no-dev + + - name: Set up behat dependencies + working-directory: build/integration + run: composer i + + - name: Set up Nextcloud + env: + DB_PORT: 4444 + run: | + mkdir data + ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin + ./occ config:system:set hashing_default_password --value=true --type=boolean +# ./occ app:enable --force ${{ env.APP_NAME }} +# ./occ app:enable --force call_summary_bot +# ./occ app:enable --force guests +# ./occ app:enable --force notifications + + - name: Run integration + working-directory: build/integration + run: bash run.sh ${{ matrix.test-suite }} + + - name: Print logs + if: always() + run: | + cat data/nextcloud.log + + summary: + permissions: + contents: none + runs-on: ubuntu-latest + needs: [changes, integration-sqlite] + + if: always() + + name: integration-sqlite-summary + + steps: + - name: Summary status + run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-sqlite.result != 'success' }}; then exit 1; fi diff --git a/build/integration/features/comments-search.feature b/build/integration/comments_features/comments-search.feature similarity index 100% rename from build/integration/features/comments-search.feature rename to build/integration/comments_features/comments-search.feature diff --git a/build/integration/features/comments.feature b/build/integration/comments_features/comments.feature similarity index 100% rename from build/integration/features/comments.feature rename to build/integration/comments_features/comments.feature diff --git a/build/integration/config/behat.yml b/build/integration/config/behat.yml index fdd9f890b0e..e82ac388fbc 100644 --- a/build/integration/config/behat.yml +++ b/build/integration/config/behat.yml @@ -29,6 +29,52 @@ default: - CommandLineContext: baseUrl: http://localhost:8080 ocPath: ../../ + comments: + paths: + - "%paths.base%/../comments_features" + contexts: + - FeatureContext: + baseUrl: http://localhost:8080/ocs/ + admin: + - admin + - admin + regular_user_password: 123456 + - CommentsContext: + baseUrl: http://localhost:8080 + - TagsContext: + baseUrl: http://localhost:8080 + - CardDavContext: + baseUrl: http://localhost:8080 + - CalDavContext: + baseUrl: http://localhost:8080 + - ChecksumsContext: + baseUrl: http://localhost:8080 + - CommandLineContext: + baseUrl: http://localhost:8080 + ocPath: ../../ + dav: + paths: + - "%paths.base%/../dav_features" + contexts: + - FeatureContext: + baseUrl: http://localhost:8080/ocs/ + admin: + - admin + - admin + regular_user_password: 123456 + - CommentsContext: + baseUrl: http://localhost:8080 + - TagsContext: + baseUrl: http://localhost:8080 + - CardDavContext: + baseUrl: http://localhost:8080 + - CalDavContext: + baseUrl: http://localhost:8080 + - ChecksumsContext: + baseUrl: http://localhost:8080 + - CommandLineContext: + baseUrl: http://localhost:8080 + ocPath: ../../ federation: paths: - "%paths.base%/../federation_features" @@ -39,6 +85,29 @@ default: - admin - admin regular_user_password: 123456 + files: + paths: + - "%paths.base%/../files_features" + contexts: + - FeatureContext: + baseUrl: http://localhost:8080/ocs/ + admin: + - admin + - admin + regular_user_password: 123456 + - CommentsContext: + baseUrl: http://localhost:8080 + - TagsContext: + baseUrl: http://localhost:8080 + - CardDavContext: + baseUrl: http://localhost:8080 + - CalDavContext: + baseUrl: http://localhost:8080 + - ChecksumsContext: + baseUrl: http://localhost:8080 + - CommandLineContext: + baseUrl: http://localhost:8080 + ocPath: ../../ capabilities: paths: - "%paths.base%/../capabilities_features" @@ -80,6 +149,17 @@ default: - admin regular_user_password: 123456 - TalkContext + videoverification: + paths: + - "%paths.base%/../videoverification_features" + contexts: + - SharingContext: + baseUrl: http://localhost:8080/ocs/ + admin: + - admin + - admin + regular_user_password: 123456 + - TalkContext setup: paths: - "%paths.base%/../setup_features" diff --git a/build/integration/features/caldav.feature b/build/integration/dav_features/caldav.feature similarity index 100% rename from build/integration/features/caldav.feature rename to build/integration/dav_features/caldav.feature diff --git a/build/integration/features/carddav.feature b/build/integration/dav_features/carddav.feature similarity index 100% rename from build/integration/features/carddav.feature rename to build/integration/dav_features/carddav.feature diff --git a/build/integration/features/dav-v2.feature b/build/integration/dav_features/dav-v2.feature similarity index 100% rename from build/integration/features/dav-v2.feature rename to build/integration/dav_features/dav-v2.feature diff --git a/build/integration/features/webdav-related.feature b/build/integration/dav_features/webdav-related.feature similarity index 100% rename from build/integration/features/webdav-related.feature rename to build/integration/dav_features/webdav-related.feature diff --git a/build/integration/features/checksums.feature b/build/integration/files_features/checksums.feature similarity index 100% rename from build/integration/features/checksums.feature rename to build/integration/files_features/checksums.feature diff --git a/build/integration/features/download.feature b/build/integration/files_features/download.feature similarity index 100% rename from build/integration/features/download.feature rename to build/integration/files_features/download.feature diff --git a/build/integration/features/external-storage.feature b/build/integration/files_features/external-storage.feature similarity index 100% rename from build/integration/features/external-storage.feature rename to build/integration/files_features/external-storage.feature diff --git a/build/integration/features/favorites.feature b/build/integration/files_features/favorites.feature similarity index 100% rename from build/integration/features/favorites.feature rename to build/integration/files_features/favorites.feature diff --git a/build/integration/features/tags.feature b/build/integration/files_features/tags.feature similarity index 100% rename from build/integration/features/tags.feature rename to build/integration/files_features/tags.feature diff --git a/build/integration/features/transfer-ownership.feature b/build/integration/files_features/transfer-ownership.feature similarity index 100% rename from build/integration/features/transfer-ownership.feature rename to build/integration/files_features/transfer-ownership.feature diff --git a/build/integration/features/trashbin.feature b/build/integration/files_features/trashbin.feature similarity index 100% rename from build/integration/features/trashbin.feature rename to build/integration/files_features/trashbin.feature diff --git a/build/integration/sharing_features/sharing-v1-video-verification.feature b/build/integration/videoverification_features/sharing-v1-video-verification.feature similarity index 100% rename from build/integration/sharing_features/sharing-v1-video-verification.feature rename to build/integration/videoverification_features/sharing-v1-video-verification.feature