aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/block-merge-freeze.yml8
-rw-r--r--.github/workflows/command-compile.yml10
-rw-r--r--.github/workflows/cypress.yml59
-rw-r--r--.github/workflows/lint-eslint.yml9
-rw-r--r--.github/workflows/lint-php-cs.yml50
-rw-r--r--.github/workflows/lint-php.yml40
6 files changed, 58 insertions, 118 deletions
diff --git a/.github/workflows/block-merge-freeze.yml b/.github/workflows/block-merge-freeze.yml
index d052668b310..bbbe1ab0def 100644
--- a/.github/workflows/block-merge-freeze.yml
+++ b/.github/workflows/block-merge-freeze.yml
@@ -28,8 +28,12 @@ jobs:
runs-on: ubuntu-latest-low
steps:
- - name: Download version.php from ${{ github.base_ref }}
- run: curl 'https://raw.githubusercontent.com/nextcloud/server/${{ github.base_ref }}/version.php' --output version.php
+ - name: Register server reference to fallback to master branch
+ run: |
+ server_ref="$(if [ '${{ github.base_ref }}' = 'main' ]; then echo -n 'master'; else echo -n '${{ github.base_ref }}'; fi)"
+ echo "server_ref=$server_ref" >> $GITHUB_ENV
+ - name: Download version.php from ${{ env.server_ref }}
+ run: curl 'https://raw.githubusercontent.com/nextcloud/server/${{ env.server_ref }}/version.php' --output version.php
- name: Run check
run: cat version.php | grep 'OC_VersionString' | grep -i -v 'RC'
diff --git a/.github/workflows/command-compile.yml b/.github/workflows/command-compile.yml
index 3d9f618612c..26b7c00141b 100644
--- a/.github/workflows/command-compile.yml
+++ b/.github/workflows/command-compile.yml
@@ -86,7 +86,7 @@ jobs:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
- reactions: "-1"
+ reactions: '-1'
process:
runs-on: ubuntu-latest
@@ -119,14 +119,14 @@ jobs:
fallbackNpm: '^10'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v3
+ uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
cache: npm
- name: Set up npm ${{ steps.package-engines-versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.package-engines-versions.outputs.npmVersion }}'
-
+
- name: Rebase to ${{ needs.init.outputs.base_ref }}
if: ${{ contains(needs.init.outputs.arg1, 'rebase') }}
run: |
@@ -146,7 +146,7 @@ jobs:
run: |
git add '${{ github.workspace }}${{ needs.init.outputs.git_path }}'
git commit --signoff -m 'chore(assets): Recompile assets'
-
+
- name: Commit fixup
if: ${{ contains(needs.init.outputs.arg1, 'fixup') }}
run: |
@@ -176,4 +176,4 @@ jobs:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
- reactions: "-1"
+ reactions: '-1'
diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml
index 7ce5e72045e..2788e6f0a8d 100644
--- a/.github/workflows/cypress.yml
+++ b/.github/workflows/cypress.yml
@@ -18,19 +18,20 @@ env:
# Adjust APP_NAME if your repository name is different
APP_NAME: ${{ github.event.repository.name }}
- # Server requires head_ref instead of base_ref, as we want to test the PR branch
- BRANCH: ${{ github.head_ref || github.ref_name }}
+ # This represents the server branch to checkout.
+ # Usually it's the base branch of the PR, but for pushes it's the branch itself.
+ # e.g. 'main', 'stable27' or 'feature/my-feature'
+ # n.b. server will use head_ref, as we want to test the PR branch.
+ BRANCH: ${{ github.base_ref || github.ref_name }}
jobs:
init:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-latest-low
outputs:
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
npmVersion: ${{ steps.versions.outputs.npmVersion }}
env:
- # We'll install cypress in the cypress job
- CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
@@ -40,11 +41,8 @@ jobs:
echo 'Can not run cypress on forks'
exit 1
- - name: Checkout server
+ - name: Checkout app
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- with:
- # We need to checkout submodules for 3rdparty
- submodules: true
- name: Check composer.json
id: check_composer
@@ -76,9 +74,6 @@ jobs:
npm ci
TESTING=true npm run build --if-present
- - name: Show cypress version
- run: npm run cypress:version
-
- name: Save context
uses: buildjet/cache/save@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
with:
@@ -93,11 +88,8 @@ jobs:
fail-fast: false
matrix:
# Run multiple copies of the current job in parallel
- # Please increase the number or runners as your tests suite grows (0 based index for e2e tests)
- containers: ["component", '0', '1', '2', '3', '4', '5', '6', '7']
- # Hack as strategy.job-total includes the component and GitHub does not allow math expressions
- # Always align this number with the total of e2e runners (max. index + 1)
- total-containers: [8]
+ # Please increase the number or runners as your tests suite grows
+ containers: ['component', '1', '2', '3']
name: runner ${{ matrix.containers }}
@@ -117,19 +109,17 @@ jobs:
- name: Set up npm ${{ needs.init.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.init.outputs.npmVersion }}'
- - name: Install cypress
- run: ./node_modules/cypress/bin/cypress install
-
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@df7484c5ba85def7eef30db301afa688187bc378 # v6.7.2
with:
- # We already installed the dependencies in the init job
- install: false
+ record: ${{ secrets.CYPRESS_RECORD_KEY && true }}
+ parallel: ${{ secrets.CYPRESS_RECORD_KEY && true }}
+ # cypress run type
component: ${{ matrix.containers == 'component' }}
- group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud && 'Run E2E' || '' }}
+ group: ${{ secrets.CYPRESS_RECORD_KEY && env.CYPRESS_GROUP }}
# cypress env
- ci-build-id: ${{ matrix.use-cypress-cloud && format('{0}-{1}', github.sha, github.run_number) || '' }}
- tag: ${{ matrix.use-cypress-cloud && github.event_name || '' }}
+ ci-build-id: ${{ secrets.CYPRESS_RECORD_KEY && env.CYPRESS_BUILD_ID }}
+ tag: ${{ secrets.CYPRESS_RECORD_KEY && github.event_name }}
env:
# Needs to be prefixed with CYPRESS_
CYPRESS_BRANCH: ${{ env.BRANCH }}
@@ -139,11 +129,11 @@ jobs:
TESTING: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
- SPLIT: ${{ matrix.total-containers }}
- SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
+ CYPRESS_BUILD_ID: ${{ github.sha }}-${{ github.run_number }}
+ CYPRESS_GROUP: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }}
- name: Upload snapshots
- uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
+ uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
if: always()
with:
name: snapshots_${{ matrix.containers }}
@@ -154,23 +144,12 @@ jobs:
run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log
- name: Upload NC logs
- uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
+ uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6
if: failure() && matrix.containers != 'component'
with:
name: nc_logs_${{ matrix.containers }}
path: nextcloud.log
- - name: Create data dir archive
- if: failure() && matrix.containers != 'component'
- run: docker exec nextcloud-cypress-tests-server tar -cvjf - data > data.tar
-
- - name: Upload data dir archive
- uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
- if: failure() && matrix.containers != 'component'
- with:
- name: nc_data_${{ matrix.containers }}
- path: data.tar
-
summary:
runs-on: ubuntu-latest-low
needs: [init, cypress]
diff --git a/.github/workflows/lint-eslint.yml b/.github/workflows/lint-eslint.yml
index e53cc1977f2..74c5e9c88fd 100644
--- a/.github/workflows/lint-eslint.yml
+++ b/.github/workflows/lint-eslint.yml
@@ -20,6 +20,9 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest-low
+ permissions:
+ contents: read
+ pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
@@ -32,8 +35,8 @@ jobs:
filters: |
src:
- '.github/workflows/**'
- - '**/src/**'
- - '**/appinfo/info.xml'
+ - 'src/**'
+ - 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
@@ -63,7 +66,7 @@ jobs:
fallbackNpm: '^10'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v3
+ uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
diff --git a/.github/workflows/lint-php-cs.yml b/.github/workflows/lint-php-cs.yml
index f2af7aea535..5108348894d 100644
--- a/.github/workflows/lint-php-cs.yml
+++ b/.github/workflows/lint-php-cs.yml
@@ -18,42 +18,23 @@ concurrency:
cancel-in-progress: true
jobs:
- changes:
- runs-on: ubuntu-latest-low
-
- outputs:
- src: ${{ steps.changes.outputs.src}}
-
- steps:
- - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
- id: changes
- continue-on-error: true
- with:
- filters: |
- src:
- - '.github/workflows/**'
- - '3rdparty/**'
- - '**/lib/**'
- - '**/tests/**'
- - '**/vendor-bin/**'
- - '.php-cs-fixer.dist.php'
- - 'composer.json'
- - 'composer.lock'
- - '**.php'
-
lint:
runs-on: ubuntu-latest
- name: PHP CS fixer lint
+ name: php-cs
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- - name: Set up php8.1
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
+ - name: Get php version
+ id: versions
+ uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
+
+ - name: Set up php${{ steps.versions.outputs.php-available }}
+ uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
with:
- php-version: 8.1
+ php-version: ${{ steps.versions.outputs.php-available }}
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
@@ -65,18 +46,3 @@ jobs:
- name: Lint
run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
-
- summary:
- permissions:
- contents: none
- runs-on: ubuntu-latest-low
- needs: [changes, lint]
-
- if: always()
-
- # This is the summary, we just avoid to rename it so that branch protection rules still match
- name: php-cs
-
- steps:
- - name: Summary status
- run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml
index 4941de4be16..104fed644c6 100644
--- a/.github/workflows/lint-php.yml
+++ b/.github/workflows/lint-php.yml
@@ -18,36 +18,23 @@ concurrency:
cancel-in-progress: true
jobs:
- changes:
+ matrix:
runs-on: ubuntu-latest-low
outputs:
- src: ${{ steps.changes.outputs.src}}
+ php-versions: ${{ steps.versions.outputs.php-versions }}
steps:
- - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
- id: changes
- continue-on-error: true
- with:
- filters: |
- src:
- - '.github/workflows/**'
- - '3rdparty/**'
- - '**/lib/**'
- - '**/tests/**'
- - '**/vendor-bin/**'
- - '.php-cs-fixer.dist.php'
- - 'composer.json'
- - 'composer.lock'
- - '**.php'
+ - name: Checkout app
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - name: Get version matrix
+ id: versions
+ uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.0.0
- lint:
+ php-lint:
runs-on: ubuntu-latest
-
- needs: changes
- if: needs.changes.outputs.src != 'false'
-
+ needs: matrix
strategy:
matrix:
- php-versions: [ '8.1', '8.2', '8.3' ]
+ php-versions: ${{fromJson(needs.matrix.outputs.php-versions)}}
name: php-lint
@@ -56,9 +43,10 @@ jobs:
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
+ uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
with:
php-version: ${{ matrix.php-versions }}
+ 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:
@@ -71,7 +59,7 @@ jobs:
permissions:
contents: none
runs-on: ubuntu-latest-low
- needs: [changes, lint]
+ needs: php-lint
if: always()
@@ -79,4 +67,4 @@ jobs:
steps:
- name: Summary status
- run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
+ run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi