ci: Update actions and use spit phpunit
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
12
.github/workflows/appstore-build-publish.yml
vendored
12
.github/workflows/appstore-build-publish.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
|||||||
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
with:
|
with:
|
||||||
path: ${{ env.APP_NAME }}
|
path: ${{ env.APP_NAME }}
|
||||||
|
|
||||||
@@ -50,13 +50,13 @@ jobs:
|
|||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
with:
|
with:
|
||||||
path: ${{ env.APP_NAME }}
|
path: ${{ env.APP_NAME }}
|
||||||
fallbackNode: "^16"
|
fallbackNode: '^20'
|
||||||
fallbackNpm: "^7"
|
fallbackNpm: '^9'
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||||
# Skip if no package.json
|
# Skip if no package.json
|
||||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
|
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
@@ -88,6 +88,8 @@ jobs:
|
|||||||
- name: Build ${{ env.APP_NAME }}
|
- name: Build ${{ env.APP_NAME }}
|
||||||
# Skip if no package.json
|
# Skip if no package.json
|
||||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
env:
|
||||||
|
CYPRESS_INSTALL_BINARY: 0
|
||||||
run: |
|
run: |
|
||||||
cd ${{ env.APP_NAME }}
|
cd ${{ env.APP_NAME }}
|
||||||
npm ci
|
npm ci
|
||||||
@@ -126,7 +128,7 @@ jobs:
|
|||||||
unzip latest-$NCVERSION.zip
|
unzip latest-$NCVERSION.zip
|
||||||
|
|
||||||
- name: Checkout server master fallback
|
- name: Checkout server master fallback
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
if: ${{ steps.server-checkout.outcome != 'success' }}
|
if: ${{ steps.server-checkout.outcome != 'success' }}
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|||||||
61
.github/workflows/lint-eslint.yml
vendored
61
.github/workflows/lint-eslint.yml
vendored
@@ -10,7 +10,28 @@ name: Lint eslint
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: lint-eslint-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
changes:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
src: ${{ steps.changes.outputs.src}}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||||
|
id: changes
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
filters: |
|
||||||
|
src:
|
||||||
- '.github/workflows/**'
|
- '.github/workflows/**'
|
||||||
- 'src/**'
|
- 'src/**'
|
||||||
- 'appinfo/info.xml'
|
- 'appinfo/info.xml'
|
||||||
@@ -23,32 +44,27 @@ on:
|
|||||||
- '**.ts'
|
- '**.ts'
|
||||||
- '**.vue'
|
- '**.vue'
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: lint-eslint-${{ github.head_ref || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
name: eslint
|
needs: changes
|
||||||
|
if: needs.changes.outputs.src != 'false'
|
||||||
|
|
||||||
|
name: NPM lint
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
|
||||||
- name: Read package.json node and npm engines version
|
- name: Read package.json node and npm engines version
|
||||||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
||||||
id: versions
|
id: versions
|
||||||
with:
|
with:
|
||||||
fallbackNode: '^16'
|
fallbackNode: '^20'
|
||||||
fallbackNpm: '^7'
|
fallbackNpm: '^9'
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
|
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
@@ -56,7 +72,24 @@ jobs:
|
|||||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
|
env:
|
||||||
|
CYPRESS_INSTALL_BINARY: 0
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
run: npm run lint
|
run: npm run lint
|
||||||
|
|
||||||
|
summary:
|
||||||
|
permissions:
|
||||||
|
contents: none
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [changes, lint]
|
||||||
|
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
# This is the summary, we just avoid to rename it so that branch protection rules still match
|
||||||
|
name: eslint
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Summary status
|
||||||
|
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
|
||||||
|
|||||||
2
.github/workflows/lint-php-cs.yml
vendored
2
.github/workflows/lint-php-cs.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
|
||||||
- name: Set up php
|
- name: Set up php
|
||||||
uses: shivammathur/setup-php@2.28.0 # v2
|
uses: shivammathur/setup-php@2.28.0 # v2
|
||||||
|
|||||||
4
.github/workflows/lint-php.yml
vendored
4
.github/workflows/lint-php.yml
vendored
@@ -25,13 +25,13 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
php-versions: [ "8.0", "8.1", "8.2", "8.3" ]
|
php-versions: [ "8.0", "8.1", "8.2" ]
|
||||||
|
|
||||||
name: php-lint
|
name: php-lint
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
uses: shivammathur/setup-php@2.28.0 # v2
|
uses: shivammathur/setup-php@2.28.0 # v2
|
||||||
|
|||||||
10
.github/workflows/lint-stylelint.yml
vendored
10
.github/workflows/lint-stylelint.yml
vendored
@@ -22,17 +22,17 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
|
||||||
- name: Read package.json node and npm engines version
|
- name: Read package.json node and npm engines version
|
||||||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
||||||
id: versions
|
id: versions
|
||||||
with:
|
with:
|
||||||
fallbackNode: '^16'
|
fallbackNode: '^20'
|
||||||
fallbackNpm: '^7'
|
fallbackNpm: '^9'
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
|
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
@@ -40,6 +40,8 @@ jobs:
|
|||||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
|
env:
|
||||||
|
CYPRESS_INSTALL_BINARY: 0
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
|
|||||||
10
.github/workflows/npm-audit-fix.yml
vendored
10
.github/workflows/npm-audit-fix.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
with:
|
with:
|
||||||
ref: ${{ matrix.branches }}
|
ref: ${{ matrix.branches }}
|
||||||
|
|
||||||
@@ -32,11 +32,11 @@ jobs:
|
|||||||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
|
||||||
id: versions
|
id: versions
|
||||||
with:
|
with:
|
||||||
fallbackNode: '^16'
|
fallbackNode: '^20'
|
||||||
fallbackNpm: '^7'
|
fallbackNpm: '^9'
|
||||||
|
|
||||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||||
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
|
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||||
with:
|
with:
|
||||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||||
|
|
||||||
@@ -49,6 +49,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Run npm ci and npm run build
|
- name: Run npm ci and npm run build
|
||||||
if: always()
|
if: always()
|
||||||
|
env:
|
||||||
|
CYPRESS_INSTALL_BINARY: 0
|
||||||
run: |
|
run: |
|
||||||
npm ci
|
npm ci
|
||||||
npm run build --if-present
|
npm run build --if-present
|
||||||
|
|||||||
177
.github/workflows/phpunit-mysql.yml
vendored
Normal file
177
.github/workflows/phpunit-mysql.yml
vendored
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
# 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 mysql
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
- stable*
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: phpunit-mysql-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
changes:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
src: ${{ steps.changes.outputs.src}}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||||
|
id: changes
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
filters: |
|
||||||
|
src:
|
||||||
|
- '.github/workflows/**'
|
||||||
|
- 'appinfo/**'
|
||||||
|
- 'lib/**'
|
||||||
|
- 'templates/**'
|
||||||
|
- 'tests/**'
|
||||||
|
- 'vendor/**'
|
||||||
|
- 'vendor-bin/**'
|
||||||
|
- '.php-cs-fixer.dist.php'
|
||||||
|
- 'composer.json'
|
||||||
|
- 'composer.lock'
|
||||||
|
|
||||||
|
phpunit-mysql:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
needs: changes
|
||||||
|
if: needs.changes.outputs.src != 'false'
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||||
|
server-versions: ['master']
|
||||||
|
|
||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
image: ghcr.io/nextcloud/continuous-integration-mariadb-10.6:latest
|
||||||
|
ports:
|
||||||
|
- 4444:3306/tcp
|
||||||
|
env:
|
||||||
|
MYSQL_ROOT_PASSWORD: rootpassword
|
||||||
|
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Set app env
|
||||||
|
run: |
|
||||||
|
# Split and keep last
|
||||||
|
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Checkout server
|
||||||
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
repository: nextcloud/server
|
||||||
|
ref: ${{ matrix.server-versions }}
|
||||||
|
|
||||||
|
- name: Checkout app
|
||||||
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
with:
|
||||||
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
|
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # 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, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
|
||||||
|
coverage: none
|
||||||
|
ini-file: development
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Enable ONLY_FULL_GROUP_BY MySQL option
|
||||||
|
run: |
|
||||||
|
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
|
||||||
|
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
|
||||||
|
|
||||||
|
- name: Check composer file existence
|
||||||
|
id: check_composer
|
||||||
|
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
|
||||||
|
with:
|
||||||
|
files: apps/${{ env.APP_NAME }}/composer.json
|
||||||
|
|
||||||
|
- name: Set up dependencies
|
||||||
|
# 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: 4444
|
||||||
|
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 admin
|
||||||
|
./occ app:enable --force ${{ env.APP_NAME }}
|
||||||
|
|
||||||
|
- name: Check PHPUnit script is defined
|
||||||
|
id: check_phpunit
|
||||||
|
continue-on-error: true
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: |
|
||||||
|
composer run --list | grep "^ test:unit " | wc -l | grep 1
|
||||||
|
|
||||||
|
- name: PHPUnit
|
||||||
|
# Only run if phpunit config file exists
|
||||||
|
if: steps.check_phpunit.outcome == 'success'
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: composer run test:unit
|
||||||
|
|
||||||
|
- name: Check PHPUnit integration script is defined
|
||||||
|
id: check_integration
|
||||||
|
continue-on-error: true
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: |
|
||||||
|
composer run --list | grep "^ test:integration " | wc -l | grep 1
|
||||||
|
|
||||||
|
- name: Run Nextcloud
|
||||||
|
# Only run if phpunit integration config file exists
|
||||||
|
if: steps.check_integration.outcome == 'success'
|
||||||
|
run: php -S localhost:8080 &
|
||||||
|
|
||||||
|
- name: PHPUnit integration
|
||||||
|
# Only run if phpunit integration config file exists
|
||||||
|
if: steps.check_integration.outcome == 'success'
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: composer run test:integration
|
||||||
|
|
||||||
|
- name: Print logs
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
cat data/nextcloud.log
|
||||||
|
|
||||||
|
- name: Skipped
|
||||||
|
# Fail the action when neither unit nor integration tests ran
|
||||||
|
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
|
||||||
|
run: |
|
||||||
|
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
summary:
|
||||||
|
permissions:
|
||||||
|
contents: none
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [changes, phpunit-mysql]
|
||||||
|
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
name: phpunit-mysql-summary
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Summary status
|
||||||
|
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
|
||||||
174
.github/workflows/phpunit-pgsql.yml
vendored
Normal file
174
.github/workflows/phpunit-pgsql.yml
vendored
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
# 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 pgsql
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
- stable*
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
changes:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
src: ${{ steps.changes.outputs.src}}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||||
|
id: changes
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
filters: |
|
||||||
|
src:
|
||||||
|
- '.github/workflows/**'
|
||||||
|
- 'appinfo/**'
|
||||||
|
- 'lib/**'
|
||||||
|
- 'templates/**'
|
||||||
|
- 'tests/**'
|
||||||
|
- 'vendor/**'
|
||||||
|
- 'vendor-bin/**'
|
||||||
|
- '.php-cs-fixer.dist.php'
|
||||||
|
- 'composer.json'
|
||||||
|
- 'composer.lock'
|
||||||
|
|
||||||
|
phpunit-pgsql:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
needs: changes
|
||||||
|
if: needs.changes.outputs.src != 'false'
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
php-versions: ['8.0']
|
||||||
|
server-versions: ['master']
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: ghcr.io/nextcloud/continuous-integration-postgres-14:latest
|
||||||
|
ports:
|
||||||
|
- 4444:5432/tcp
|
||||||
|
env:
|
||||||
|
POSTGRES_USER: root
|
||||||
|
POSTGRES_PASSWORD: rootpassword
|
||||||
|
POSTGRES_DB: nextcloud
|
||||||
|
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Set app env
|
||||||
|
run: |
|
||||||
|
# Split and keep last
|
||||||
|
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Checkout server
|
||||||
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
repository: nextcloud/server
|
||||||
|
ref: ${{ matrix.server-versions }}
|
||||||
|
|
||||||
|
- name: Checkout app
|
||||||
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
with:
|
||||||
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
|
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # 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, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
|
||||||
|
coverage: none
|
||||||
|
ini-file: development
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Check composer file existence
|
||||||
|
id: check_composer
|
||||||
|
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
|
||||||
|
with:
|
||||||
|
files: apps/${{ env.APP_NAME }}/composer.json
|
||||||
|
|
||||||
|
- name: Set up dependencies
|
||||||
|
# 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: 4444
|
||||||
|
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 admin
|
||||||
|
./occ app:enable --force ${{ env.APP_NAME }}
|
||||||
|
|
||||||
|
- name: Check PHPUnit script is defined
|
||||||
|
id: check_phpunit
|
||||||
|
continue-on-error: true
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: |
|
||||||
|
composer run --list | grep "^ test:unit " | wc -l | grep 1
|
||||||
|
|
||||||
|
- name: PHPUnit
|
||||||
|
# Only run if phpunit config file exists
|
||||||
|
if: steps.check_phpunit.outcome == 'success'
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: composer run test:unit
|
||||||
|
|
||||||
|
- name: Check PHPUnit integration script is defined
|
||||||
|
id: check_integration
|
||||||
|
continue-on-error: true
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: |
|
||||||
|
composer run --list | grep "^ test:integration " | wc -l | grep 1
|
||||||
|
|
||||||
|
- name: Run Nextcloud
|
||||||
|
# Only run if phpunit integration config file exists
|
||||||
|
if: steps.check_integration.outcome == 'success'
|
||||||
|
run: php -S localhost:8080 &
|
||||||
|
|
||||||
|
- name: PHPUnit integration
|
||||||
|
# Only run if phpunit integration config file exists
|
||||||
|
if: steps.check_integration.outcome == 'success'
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: composer run test:integration
|
||||||
|
|
||||||
|
- name: Print logs
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
cat data/nextcloud.log
|
||||||
|
|
||||||
|
- name: Skipped
|
||||||
|
# Fail the action when neither unit nor integration tests ran
|
||||||
|
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
|
||||||
|
run: |
|
||||||
|
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
summary:
|
||||||
|
permissions:
|
||||||
|
contents: none
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [changes, phpunit-pgsql]
|
||||||
|
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
name: phpunit-pgsql-summary
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Summary status
|
||||||
|
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi
|
||||||
163
.github/workflows/phpunit-sqlite.yml
vendored
Normal file
163
.github/workflows/phpunit-sqlite.yml
vendored
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
# 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 sqlite
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
- stable*
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
changes:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
src: ${{ steps.changes.outputs.src}}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||||
|
id: changes
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
filters: |
|
||||||
|
src:
|
||||||
|
- '.github/workflows/**'
|
||||||
|
- 'appinfo/**'
|
||||||
|
- 'lib/**'
|
||||||
|
- 'templates/**'
|
||||||
|
- 'tests/**'
|
||||||
|
- 'vendor/**'
|
||||||
|
- 'vendor-bin/**'
|
||||||
|
- '.php-cs-fixer.dist.php'
|
||||||
|
- 'composer.json'
|
||||||
|
- 'composer.lock'
|
||||||
|
|
||||||
|
phpunit-sqlite:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
needs: changes
|
||||||
|
if: needs.changes.outputs.src != 'false'
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
php-versions: ['8.0']
|
||||||
|
server-versions: ['master']
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Set app env
|
||||||
|
run: |
|
||||||
|
# Split and keep last
|
||||||
|
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Checkout server
|
||||||
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
repository: nextcloud/server
|
||||||
|
ref: ${{ matrix.server-versions }}
|
||||||
|
|
||||||
|
- name: Checkout app
|
||||||
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
with:
|
||||||
|
path: apps/${{ env.APP_NAME }}
|
||||||
|
|
||||||
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
|
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # 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, 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: Check composer file existence
|
||||||
|
id: check_composer
|
||||||
|
uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
|
||||||
|
with:
|
||||||
|
files: apps/${{ env.APP_NAME }}/composer.json
|
||||||
|
|
||||||
|
- name: Set up dependencies
|
||||||
|
# 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: 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 app:enable --force ${{ env.APP_NAME }}
|
||||||
|
|
||||||
|
- name: Check PHPUnit script is defined
|
||||||
|
id: check_phpunit
|
||||||
|
continue-on-error: true
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: |
|
||||||
|
composer run --list | grep "^ test:unit " | wc -l | grep 1
|
||||||
|
|
||||||
|
- name: PHPUnit
|
||||||
|
# Only run if phpunit config file exists
|
||||||
|
if: steps.check_phpunit.outcome == 'success'
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: composer run test:unit
|
||||||
|
|
||||||
|
- name: Check PHPUnit integration script is defined
|
||||||
|
id: check_integration
|
||||||
|
continue-on-error: true
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: |
|
||||||
|
composer run --list | grep "^ test:integration " | wc -l | grep 1
|
||||||
|
|
||||||
|
- name: Run Nextcloud
|
||||||
|
# Only run if phpunit integration config file exists
|
||||||
|
if: steps.check_integration.outcome == 'success'
|
||||||
|
run: php -S localhost:8080 &
|
||||||
|
|
||||||
|
- name: PHPUnit integration
|
||||||
|
# Only run if phpunit integration config file exists
|
||||||
|
if: steps.check_integration.outcome == 'success'
|
||||||
|
working-directory: apps/${{ env.APP_NAME }}
|
||||||
|
run: composer run test:integration
|
||||||
|
|
||||||
|
- name: Print logs
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
cat data/nextcloud.log
|
||||||
|
|
||||||
|
- name: Skipped
|
||||||
|
# Fail the action when neither unit nor integration tests ran
|
||||||
|
if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
|
||||||
|
run: |
|
||||||
|
echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
summary:
|
||||||
|
permissions:
|
||||||
|
contents: none
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [changes, phpunit-sqlite]
|
||||||
|
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
name: phpunit-sqlite-summary
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Summary status
|
||||||
|
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi
|
||||||
102
.github/workflows/phpunit.yml
vendored
102
.github/workflows/phpunit.yml
vendored
@@ -1,102 +0,0 @@
|
|||||||
name: PHPUnit
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- '.github/workflows/phpunit.yml'
|
|
||||||
- 'appinfo/**'
|
|
||||||
- 'lib/**'
|
|
||||||
- 'templates/**'
|
|
||||||
- 'tests/**'
|
|
||||||
- 'composer.json'
|
|
||||||
- 'composer.lock'
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- stable*
|
|
||||||
|
|
||||||
env:
|
|
||||||
APP_NAME: deck
|
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
integration:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
|
||||||
databases: ['sqlite', 'mysql', 'pgsql']
|
|
||||||
server-versions: ['master']
|
|
||||||
|
|
||||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
|
||||||
|
|
||||||
services:
|
|
||||||
postgres:
|
|
||||||
image: postgres:14
|
|
||||||
ports:
|
|
||||||
- 4445:5432/tcp
|
|
||||||
env:
|
|
||||||
POSTGRES_USER: root
|
|
||||||
POSTGRES_PASSWORD: rootpassword
|
|
||||||
POSTGRES_DB: nextcloud
|
|
||||||
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
|
|
||||||
mysql:
|
|
||||||
image: mariadb:10.5
|
|
||||||
ports:
|
|
||||||
- 4444:3306/tcp
|
|
||||||
env:
|
|
||||||
MYSQL_ROOT_PASSWORD: rootpassword
|
|
||||||
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout server
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: nextcloud/server
|
|
||||||
ref: ${{ matrix.server-versions }}
|
|
||||||
|
|
||||||
- name: Checkout submodules
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
|
|
||||||
git submodule sync --recursive
|
|
||||||
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
|
||||||
|
|
||||||
- name: Checkout app
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
path: apps/${{ env.APP_NAME }}
|
|
||||||
|
|
||||||
- name: Set up php ${{ matrix.php-versions }}
|
|
||||||
uses: shivammathur/setup-php@2.28.0
|
|
||||||
with:
|
|
||||||
php-version: ${{ matrix.php-versions }}
|
|
||||||
tools: phpunit
|
|
||||||
extensions: zip, gd, mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql
|
|
||||||
coverage: none
|
|
||||||
|
|
||||||
- name: Set up PHPUnit
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: composer i
|
|
||||||
|
|
||||||
- name: Set up Nextcloud
|
|
||||||
run: |
|
|
||||||
if [ "${{ matrix.databases }}" = "mysql" ]; then
|
|
||||||
export DB_PORT=4444
|
|
||||||
elif [ "${{ matrix.databases }}" = "pgsql" ]; then
|
|
||||||
export DB_PORT=4445
|
|
||||||
fi
|
|
||||||
mkdir data
|
|
||||||
./occ maintenance:install --verbose --database=${{ matrix.databases }} --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 app:enable --force ${{ env.APP_NAME }}
|
|
||||||
php -S localhost:8080 &
|
|
||||||
|
|
||||||
- name: PHPUnit
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.xml
|
|
||||||
|
|
||||||
- name: PHPUnit integration
|
|
||||||
working-directory: apps/${{ env.APP_NAME }}
|
|
||||||
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.integration.xml
|
|
||||||
11
.github/workflows/pr-feedback.yml
vendored
11
.github/workflows/pr-feedback.yml
vendored
@@ -1,3 +1,8 @@
|
|||||||
|
# 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: 'Ask for feedback on PRs'
|
name: 'Ask for feedback on PRs'
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
@@ -5,7 +10,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pr-feedback:
|
pr-feedback:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: The get-github-handles-from-website action
|
- name: The get-github-handles-from-website action
|
||||||
uses: marcelklehr/get-github-handles-from-website-action@a739600f6b91da4957f51db0792697afbb2f143c # v1.0.0
|
uses: marcelklehr/get-github-handles-from-website-action@a739600f6b91da4957f51db0792697afbb2f143c # v1.0.0
|
||||||
@@ -18,12 +23,12 @@ jobs:
|
|||||||
Hello there,
|
Hello there,
|
||||||
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
|
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
|
||||||
|
|
||||||
We hope that the reviewing process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR reviewing process.
|
We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.
|
||||||
|
|
||||||
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
|
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
|
||||||
|
|
||||||
Thank you for contributing to Nextcloud and we hope to hear from you soon!
|
Thank you for contributing to Nextcloud and we hope to hear from you soon!
|
||||||
days-before-feedback: 14
|
days-before-feedback: 14
|
||||||
start-date: "2023-07-10"
|
start-date: "2023-07-10"
|
||||||
exempt-authors: "${{ steps.scrape.outputs.users }}"
|
exempt-authors: "${{ steps.scrape.outputs.users }},nextcloud-command,nextcloud-android-bot,skjnldsv"
|
||||||
exempt-bots: true
|
exempt-bots: true
|
||||||
|
|||||||
2
.github/workflows/psalm.yml
vendored
2
.github/workflows/psalm.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
|||||||
name: Nextcloud
|
name: Nextcloud
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4 # v3.5.2
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
|
|
||||||
- name: Set up php
|
- name: Set up php
|
||||||
uses: shivammathur/setup-php@2.28.0 # v2
|
uses: shivammathur/setup-php@2.28.0 # v2
|
||||||
|
|||||||
38
.github/workflows/update-nextcloud-ocp.yml
vendored
38
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -22,10 +22,12 @@ jobs:
|
|||||||
name: update-nextcloud-ocp-${{ matrix.branches }}
|
name: update-nextcloud-ocp-${{ matrix.branches }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4 # v3.5.2
|
- id: checkout
|
||||||
|
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
||||||
with:
|
with:
|
||||||
ref: ${{ matrix.branches }}
|
ref: ${{ matrix.branches }}
|
||||||
submodules: true
|
submodules: true
|
||||||
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Set up php8.1
|
- name: Set up php8.1
|
||||||
uses: shivammathur/setup-php@2.28.0 # v2
|
uses: shivammathur/setup-php@2.28.0 # v2
|
||||||
@@ -37,36 +39,66 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Read codeowners
|
||||||
|
if: steps.checkout.outcome == 'success'
|
||||||
|
id: codeowners
|
||||||
|
run: |
|
||||||
|
grep '/appinfo/info.xml' .github/CODEOWNERS | cut -f 2- -d ' ' | xargs | awk '{ print "codeowners="$0 }' >> $GITHUB_OUTPUT
|
||||||
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Composer install
|
- name: Composer install
|
||||||
|
if: steps.checkout.outcome == 'success'
|
||||||
run: composer install
|
run: composer install
|
||||||
|
|
||||||
- name: Composer update nextcloud/ocp
|
- name: Composer update nextcloud/ocp
|
||||||
if: matrix.branches != 'main'
|
id: update_branch
|
||||||
|
if: ${{ steps.checkout.outcome == 'success' && matrix.branches != 'main' }}
|
||||||
run: composer require --dev nextcloud/ocp:dev-${{ matrix.branches }}
|
run: composer require --dev nextcloud/ocp:dev-${{ matrix.branches }}
|
||||||
|
|
||||||
|
- name: Raise on issue on failure
|
||||||
|
uses: dacbd/create-issue-action@ba4d1c45cccf9c483f2720cefb40e437f0ee6f7d # v1.2.1
|
||||||
|
if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_branch.conclusion == 'failure' }}
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
title: Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}
|
||||||
|
body: Please check the output of the GitHub action and manually resolve the issues<br>${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}<br>${{ steps.codeowners.outputs.codeowners }}
|
||||||
|
|
||||||
- name: Composer update nextcloud/ocp
|
- name: Composer update nextcloud/ocp
|
||||||
if: matrix.branches == 'main'
|
id: update_main
|
||||||
|
if: ${{ steps.checkout.outcome == 'success' && matrix.branches == 'main' }}
|
||||||
run: composer require --dev nextcloud/ocp:dev-master
|
run: composer require --dev nextcloud/ocp:dev-master
|
||||||
|
|
||||||
|
- name: Raise on issue on failure
|
||||||
|
uses: dacbd/create-issue-action@ba4d1c45cccf9c483f2720cefb40e437f0ee6f7d # v1.2.1
|
||||||
|
if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_main.conclusion == 'failure' }}
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
title: Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}
|
||||||
|
body: Please check the output of the GitHub action and manually resolve the issues<br>${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}<br>${{ steps.codeowners.outputs.codeowners }}
|
||||||
|
|
||||||
- name: Reset checkout 3rdparty
|
- name: Reset checkout 3rdparty
|
||||||
|
if: steps.checkout.outcome == 'success'
|
||||||
run: |
|
run: |
|
||||||
git clean -f 3rdparty
|
git clean -f 3rdparty
|
||||||
git checkout 3rdparty
|
git checkout 3rdparty
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Reset checkout vendor
|
- name: Reset checkout vendor
|
||||||
|
if: steps.checkout.outcome == 'success'
|
||||||
run: |
|
run: |
|
||||||
git clean -f vendor
|
git clean -f vendor
|
||||||
git checkout vendor
|
git checkout vendor
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Reset checkout vendor-bin
|
- name: Reset checkout vendor-bin
|
||||||
|
if: steps.checkout.outcome == 'success'
|
||||||
run: |
|
run: |
|
||||||
git clean -f vendor-bin
|
git clean -f vendor-bin
|
||||||
git checkout vendor-bin
|
git checkout vendor-bin
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
|
if: steps.checkout.outcome == 'success'
|
||||||
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v3
|
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v3
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||||
|
|||||||
Reference in New Issue
Block a user