Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
214db14
build(deps): bump actions/cache in /workflow-templates
dependabot[bot] Apr 20, 2026
3906f4a
Merge pull request #711 from nextcloud/dependabot/github_actions/work…
nickvergessen Apr 20, 2026
351a8b7
fix(psalm-phpstan): Remove roave/security-advisories
nickvergessen Apr 21, 2026
4c836a0
Merge pull request #712 from nextcloud/bugfix/noid/roave-security-adv…
nickvergessen Apr 21, 2026
1eaf9a6
ci(zizmor): Remove adjusted secrets-outside-env rule
nickvergessen Apr 21, 2026
a75a5a2
Merge pull request #713 from nextcloud/ci/noid/zizmor-remove-env
nickvergessen Apr 21, 2026
9ca4808
ci(deps): bump astral-sh/setup-uv in /.github/workflows
dependabot[bot] Apr 25, 2026
5811236
Merge pull request #714 from nextcloud/dependabot/github_actions/dot-…
nickvergessen Apr 25, 2026
b46b3bb
build(deps): bump actions/setup-node in /workflow-templates
dependabot[bot] Apr 27, 2026
976053c
Merge pull request #715 from nextcloud/dependabot/github_actions/work…
nickvergessen Apr 27, 2026
f2e18eb
build(deps): bump webiny/action-conventional-commits
dependabot[bot] May 1, 2026
5510368
Merge pull request #716 from nextcloud/dependabot/github_actions/work…
nickvergessen May 1, 2026
6ae952e
ci(deps): bump webiny/action-conventional-commits in /.github/workflows
dependabot[bot] May 2, 2026
833e2b2
Merge pull request #717 from nextcloud/dependabot/github_actions/dot-…
nickvergessen May 2, 2026
5c9a0d8
build(deps): bump cypress-io/github-action in /workflow-templates
dependabot[bot] May 4, 2026
dcd0980
Merge pull request #718 from nextcloud/dependabot/github_actions/work…
nickvergessen May 4, 2026
287d9ce
build(deps): bump cypress-io/github-action in /workflow-templates
dependabot[bot] May 11, 2026
bb6bd7e
Merge pull request #719 from nextcloud/dependabot/github_actions/work…
nickvergessen May 11, 2026
92d3852
build(deps): bump cypress-io/github-action in /workflow-templates
dependabot[bot] May 12, 2026
c4c13b1
Merge pull request #720 from nextcloud/dependabot/github_actions/work…
nickvergessen May 12, 2026
adf492f
fix(psalm-matrix): Fix PHP version pick up from matrix job
nickvergessen May 12, 2026
9e4a821
Merge pull request #721 from nextcloud/bugfix/noid/fix-psalm-matrix-p…
nickvergessen May 12, 2026
5a209e1
chore(branches): Support stable34
nickvergessen May 15, 2026
082cbd4
Merge pull request #722 from nextcloud/chore/stable34
nickvergessen May 15, 2026
e055d06
ci(zizmor): Use zizmor action directly
nickvergessen May 15, 2026
488897c
ci(zizmor): Fix tag pattern for setup-php
nickvergessen May 15, 2026
3530f9d
ci(zizmor): Fix misnamed version comments
nickvergessen May 15, 2026
1854a00
ci(zizmor): Update to latest
nickvergessen May 15, 2026
2f08bed
fix(zizmor): Fix tag names
nickvergessen May 15, 2026
cdfbfdf
fix(zizmor): Disable cache in release action
nickvergessen May 15, 2026
b109a60
Merge pull request #724 from nextcloud/chore/noid/zizmor-action
nickvergessen May 15, 2026
b4c0786
ci(cmd-compile): use persist-credentials: false and env indirection
joshtrichards Apr 6, 2026
1d3d97f
chore(cmd-compil): add suppressor
joshtrichards Apr 6, 2026
de034e3
Merge pull request #697 from nextcloud/jtr/ci-cmd-compile-defensive
susnux May 16, 2026
121aba7
fix(dependabot): only auto-merge minor and patch updates
susnux Apr 16, 2026
7bae095
Merge pull request #706 from nextcloud/fix/only-merge-minor-patch
susnux May 16, 2026
8240ae3
fix: correctly use `github.event.action` to fetch the type of event
susnux May 16, 2026
2f72ee6
chore: rename `node` to `npm-build` workflow
susnux Apr 16, 2026
e7192dc
chore: add fallback for legacy workflow name
susnux May 16, 2026
4eac221
fix: use one-line `gh` script instead of unmaintained action
susnux May 16, 2026
191c064
Merge pull request #726 from nextcloud/fix/auto-approve
susnux May 16, 2026
d77ae16
Merge pull request #725 from nextcloud/fix/automerge
susnux May 16, 2026
084450c
Merge pull request #707 from nextcloud/chore/rename-build
nickvergessen May 16, 2026
89473a4
chore: merge updated from Nextcloud organization
nextcloud-command May 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/block-unconventional-commits.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ jobs:
with:
persist-credentials: false

