From b59cf4c1d49835f9a6eedfdfda2b96f40c6a9ba6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Julius=20H=C3=A4rtl?= Date: Thu, 14 Oct 2021 18:51:58 +0200 Subject: [PATCH] Run webdav related integration tests on github actions MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- .github/workflows/s3-primary-integration.yml | 84 ++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 .github/workflows/s3-primary-integration.yml diff --git a/.github/workflows/s3-primary-integration.yml b/.github/workflows/s3-primary-integration.yml new file mode 100644 index 00000000000..5785cc858b4 --- /dev/null +++ b/.github/workflows/s3-primary-integration.yml @@ -0,0 +1,84 @@ +name: S3 primary storage integration tests +on: + pull_request: + push: + branches: + - master + - stable* + +jobs: + s3-primary-integration-tests-minio: + runs-on: ubuntu-20.04 + + strategy: + # do not stop on another job's failure + fail-fast: false + matrix: + php-versions: ['8.0'] + key: ['objectstore', 'objectstore_multibucket'] + + name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio + + services: + redis: + image: redis + ports: + - "6379:6379" + minio: + env: + MINIO_ACCESS_KEY: minio + MINIO_SECRET_KEY: minio123 + image: bitnami/minio:2021.12.29 + ports: + - "9000:9000" + + steps: + - name: Checkout server + uses: actions/checkout@v3 + with: + submodules: true + + - name: Set up php ${{ matrix.php-versions }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + tools: phpunit:9 + extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, redis + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Wait for S3 + run: | + sleep 10 + curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready + + - name: Set up Nextcloud + run: | + mkdir data + echo ' ["class" => "OC\Files\ObjectStore\S3", "arguments" => ["bucket" => "nextcloud", "autocreate" => true, "key" => "minio", "secret" => "minio123", "hostname" => "localhost", "port" => 9000, "use_ssl" => false, "use_path_style" => true, "uploadPartSize" => 52428800]]];' > config/config.php + echo ' ["host" => "localhost", "port" => 6379], "memcache.local" => "\OC\Memcache\Redis", "memcache.distributed" => "\OC\Memcache\Redis"];' > config/redis.config.php + ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin + php -f index.php + + - name: Integration + run: | + cd build/integration + bash run.sh --tags "~@failure-s3" features/webdav-related.feature + + - name: S3 logs + if: always() + run: | + cat data/nextcloud.log + docker ps -a + docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done + + + s3-primary-integration-summary: + runs-on: ubuntu-latest + needs: [s3-primary-integration-tests-minio] + + if: always() + + steps: + - name: Summary status + run: if ${{ needs.s3-primary-integration-tests-minio.result != 'success' }}; then exit 1; fi -- 2.39.5