From 6b64d687ee5e735a4793f18a27726b095623ffbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6?= <14975046+skjnldsv@users.noreply.github.com> Date: Thu, 1 Oct 2026 22:00:26 +0200 Subject: [PATCH] ci: migrate to nextcloud-libraries/parse-package-engines-action MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It also reads devEngines and is already used by the playwright template and the nextcloud-libraries templates. It has no fallback inputs, so the fallbacks move into the expressions, and the steps that skip when there is no package.json now check the step outcome instead of the output. Assisted-by: ClaudeCode:claude-opus-5-5 Signed-off-by: John Molakvoæ <14975046+skjnldsv@users.noreply.github.com> --- workflow-templates/appstore-build-publish.yml | 20 +++++++++---------- workflow-templates/command-compile.yml | 13 +++++------- workflow-templates/command-openapi.yml | 17 +++++++--------- workflow-templates/cypress.yml | 17 +++++++--------- workflow-templates/documentation.yml | 13 +++++------- workflow-templates/lint-eslint.yml | 13 +++++------- workflow-templates/lint-stylelint.yml | 13 +++++------- workflow-templates/lint-typescript.yml | 13 +++++------- workflow-templates/node-test.yml | 13 +++++------- workflow-templates/npm-audit-fix.yml | 13 +++++------- workflow-templates/npm-build.yml | 13 +++++------- workflow-templates/openapi.yml | 19 ++++++++---------- 12 files changed, 71 insertions(+), 106 deletions(-) diff --git a/workflow-templates/appstore-build-publish.yml b/workflow-templates/appstore-build-publish.yml index ba35bd80..61d3e247 100644 --- a/workflow-templates/appstore-build-publish.yml +++ b/workflow-templates/appstore-build-publish.yml @@ -59,27 +59,25 @@ jobs: expression: "//info//dependencies//nextcloud/@min-version" - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: versions # Continue if no package.json continue-on-error: true with: - path: ${{ env.APP_NAME }} - fallbackNode: '^24' - fallbackNpm: '^11.3' + path: ${{ env.APP_NAME }}/package.json - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.versions.outputs.node-version || '^24' }} # Skip if no package.json - if: ${{ steps.versions.outputs.nodeVersion }} + if: ${{ steps.versions.outcome == 'success' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.versions.outputs.nodeVersion }} + node-version: ${{ steps.versions.outputs.node-version || '^24' }} package-manager-cache: false - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} + - name: Set up npm ${{ steps.versions.outputs.package-manager-version || '^11.3' }} # Skip if no package.json - if: ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + if: ${{ steps.versions.outcome == 'success' }} + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version || '^11.3' }}' - name: Get php version id: php-versions @@ -111,7 +109,7 @@ jobs: - name: Build ${{ env.APP_NAME }} # Skip if no package.json - if: ${{ steps.versions.outputs.nodeVersion }} + if: ${{ steps.versions.outcome == 'success' }} env: CYPRESS_INSTALL_BINARY: 0 run: | diff --git a/workflow-templates/command-compile.yml b/workflow-templates/command-compile.yml index ac017f62..b321d8d0 100644 --- a/workflow-templates/command-compile.yml +++ b/workflow-templates/command-compile.yml @@ -116,20 +116,17 @@ jobs: git config --local user.name 'nextcloud-command' - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: package-engines-versions - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.package-engines-versions.outputs.node-version || '^24' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }} + node-version: ${{ steps.package-engines-versions.outputs.node-version || '^24' }} cache: npm - - name: Set up npm ${{ steps.package-engines-versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.package-engines-versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.package-engines-versions.outputs.package-manager-version || '^11.3' }} + run: npm i -g 'npm@${{ steps.package-engines-versions.outputs.package-manager-version || '^11.3' }}' - name: Rebase to ${{ needs.init.outputs.base_ref }} if: ${{ contains(needs.init.outputs.arg1, 'rebase') }} diff --git a/workflow-templates/command-openapi.yml b/workflow-templates/command-openapi.yml index fb7ca980..14a8d1aa 100644 --- a/workflow-templates/command-openapi.yml +++ b/workflow-templates/command-openapi.yml @@ -124,23 +124,20 @@ jobs: - name: Read package.json node and npm engines version if: steps.check_typescript_openapi.outputs.files_exists == 'true' - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: node_versions # Continue if no package.json continue-on-error: true - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.node_versions.outputs.nodeVersion }} - if: ${{ steps.node_versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.node_versions.outputs.node-version || '^24' }} + if: ${{ steps.node_versions.outcome == 'success' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.node_versions.outputs.nodeVersion }} + node-version: ${{ steps.node_versions.outputs.node-version || '^24' }} - - name: Set up npm ${{ steps.node_versions.outputs.npmVersion }} - if: ${{ steps.node_versions.outputs.nodeVersion }} - run: npm i -g 'npm@${{ steps.node_versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.node_versions.outputs.package-manager-version || '^11.3' }} + if: ${{ steps.node_versions.outcome == 'success' }} + run: npm i -g 'npm@${{ steps.node_versions.outputs.package-manager-version || '^11.3' }}' - name: Rebase to ${{ needs.init.outputs.base_ref }} if: ${{ contains(needs.init.outputs.arg1, 'rebase') }} diff --git a/workflow-templates/cypress.yml b/workflow-templates/cypress.yml index c275c52d..9f13ea7b 100644 --- a/workflow-templates/cypress.yml +++ b/workflow-templates/cypress.yml @@ -32,8 +32,8 @@ jobs: init: runs-on: ubuntu-latest outputs: - nodeVersion: ${{ steps.versions.outputs.nodeVersion }} - npmVersion: ${{ steps.versions.outputs.npmVersion }} + nodeVersion: ${{ steps.versions.outputs.node-version || '^24' }} + npmVersion: ${{ steps.versions.outputs.package-manager-version || '^11.3' }} env: PUPPETEER_SKIP_DOWNLOAD: true @@ -63,19 +63,16 @@ jobs: composer-options: '--no-dev' - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: versions - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.versions.outputs.node-version || '^24' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.versions.outputs.nodeVersion }} + node-version: ${{ steps.versions.outputs.node-version || '^24' }} - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.versions.outputs.package-manager-version || '^11.3' }} + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version || '^11.3' }}' - name: Install node dependencies & build app run: | diff --git a/workflow-templates/documentation.yml b/workflow-templates/documentation.yml index 1b36b668..92a92c58 100644 --- a/workflow-templates/documentation.yml +++ b/workflow-templates/documentation.yml @@ -35,20 +35,17 @@ jobs: persist-credentials: false - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: versions - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.versions.outputs.node-version || '^24' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.versions.outputs.nodeVersion }} + node-version: ${{ steps.versions.outputs.node-version || '^24' }} package-manager-cache: false - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.versions.outputs.package-manager-version || '^11.3' }} + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version || '^11.3' }}' - name: Install dependencies & build env: diff --git a/workflow-templates/lint-eslint.yml b/workflow-templates/lint-eslint.yml index 317e3c67..8cb333e2 100644 --- a/workflow-templates/lint-eslint.yml +++ b/workflow-templates/lint-eslint.yml @@ -61,19 +61,16 @@ jobs: persist-credentials: false - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: versions - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.versions.outputs.node-version || '^24' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.versions.outputs.nodeVersion }} + node-version: ${{ steps.versions.outputs.node-version || '^24' }} - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.versions.outputs.package-manager-version || '^11.3' }} + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version || '^11.3' }}' - name: Install dependencies env: diff --git a/workflow-templates/lint-stylelint.yml b/workflow-templates/lint-stylelint.yml index 89149dd4..4c3c69cf 100644 --- a/workflow-templates/lint-stylelint.yml +++ b/workflow-templates/lint-stylelint.yml @@ -30,19 +30,16 @@ jobs: persist-credentials: false - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: versions - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.versions.outputs.node-version || '^24' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.versions.outputs.nodeVersion }} + node-version: ${{ steps.versions.outputs.node-version || '^24' }} - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.versions.outputs.package-manager-version || '^11.3' }} + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version || '^11.3' }}' - name: Install dependencies env: diff --git a/workflow-templates/lint-typescript.yml b/workflow-templates/lint-typescript.yml index 51037d40..c59c97a5 100644 --- a/workflow-templates/lint-typescript.yml +++ b/workflow-templates/lint-typescript.yml @@ -60,19 +60,16 @@ jobs: persist-credentials: false - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: versions - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.versions.outputs.node-version || '^24' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.versions.outputs.nodeVersion }} + node-version: ${{ steps.versions.outputs.node-version || '^24' }} - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.versions.outputs.package-manager-version || '^11.3' }} + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version || '^11.3' }}' - name: Install dependencies env: diff --git a/workflow-templates/node-test.yml b/workflow-templates/node-test.yml index c25b088f..01dec18b 100644 --- a/workflow-templates/node-test.yml +++ b/workflow-templates/node-test.yml @@ -65,19 +65,16 @@ jobs: persist-credentials: false - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: versions - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.versions.outputs.node-version || '^24' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.versions.outputs.nodeVersion }} + node-version: ${{ steps.versions.outputs.node-version || '^24' }} - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.versions.outputs.package-manager-version || '^11.3' }} + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version || '^11.3' }}' - name: Install dependencies & build env: diff --git a/workflow-templates/npm-audit-fix.yml b/workflow-templates/npm-audit-fix.yml index 3a3ecc24..770b7dc2 100644 --- a/workflow-templates/npm-audit-fix.yml +++ b/workflow-templates/npm-audit-fix.yml @@ -47,19 +47,16 @@ jobs: continue-on-error: true - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: versions - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.versions.outputs.node-version || '^24' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.versions.outputs.nodeVersion }} + node-version: ${{ steps.versions.outputs.node-version || '^24' }} - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.versions.outputs.package-manager-version || '^11.3' }} + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version || '^11.3' }}' - name: Fix npm audit id: npm-audit diff --git a/workflow-templates/npm-build.yml b/workflow-templates/npm-build.yml index a7f1e426..fd6648c2 100644 --- a/workflow-templates/npm-build.yml +++ b/workflow-templates/npm-build.yml @@ -58,19 +58,16 @@ jobs: persist-credentials: false - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: versions - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.versions.outputs.node-version || '^24' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.versions.outputs.nodeVersion }} + node-version: ${{ steps.versions.outputs.node-version || '^24' }} - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.versions.outputs.package-manager-version || '^11.3' }} + run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version || '^11.3' }}' - name: Validate package-lock.json # See https://github.com/npm/cli/issues/4460 run: | diff --git a/workflow-templates/openapi.yml b/workflow-templates/openapi.yml index f8a14609..c18233dc 100644 --- a/workflow-templates/openapi.yml +++ b/workflow-templates/openapi.yml @@ -52,26 +52,23 @@ jobs: - name: Read package.json node and npm engines version if: steps.check_typescript_openapi.outputs.files_exists == 'true' - uses: skjnldsv/read-package-engines-version-actions@06d6db44aa62f4609ba070f556ec24bc99fb85cb # v4 + uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0 id: node_versions # Continue if no package.json continue-on-error: true - with: - fallbackNode: '^24' - fallbackNpm: '^11.3' - - name: Set up node ${{ steps.node_versions.outputs.nodeVersion }} - if: ${{ steps.node_versions.outputs.nodeVersion }} + - name: Set up node ${{ steps.node_versions.outputs.node-version || '^24' }} + if: ${{ steps.node_versions.outcome == 'success' }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: ${{ steps.node_versions.outputs.nodeVersion }} + node-version: ${{ steps.node_versions.outputs.node-version || '^24' }} - - name: Set up npm ${{ steps.node_versions.outputs.npmVersion }} - if: ${{ steps.node_versions.outputs.nodeVersion }} - run: npm i -g 'npm@${{ steps.node_versions.outputs.npmVersion }}' + - name: Set up npm ${{ steps.node_versions.outputs.package-manager-version || '^11.3' }} + if: ${{ steps.node_versions.outcome == 'success' }} + run: npm i -g 'npm@${{ steps.node_versions.outputs.package-manager-version || '^11.3' }}' - name: Install dependencies - if: ${{ steps.node_versions.outputs.nodeVersion }} + if: ${{ steps.node_versions.outcome == 'success' }} env: CYPRESS_INSTALL_BINARY: 0 PUPPETEER_SKIP_DOWNLOAD: true