- uses: webiny/action-conventional-commits@faccb24fc2550dd15c0390d944379d2d8ed9690e # v1.3.1
- uses: webiny/action-conventional-commits@7f91b1595ca1951cdb671ddc9f07a49081ec5b69 # v1.4.2
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/dispatch-workflow-repo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,4 @@ jobs:
signoff: true
title: '[${{ github.event.inputs.branch }}] ci: update all workflow templates from organization template repository'
labels: dependencies
token: ${{ secrets.TEMPLATE_WORKFLOW_DISPATCH_PAT }} # zizmor: ignore[secrets-outside-env]
token: ${{ secrets.TEMPLATE_WORKFLOW_DISPATCH_PAT }}
2 changes: 1 addition & 1 deletion .github/workflows/dispatch-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,4 +109,4 @@ jobs:
signoff: true
title: 'ci: update ${{ github.event.inputs.name }} workflow from template'
labels: dependencies
token: ${{ secrets.TEMPLATE_WORKFLOW_DISPATCH_PAT }} # zizmor: ignore[secrets-outside-env]
token: ${{ secrets.TEMPLATE_WORKFLOW_DISPATCH_PAT }}
12 changes: 7 additions & 5 deletions .github/workflows/lint-yaml.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,10 @@ jobs:
- name: Install the latest version of uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0

- name: Check GitHub actions
run: uvx zizmor --min-severity medium .github/workflows/*.yml

- name: Check GitHub workflow-templates
run: uvx zizmor --min-severity medium workflow-templates/*.yml
- name: Run zizmor 🌈 on workflow-templates
uses: zizmorcore/zizmor-action@b572f7b1a1c2d41efaab43d504f68d215c3cd727 # v0.5.4
with:
inputs: 'workflow-templates/*.yml'
advanced-security: false
annotations: true
min-severity: 'medium'
2 changes: 1 addition & 1 deletion workflow-templates/block-unconventional-commits.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ jobs:
with:
persist-credentials: false

- uses: webiny/action-conventional-commits@faccb24fc2550dd15c0390d944379d2d8ed9690e # v1.3.1
- uses: webiny/action-conventional-commits@7f91b1595ca1951cdb671ddc9f07a49081ec5b69 # v1.4.2
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14 changes: 7 additions & 7 deletions workflow-templates/cypress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
TESTING=true npm run build --if-present

- name: Save context
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
key: cypress-context-${{ github.run_id }}
path: ./
Expand All @@ -88,7 +88,7 @@ jobs:

steps:
- name: Restore context
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
fail-on-cache-miss: true
key: cypress-context-${{ github.run_id }}
Expand All @@ -109,14 +109,14 @@ jobs:
- name: Run ${{ startsWith(matrix.containers, 'component') && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@4c06c48f3ffea349b7189aa06dfcda47a9fa7b92 # v7.1.8
with:
record: ${{ secrets.CYPRESS_RECORD_KEY && true }} # zizmor: ignore[secrets-outside-env]
parallel: ${{ secrets.CYPRESS_RECORD_KEY && true }} # zizmor: ignore[secrets-outside-env]
record: ${{ secrets.CYPRESS_RECORD_KEY && true }}
parallel: ${{ secrets.CYPRESS_RECORD_KEY && true }}
# cypress run type
component: ${{ startsWith(matrix.containers, 'component') }}
group: ${{ secrets.CYPRESS_RECORD_KEY && env.CYPRESS_GROUP }}
# cypress env
ci-build-id: ${{ secrets.CYPRESS_RECORD_KEY && env.CYPRESS_BUILD_ID }} # zizmor: ignore[secrets-outside-env]
tag: ${{ secrets.CYPRESS_RECORD_KEY && github.event_name }} # zizmor: ignore[secrets-outside-env]
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 }}
Expand All @@ -125,7 +125,7 @@ jobs:
# Needed for some specific code workarounds
TESTING: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} # zizmor: ignore[secrets-outside-env]
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_BUILD_ID: ${{ github.sha }}-${{ github.run_number }}
CYPRESS_GROUP: Run ${{ startsWith(matrix.containers, 'component') && 'component' || 'E2E' }}

Expand Down
19 changes: 13 additions & 6 deletions workflow-templates/dependabot-approve-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
if: github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'renovate[bot]'
runs-on: ubuntu-latest
permissions:
# for hmarr/auto-approve-action to approve PRs
# for auto-approve step to work
pull-requests: write
# for alexwilson/enable-github-automerge-action to approve PRs
contents: write
Expand All @@ -44,15 +44,22 @@ jobs:
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

# GitHub actions bot approve
- uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0
if: startsWith(steps.branchname.outputs.branch, 'dependabot/')
- name: Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@ffa630c65fa7e0ecfa0625b5ceda64399aea1b36 # v3.0.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: GitHub actions bot approve
if: startsWith(steps.branchname.outputs.branch, 'dependabot/')
run: gh pr review --approve "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# Enable GitHub auto merge
- name: Auto merge
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0
if: startsWith(steps.branchname.outputs.branch, 'dependabot/') && (github.event.pull_request.action == 'opened' || github.event.pull_request.action == 'reopened')
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # 2.0.0
if: startsWith(steps.branchname.outputs.branch, 'dependabot/') && (github.event.action == 'opened' || github.event.action == 'reopened') && (steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor')
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
11 changes: 0 additions & 11 deletions workflow-templates/node.properties.json

This file was deleted.

6 changes: 4 additions & 2 deletions workflow-templates/node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT

name: Node
# TODO: Remove this after a grace period of 6 months to give everyone the chance to switch to the new workflow name
# TODO: To be removed end of 2026.
name: No-op please switch to npm-build.yml

on: pull_request

permissions:
contents: read
contents: none

concurrency:
group: node-${{ github.head_ref || github.run_id }}
Expand Down
2 changes: 1 addition & 1 deletion workflow-templates/npm-audit-fix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ jobs:
if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }} # zizmor: ignore[secrets-outside-env]
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'fix(deps): Fix npm audit'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
Expand Down
11 changes: 11 additions & 0 deletions workflow-templates/npm-build.properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"name": "Frontend build workflow",
"description": "Nextcloud workflow template for check frontend builds.",
"iconName": "npm-build",
"categories": [
"JavaScript"
],
"filePatterns": [
"^package.json$"
]
}
File renamed without changes
113 changes: 113 additions & 0 deletions workflow-templates/npm-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# 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
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT

name: Build Javascript

on: pull_request

permissions:
contents: read

concurrency:
group: node-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read

outputs:
src: ${{ steps.changes.outputs.src}}

steps:
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'

build:
runs-on: ubuntu-latest

needs: changes
if: needs.changes.outputs.src != 'false'

name: NPM build
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'

- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}

- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'

- name: Validate package-lock.json # See https://github.com/npm/cli/issues/4460
run: |
npm i -g npm-package-lock-add-resolved@1.1.4
npm-package-lock-add-resolved
git --no-pager diff --exit-code

- name: Install dependencies & build
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: |
npm ci
npm run build --if-present

- name: Check build changes
run: |
bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)"

- name: Show changes on failure
if: failure()
run: |
git status
git --no-pager diff
exit 1 # make it red to grab attention

summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, build]

if: always()

# This is the summary, we just avoid to rename it so that branch protection rules still match
name: node

steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.build.result != 'success' }}; then exit 1; fi
5 changes: 1 addition & 4 deletions workflow-templates/phpstan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
run: "grep 'min: ${{ steps.versions.outputs.php-min-id }}' phpstan.neon"

- name: Set up php${{ steps.versions.outputs.php-available }}
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # 2.37.0
with:
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
Expand All @@ -52,9 +52,6 @@ jobs:
composer remove nextcloud/ocp --dev --no-scripts
composer i

- name: Check for vulnerable PHP dependencies
run: composer require --dev roave/security-advisories:dev-latest

- name: Install nextcloud/ocp
run: composer require --dev nextcloud/ocp:dev-${{ steps.versions.outputs.branches-max }} --ignore-platform-reqs --with-dependencies

Expand Down
4 changes: 2 additions & 2 deletions workflow-templates/rector-apply.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@

- name: Get php version
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2.3.1.3.2

Check warning on line 36 in workflow-templates/rector-apply.yml

View workflow job for this annotation

GitHub Actions / yaml

ref-version-mismatch

rector-apply.yml:36: action's hash pin has mismatched or missing version comment: points to unknown ref

- name: Set up php${{ steps.versions.outputs.php-min }}
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # 2.37.0
with:
php-version: ${{ steps.versions.outputs.php-min }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
Expand All @@ -56,7 +56,7 @@
- name: Create Pull Request
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }} # zizmor: ignore[secrets-outside-env]
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'refactor: Apply rector changes'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
Expand Down
15 changes: 8 additions & 7 deletions workflow-templates/renovate-approve-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
if: github.event.pull_request.user.login == 'renovate[bot]'
runs-on: ubuntu-latest
permissions:
# for hmarr/auto-approve-action to approve PRs
# for auto-approve step to work
pull-requests: write
# for alexwilson/enable-github-automerge-action to approve PRs
contents: write
Expand All @@ -44,15 +44,16 @@ jobs:
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

# GitHub actions bot approve
- uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0
- name: GitHub actions bot approve
if: startsWith(steps.branchname.outputs.branch, 'renovate/')
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
run: gh pr review --approve "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# Enable GitHub auto merge
- name: Auto merge
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0
if: startsWith(steps.branchname.outputs.branch, 'renovate/') && (github.event.pull_request.action == 'opened' || github.event.pull_request.action == 'reopened')
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # 2.0.0
if: startsWith(steps.branchname.outputs.branch, 'renovate/') && (github.event.action == 'opened' || github.event.action == 'reopened')
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
3 changes: 2 additions & 1 deletion workflow-templates/sync-workflow-templates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
matrix:
branches:
- ${{ github.event.repository.default_branch }}
- 'stable34'
- 'stable33'
- 'stable32'

Expand Down Expand Up @@ -122,7 +123,7 @@ jobs:
- name: Create Pull Request
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
token: ${{ secrets.COMMAND_BOT_WORKFLOWS }} # zizmor: ignore[secrets-outside-env]
token: ${{ secrets.COMMAND_BOT_WORKFLOWS }}
commit-message: 'ci(actions): Update workflow templates from organization template repository'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
Expand Down
Loading