chore: update workflows from templates

Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
This commit is contained in:
John Molakvoæ
2023-12-26 14:24:37 +01:00
committed by Julius Härtl
parent 64308791fd
commit e537e41254
9 changed files with 133 additions and 68 deletions

View File

@@ -10,7 +10,7 @@ on:
types: [published] types: [published]
env: env:
PHP_VERSION: 8.1 PHP_VERSION: 8.2
jobs: jobs:
build_and_publish: build_and_publish:
@@ -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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with: with:
path: ${{ env.APP_NAME }} path: ${{ env.APP_NAME }}
@@ -50,8 +50,8 @@ 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
@@ -66,7 +66,7 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}" run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Set up php ${{ env.PHP_VERSION }} - name: Set up php ${{ env.PHP_VERSION }}
uses: shivammathur/setup-php@2.27.1 # v2 uses: shivammathur/setup-php@e6f75134d35752277f093989e72e140eaa222f35 # v2
with: with:
php-version: ${{ env.PHP_VERSION }} php-version: ${{ env.PHP_VERSION }}
coverage: none coverage: none
@@ -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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
if: ${{ steps.server-checkout.outcome != 'success' }} if: ${{ steps.server-checkout.outcome != 'success' }}
with: with:
submodules: true submodules: true

View File

@@ -8,20 +8,7 @@
name: Lint eslint name: Lint eslint
on: on: pull_request
pull_request:
paths:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
permissions: permissions:
contents: read contents: read
@@ -31,21 +18,49 @@ concurrency:
cancel-in-progress: true cancel-in-progress: true
jobs: 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/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- 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@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
@@ -56,7 +71,25 @@ 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
PUPPETEER_SKIP_DOWNLOAD: true
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

View File

@@ -22,12 +22,12 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 # v3.5.2 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up php - name: Set up php8.2
uses: shivammathur/setup-php@2.27.1 # v2 uses: shivammathur/setup-php@e6f75134d35752277f093989e72e140eaa222f35 # v2
with: with:
php-version: 8.1 php-version: 8.2
coverage: none coverage: none
ini-file: development ini-file: development
env: env:

View File

@@ -5,13 +5,7 @@
name: Lint php name: Lint php
on: on: pull_request
pull_request:
push:
branches:
- main
- master
- stable*
permissions: permissions:
contents: read contents: read
@@ -25,16 +19,16 @@ 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', '8.3' ]
name: php-lint name: php-lint
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 # v3.5.2 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up php ${{ matrix.php-versions }} - name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.27.1 # v2 uses: shivammathur/setup-php@e6f75134d35752277f093989e72e140eaa222f35 # v2
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
coverage: none coverage: none

View File

@@ -22,14 +22,14 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 # v3.5.2 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- 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@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
@@ -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

View File

@@ -18,13 +18,13 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
branches: ["main", "master", "stable27", "stable26", "stable25", "stable24"] branches: ['main', 'master', 'stable28', 'stable27', 'stable26']
name: npm-audit-fix-${{ matrix.branches }} name: npm-audit-fix-${{ matrix.branches }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 # v3.5.2 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with: with:
ref: ${{ matrix.branches }} ref: ${{ matrix.branches }}
@@ -32,8 +32,8 @@ 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@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
@@ -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

View File

@@ -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,datenangebot"
exempt-bots: true exempt-bots: true

View File

@@ -5,13 +5,7 @@
name: Static analysis name: Static analysis
on: on: pull_request
pull_request:
push:
branches:
- master
- main
- stable*
concurrency: concurrency:
group: psalm-${{ github.head_ref || github.run_id }} group: psalm-${{ github.head_ref || github.run_id }}
@@ -21,15 +15,15 @@ jobs:
static-analysis: static-analysis:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: Nextcloud name: static-psalm-analysis
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 # v3.5.2 uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up php - name: Set up php8.2
uses: shivammathur/setup-php@2.27.1 # v2 uses: shivammathur/setup-php@e6f75134d35752277f093989e72e140eaa222f35 # v2
with: with:
php-version: 8.1 php-version: 8.2
coverage: none coverage: none
ini-file: development ini-file: development
env: env:

View File

@@ -17,56 +17,89 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
branches: ["main", "master", "stable27", "stable26", "stable25"] branches: ['main', 'master', 'stable28', 'stable27', 'stable26']
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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
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.2
uses: shivammathur/setup-php@2.27.1 # v2 if: steps.checkout.outcome == 'success'
uses: shivammathur/setup-php@e6f75134d35752277f093989e72e140eaa222f35 # v2
with: with:
php-version: 8.1 php-version: 8.2
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation # 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 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 coverage: none
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 }}