mirror of
https://github.com/nextcloud/server.git
synced 2026-04-29 01:50:33 -04:00
This means we can all run the same version. And when switching to stableX it can pull the corresponding version too. Also local dev envs and CI run the same phpunit. Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
132 lines
4.5 KiB
YAML
132 lines
4.5 KiB
YAML
name: S3 External storage
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- stable*
|
|
paths:
|
|
- 'apps/files_external/**'
|
|
pull_request:
|
|
paths:
|
|
- 'apps/files_external/**'
|
|
|
|
env:
|
|
APP_NAME: files_external
|
|
|
|
jobs:
|
|
s3-external-tests-minio:
|
|
runs-on: ubuntu-latest
|
|
|
|
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
|
|
|
|
strategy:
|
|
# do not stop on another job's failure
|
|
fail-fast: false
|
|
matrix:
|
|
php-versions: ['8.0', '8.1']
|
|
|
|
name: php${{ matrix.php-versions }}-minio
|
|
|
|
services:
|
|
minio:
|
|
env:
|
|
MINIO_ACCESS_KEY: minio
|
|
MINIO_SECRET_KEY: minio123
|
|
image: bitnami/minio:2021.10.6
|
|
ports:
|
|
- "9000:9000"
|
|
|
|
steps:
|
|
- name: Checkout server
|
|
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Set up php ${{ matrix.php-versions }}
|
|
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
|
|
with:
|
|
php-version: ${{ matrix.php-versions }}
|
|
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Set up Nextcloud
|
|
run: |
|
|
composer install
|
|
mkdir data
|
|
./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 password
|
|
./occ app:enable --force ${{ env.APP_NAME }}
|
|
php -S localhost:8080 &
|
|
- name: PHPUnit
|
|
run: |
|
|
echo "<?php return ['run' => true, 'secret' => 'actually-not-secret', 'passwordsalt' => 'actually-not-secret', 'hostname' => 'localhost','key' => 'minio','secret' => 'minio123', 'bucket' => 'bucket', 'port' => 9000, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/${{ env.APP_NAME }}/tests/config.amazons3.php
|
|
composer run test:files_external apps/files_external/tests/Storage/Amazons3Test.php
|
|
composer run test:files_external apps/files_external/tests/Storage/VersionedAmazonS3Test.php
|
|
- name: S3 logs
|
|
if: always()
|
|
run: |
|
|
docker ps -a
|
|
docker logs $(docker ps -aq)
|
|
s3-external-tests-localstack:
|
|
runs-on: ubuntu-latest
|
|
|
|
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
|
|
|
|
strategy:
|
|
# do not stop on another job's failure
|
|
fail-fast: false
|
|
matrix:
|
|
php-versions: ['8.0', '8.1']
|
|
|
|
name: php${{ matrix.php-versions }}-localstack
|
|
|
|
services:
|
|
minio:
|
|
env:
|
|
SERVICES: s3
|
|
DEBUG: 1
|
|
image: localstack/localstack:0.12.7
|
|
ports:
|
|
- "4566:4566"
|
|
|
|
steps:
|
|
- name: Checkout server
|
|
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Set up php ${{ matrix.php-versions }}
|
|
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
|
|
with:
|
|
php-version: ${{ matrix.php-versions }}
|
|
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Set up Nextcloud
|
|
run: |
|
|
composer install
|
|
mkdir data
|
|
./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 password
|
|
./occ app:enable --force ${{ env.APP_NAME }}
|
|
php -S localhost:8080 &
|
|
- name: PHPUnit
|
|
run: |
|
|
echo "<?php return ['run' => true,'hostname' => 'localhost','key' => 'ignored','secret' => 'ignored', 'bucket' => 'bucket', 'port' => 4566, 'use_ssl' => false, 'autocreate' => true, 'use_path_style' => true];" > apps/${{ env.APP_NAME }}/tests/config.amazons3.php
|
|
composer run test:files_external apps/files_external/tests/Storage/Amazons3Test.php
|
|
composer run test:files_external apps/files_external/tests/Storage/VersionedAmazonS3Test.php
|
|
- name: S3 logs
|
|
if: always()
|
|
run: |
|
|
docker ps -a
|
|
docker logs $(docker ps -aq)
|
|
|
|
s3-external-summary:
|
|
runs-on: ubuntu-latest
|
|
needs: [s3-external-tests-minio, s3-external-tests-localstack]
|
|
|
|
if: always()
|
|
|
|
steps:
|
|
- name: Summary status
|
|
run: if ${{ needs.s3-external-tests-minio.result != 'success' }} || ${{ needs.s3-external-tests-localstack.result != 'success' }}; then exit 1; fi
|