summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2022-10-27 14:19:30 +0200
committerCarl Schwan <carl@carlschwan.eu>2022-10-27 14:19:30 +0200
commite4f52cce302a11dce18ec18e04436b2725157002 (patch)
treef52178f4bf8f0101d61edb5dec1f9ea2468e32f5 /.github
parente3e60b44ff08eefb92238cc1715c32fb1fc41b00 (diff)
Update github workflows
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/phpunit-mysql.yml41
-rw-r--r--.github/workflows/phpunit-oci.yml142
-rw-r--r--.github/workflows/phpunit-pgsql.yml43
-rw-r--r--.github/workflows/phpunit-sqlite.yml41
4 files changed, 257 insertions, 10 deletions
diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml
index d209ea95..e5aa0d50 100644
--- a/.github/workflows/phpunit-mysql.yml
+++ b/.github/workflows/phpunit-mysql.yml
@@ -1,12 +1,37 @@
+# This workflow is provided via the organization template repository
+#
+# https://github.com/nextcloud/.github
+# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
+
name: PHPUnit
on:
pull_request:
+ paths:
+ - '.github/workflows/**'
+ - 'appinfo/**'
+ - 'lib/**'
+ - 'templates/**'
+ - 'tests/**'
+ - 'vendor/**'
+ - 'vendor-bin/**'
+ - '.php-cs-fixer.dist.php'
+ - 'composer.json'
+ - 'composer.lock'
+
push:
branches:
+ - main
- master
- stable*
+permissions:
+ contents: read
+
+concurrency:
+ group: phpunit-mysql-${{ github.head_ref || github.run_id }}
+ cancel-in-progress: true
+
env:
# Location of the phpunit.xml and phpunit.integration.xml files
PHPUNIT_CONFIG: ./tests/phpunit.xml
@@ -61,7 +86,15 @@ jobs:
extensions: mbstring, iconv, fileinfo, intl, mysql, pdo_mysql
coverage: none
+ - name: Check composer file existence
+ id: check_composer
+ uses: andstor/file-existence-action@v2
+ with:
+ files: apps/${{ env.APP_NAME }}/composer.json
+
- name: Set up PHPUnit
+ # Only run if phpunit config file exists
+ if: steps.check_composer.outputs.files_exists == 'true'
working-directory: apps/${{ env.APP_NAME }}
run: composer i
@@ -71,11 +104,11 @@ jobs:
run: |
mkdir data
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
- ./occ app:enable ${{ env.APP_NAME }}
+ ./occ app:enable --force ${{ env.APP_NAME }}
- name: Check PHPUnit config file existence
id: check_phpunit
- uses: andstor/file-existence-action@v1
+ uses: andstor/file-existence-action@v2
with:
files: apps/${{ env.APP_NAME }}/${{ env.PHPUNIT_CONFIG }}
@@ -87,7 +120,7 @@ jobs:
- name: Check PHPUnit integration config file existence
id: check_integration
- uses: andstor/file-existence-action@v1
+ uses: andstor/file-existence-action@v2
with:
files: apps/${{ env.APP_NAME }}/${{ env.PHPUNIT_INTEGRATION_CONFIG }}
@@ -103,6 +136,8 @@ jobs:
run: ./vendor/phpunit/phpunit/phpunit -c ${{ env.PHPUNIT_INTEGRATION_CONFIG }}
summary:
+ permissions:
+ contents: none
runs-on: ubuntu-latest
needs: phpunit-mysql
diff --git a/.github/workflows/phpunit-oci.yml b/.github/workflows/phpunit-oci.yml
new file mode 100644
index 00000000..3e079e5f
--- /dev/null
+++ b/.github/workflows/phpunit-oci.yml
@@ -0,0 +1,142 @@
+# This workflow is provided via the organization template repository
+#
+# https://github.com/nextcloud/.github
+# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
+
+name: PHPUnit
+
+on:
+ pull_request:
+ paths:
+ - '.github/workflows/**'
+ - 'appinfo/**'
+ - 'lib/**'
+ - 'templates/**'
+ - 'tests/**'
+ - 'vendor/**'
+ - 'vendor-bin/**'
+ - '.php-cs-fixer.dist.php'
+ - 'composer.json'
+ - 'composer.lock'
+
+ push:
+ branches:
+ - main
+ - master
+ - stable*
+
+permissions:
+ contents: read
+
+concurrency:
+ group: phpunit-oci-${{ github.head_ref || github.run_id }}
+ cancel-in-progress: true
+
+env:
+ # Location of the phpunit.xml and phpunit.integration.xml files
+ PHPUNIT_CONFIG: ./tests/phpunit.xml
+ PHPUNIT_INTEGRATION_CONFIG: ./tests/phpunit.integration.xml
+
+jobs:
+ phpunit-oci:
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ php-versions: ['8.0']
+ server-versions: ['master']
+
+ services:
+ oracle:
+ image: deepdiver/docker-oracle-xe-11g # 'wnameless/oracle-xe-11g-r2'
+ ports:
+ - 1521:1521/tcp
+
+ steps:
+ - name: Set app env
+ run: |
+ # Split and keep last
+ echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
+
+ - name: Checkout server
+ uses: actions/checkout@v3
+ with:
+ submodules: true
+ repository: nextcloud/server
+ ref: ${{ matrix.server-versions }}
+
+ - name: Checkout app
+ uses: actions/checkout@v3
+ with:
+ path: apps/${{ env.APP_NAME }}
+
+ - name: Set up php ${{ matrix.php-versions }}
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, oci8
+ tools: phpunit
+ coverage: none
+
+ - name: Check composer file existence
+ id: check_composer
+ uses: andstor/file-existence-action@v2
+ with:
+ files: apps/${{ env.APP_NAME }}/composer.json
+
+ - name: Set up PHPUnit
+ # Only run if phpunit config file exists
+ if: steps.check_composer.outputs.files_exists == 'true'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer i
+
+ - name: Set up Nextcloud
+ env:
+ DB_PORT: 1521
+ run: |
+ mkdir data
+ ./occ maintenance:install --verbose --database=oci --database-name=XE --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=autotest --database-pass=owncloud --admin-user admin --admin-pass admin
+ ./occ app:enable --force ${{ env.APP_NAME }}
+
+ - name: Check PHPUnit config file existence
+ id: check_phpunit
+ uses: andstor/file-existence-action@v2
+ with:
+ files: apps/${{ env.APP_NAME }}/${{ env.PHPUNIT_CONFIG }}
+
+ - name: PHPUnit
+ # Only run if phpunit config file exists
+ if: steps.check_phpunit.outputs.files_exists == 'true'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: ./vendor/phpunit/phpunit/phpunit -c ${{ env.PHPUNIT_CONFIG }}
+
+ - name: Check PHPUnit integration config file existence
+ id: check_integration
+ uses: andstor/file-existence-action@v2
+ with:
+ files: apps/${{ env.APP_NAME }}/${{ env.PHPUNIT_INTEGRATION_CONFIG }}
+
+ - name: Run Nextcloud
+ # Only run if phpunit integration config file exists
+ if: steps.check_integration.outputs.files_exists == 'true'
+ run: php -S localhost:8080 &
+
+ - name: PHPUnit integration
+ # Only run if phpunit integration config file exists
+ if: steps.check_integration.outputs.files_exists == 'true'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: ./vendor/phpunit/phpunit/phpunit -c ${{ env.PHPUNIT_INTEGRATION_CONFIG }}
+
+ summary:
+ permissions:
+ contents: none
+ runs-on: ubuntu-latest
+ needs: phpunit-oci
+
+ if: always()
+
+ name: phpunit-oci-summary
+
+ steps:
+ - name: Summary status
+ run: if ${{ needs.phpunit-oci.result != 'success' }}; then exit 1; fi
diff --git a/.github/workflows/phpunit-pgsql.yml b/.github/workflows/phpunit-pgsql.yml
index 5d6eca96..43bff99b 100644
--- a/.github/workflows/phpunit-pgsql.yml
+++ b/.github/workflows/phpunit-pgsql.yml
@@ -1,12 +1,37 @@
+# This workflow is provided via the organization template repository
+#
+# https://github.com/nextcloud/.github
+# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
+
name: PHPUnit
on:
pull_request:
+ paths:
+ - '.github/workflows/**'
+ - 'appinfo/**'
+ - 'lib/**'
+ - 'templates/**'
+ - 'tests/**'
+ - 'vendor/**'
+ - 'vendor-bin/**'
+ - '.php-cs-fixer.dist.php'
+ - 'composer.json'
+ - 'composer.lock'
+
push:
branches:
+ - main
- master
- stable*
+permissions:
+ contents: read
+
+concurrency:
+ group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
+ cancel-in-progress: true
+
env:
# Location of the phpunit.xml and phpunit.integration.xml files
PHPUNIT_CONFIG: ./tests/phpunit.xml
@@ -23,7 +48,7 @@ jobs:
services:
postgres:
- image: postgres
+ image: postgres:14
ports:
- 4444:5432/tcp
env:
@@ -58,7 +83,15 @@ jobs:
extensions: mbstring, iconv, fileinfo, intl, pgsql, pdo_pgsql
coverage: none
+ - name: Check composer file existence
+ id: check_composer
+ uses: andstor/file-existence-action@v2
+ with:
+ files: apps/${{ env.APP_NAME }}/composer.json
+
- name: Set up PHPUnit
+ # Only run if phpunit config file exists
+ if: steps.check_composer.outputs.files_exists == 'true'
working-directory: apps/${{ env.APP_NAME }}
run: composer i
@@ -68,11 +101,11 @@ jobs:
run: |
mkdir data
./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
- ./occ app:enable ${{ env.APP_NAME }}
+ ./occ app:enable --force ${{ env.APP_NAME }}
- name: Check PHPUnit config file existence
id: check_phpunit
- uses: andstor/file-existence-action@v1
+ uses: andstor/file-existence-action@v2
with:
files: apps/${{ env.APP_NAME }}/${{ env.PHPUNIT_CONFIG }}
@@ -84,7 +117,7 @@ jobs:
- name: Check PHPUnit integration config file existence
id: check_integration
- uses: andstor/file-existence-action@v1
+ uses: andstor/file-existence-action@v2
with:
files: apps/${{ env.APP_NAME }}/${{ env.PHPUNIT_INTEGRATION_CONFIG }}
@@ -100,6 +133,8 @@ jobs:
run: ./vendor/phpunit/phpunit/phpunit -c ${{ env.PHPUNIT_INTEGRATION_CONFIG }}
summary:
+ permissions:
+ contents: none
runs-on: ubuntu-latest
needs: phpunit-pgsql
diff --git a/.github/workflows/phpunit-sqlite.yml b/.github/workflows/phpunit-sqlite.yml
index 649d6e2d..6ed438cd 100644
--- a/.github/workflows/phpunit-sqlite.yml
+++ b/.github/workflows/phpunit-sqlite.yml
@@ -1,12 +1,37 @@
+# This workflow is provided via the organization template repository
+#
+# https://github.com/nextcloud/.github
+# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
+
name: PHPUnit
on:
pull_request:
+ paths:
+ - '.github/workflows/**'
+ - 'appinfo/**'
+ - 'lib/**'
+ - 'templates/**'
+ - 'tests/**'
+ - 'vendor/**'
+ - 'vendor-bin/**'
+ - '.php-cs-fixer.dist.php'
+ - 'composer.json'
+ - 'composer.lock'
+
push:
branches:
+ - main
- master
- stable*
+permissions:
+ contents: read
+
+concurrency:
+ group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
+ cancel-in-progress: true
+
env:
# Location of the phpunit.xml and phpunit.integration.xml files
PHPUNIT_CONFIG: ./tests/phpunit.xml
@@ -47,7 +72,15 @@ jobs:
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite
coverage: none
+ - name: Check composer file existence
+ id: check_composer
+ uses: andstor/file-existence-action@v2
+ with:
+ files: apps/${{ env.APP_NAME }}/composer.json
+
- name: Set up PHPUnit
+ # Only run if phpunit config file exists
+ if: steps.check_composer.outputs.files_exists == 'true'
working-directory: apps/${{ env.APP_NAME }}
run: composer i
@@ -57,11 +90,11 @@ jobs:
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 password
- ./occ app:enable ${{ env.APP_NAME }}
+ ./occ app:enable --force ${{ env.APP_NAME }}
- name: Check PHPUnit config file existence
id: check_phpunit
- uses: andstor/file-existence-action@v1
+ uses: andstor/file-existence-action@v2
with:
files: apps/${{ env.APP_NAME }}/${{ env.PHPUNIT_CONFIG }}
@@ -73,7 +106,7 @@ jobs:
- name: Check PHPUnit integration config file existence
id: check_integration
- uses: andstor/file-existence-action@v1
+ uses: andstor/file-existence-action@v2
with:
files: apps/${{ env.APP_NAME }}/${{ env.PHPUNIT_INTEGRATION_CONFIG }}
@@ -89,6 +122,8 @@ jobs:
run: ./vendor/phpunit/phpunit/phpunit -c ${{ env.PHPUNIT_INTEGRATION_CONFIG }}
summary:
+ permissions:
+ contents: none
runs-on: ubuntu-latest
needs: phpunit-sqlite