From 65cf8eb6afd1451b43623b67f68d8211f378bc32 Mon Sep 17 00:00:00 2001 From: Marco Spengler Date: Mon, 8 Jul 2024 12:31:16 +0200 Subject: [PATCH 1/4] chore: manifest required Node.js version in package.json (N8N-19) --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 3e5d9bce..64c35600 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,9 @@ "typescript": "5.5.3", "verdaccio": "^5.30.3" }, + "engines": { + "node": "20.14.0" + }, "nx": { "includedScripts": [] }, From f917352b39289fe3ca25be9821fdf7cb8e1c7b5b Mon Sep 17 00:00:00 2001 From: Marco Spengler Date: Mon, 8 Jul 2024 12:33:33 +0200 Subject: [PATCH 2/4] ci: update workflows to determine node version based on package.json (N8N-19) --- .github/workflows/create-github-release.yaml | 5 +---- .github/workflows/n8n-dependency-update.yaml | 11 ++++------- .github/workflows/nx-dependency-update.yaml | 5 +---- .github/workflows/publish-package.yaml | 5 +---- .github/workflows/pull-request.yaml | 5 +---- .github/workflows/release-package.yaml | 5 +---- 6 files changed, 9 insertions(+), 27 deletions(-) diff --git a/.github/workflows/create-github-release.yaml b/.github/workflows/create-github-release.yaml index 765f3d25..901950cc 100644 --- a/.github/workflows/create-github-release.yaml +++ b/.github/workflows/create-github-release.yaml @@ -10,9 +10,6 @@ on: permissions: contents: write -env: - NODE_VERSION: '20.14.0' - jobs: create-release: name: Create GitHub Release @@ -60,7 +57,7 @@ jobs: uses: actions/setup-node@v4 with: cache: pnpm - node-version: ${{ env.NODE_VERSION }} + node-version-file: package.json - name: Install dependencies run: pnpm install diff --git a/.github/workflows/n8n-dependency-update.yaml b/.github/workflows/n8n-dependency-update.yaml index d38cbe98..970f41c5 100644 --- a/.github/workflows/n8n-dependency-update.yaml +++ b/.github/workflows/n8n-dependency-update.yaml @@ -7,9 +7,6 @@ on: required: true type: string -env: - NODE_VERSION: '20.14.0' - jobs: update-node-version: name: Update Node.js Version @@ -28,7 +25,7 @@ jobs: uses: actions/setup-node@v4 with: cache: pnpm - node-version: ${{ env.NODE_VERSION }} + node-version-file: package.json - name: Install dependencies run: pnpm install @@ -87,7 +84,7 @@ jobs: uses: actions/setup-node@v4 with: cache: pnpm - node-version: ${{ env.NODE_VERSION }} + node-version-file: package.json - name: Install dependencies run: pnpm install @@ -178,7 +175,7 @@ jobs: uses: actions/setup-node@v4 with: cache: pnpm - node-version: ${{ env.NODE_VERSION }} + node-version-file: package.json - name: Install dependencies run: pnpm install @@ -239,7 +236,7 @@ jobs: uses: actions/setup-node@v4 with: cache: pnpm - node-version: ${{ env.NODE_VERSION }} + node-version-file: package.json - name: Install dependencies run: pnpm install diff --git a/.github/workflows/nx-dependency-update.yaml b/.github/workflows/nx-dependency-update.yaml index cbdf73f1..00952211 100644 --- a/.github/workflows/nx-dependency-update.yaml +++ b/.github/workflows/nx-dependency-update.yaml @@ -7,9 +7,6 @@ on: required: true type: string -env: - NODE_VERSION: '20.14.0' - jobs: update-nx-dependencies: name: Update nx dependencies and apply migrations @@ -35,7 +32,7 @@ jobs: uses: actions/setup-node@v4 with: cache: pnpm - node-version: ${{ env.NODE_VERSION }} + node-version-file: package.json - name: Install Dependencies run: pnpm install diff --git a/.github/workflows/publish-package.yaml b/.github/workflows/publish-package.yaml index 88be2468..ccc91d8e 100644 --- a/.github/workflows/publish-package.yaml +++ b/.github/workflows/publish-package.yaml @@ -10,9 +10,6 @@ on: permissions: contents: write -env: - NODE_VERSION: '20.14.0' - jobs: tag-and-publish-package: name: Create Tag and Publish Package @@ -45,7 +42,7 @@ jobs: uses: actions/setup-node@v4 with: cache: pnpm - node-version: ${{ env.NODE_VERSION }} + node-version-file: package.json registry-url: 'https://registry.npmjs.org' - name: Install dependencies diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml index 6098a18b..a468fc28 100644 --- a/.github/workflows/pull-request.yaml +++ b/.github/workflows/pull-request.yaml @@ -7,9 +7,6 @@ on: - reopened - synchronize -env: - NODE_VERSION: '20.14.0' - jobs: check-commit-messages: name: Check Commit Messages @@ -29,7 +26,7 @@ jobs: uses: actions/setup-node@v4 with: cache: pnpm - node-version: ${{ env.NODE_VERSION }} + node-version-file: package.json - name: Install dependencies run: pnpm install diff --git a/.github/workflows/release-package.yaml b/.github/workflows/release-package.yaml index 86f168dd..8f0cdff9 100644 --- a/.github/workflows/release-package.yaml +++ b/.github/workflows/release-package.yaml @@ -22,9 +22,6 @@ permissions: contents: write pull-requests: write -env: - NODE_VERSION: '20.14.0' - jobs: release-package: name: Release Package @@ -65,7 +62,7 @@ jobs: uses: actions/setup-node@v4 with: cache: pnpm - node-version: ${{ env.NODE_VERSION }} + node-version-file: package.json - name: Install dependencies run: pnpm install From 682c524f1efcf5b8c5b3d5aea2b1bdb2f67dea2b Mon Sep 17 00:00:00 2001 From: Marco Spengler Date: Mon, 8 Jul 2024 12:33:59 +0200 Subject: [PATCH 3/4] ci: remove obsolete workflow Node.js version check in dependency update workflow (N8N-19) --- .github/workflows/n8n-dependency-update.yaml | 72 -------------------- 1 file changed, 72 deletions(-) diff --git a/.github/workflows/n8n-dependency-update.yaml b/.github/workflows/n8n-dependency-update.yaml index 970f41c5..de187753 100644 --- a/.github/workflows/n8n-dependency-update.yaml +++ b/.github/workflows/n8n-dependency-update.yaml @@ -218,75 +218,3 @@ jobs: # yamllint disable-line rule:line-length commit_message: 'fix(${{matrix.package.name}}): bump n8n-workflow version to ${{ steps.target-versions.outputs.n8n_workflow_version }}' commit_options: '--signoff' - - verify-workflow-node-version: - name: Verify matching version for GitHub Workflow Node.js - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ inputs.pull_request_ref }} - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - cache: pnpm - node-version-file: package.json - - - name: Install dependencies - run: pnpm install - - - name: Retrieve target versions - id: target-versions - run: | - set -e - n8n_version=$(npm list n8n --json | jq --raw-output --exit-status '.dependencies.n8n.version') - node_version=$(docker run --rm --entrypoint node n8nio/n8n:${n8n_version} --version | sed 's/^v//') - echo "node_version=${node_version}" >> "$GITHUB_OUTPUT" - - - name: Check Node.js version - id: check_node_version - # yamllint disable rule:line-length - run: | - workflow_file_urls=() - - for workflow_file in ".github/workflows/"*.yaml; do - node_version=$(yq eval '.env.NODE_VERSION' "$workflow_file") - if [ "${node_version}" = "null" ] || [ "${node_version}" = "${{ steps.target-versions.outputs.node_version }}" ] ; then - continue; - fi - - line_number=$(yq eval '.env.NODE_VERSION | line' "$workflow_file") - - url="[${workflow_file}](${{ github.server_url }}/${{ github.repository }}/blob/main/${workflow_file}#L${line_number})" - - workflow_file_urls+=("$url") - done - - if [ ${#workflow_file_urls[@]} -gt 0 ]; then - echo "workflow_file_urls=${workflow_file_urls[*]}" >> "$GITHUB_OUTPUT" - fi - # yamllint enable rule:line-length - - - name: Request changes on PR - if: steps.check_node_version.outputs.workflow_file_urls - # yamllint disable rule:line-length - run: | - # Split the output by spaces into an array - IFS=' ' read -r -a files_array <<< "${{ steps.check_node_version.outputs.workflow_file_urls }}" - - files_with_newlines=$(printf -- '- %s\n' "${files_array[@]}") - - body=$(printf "The following Workflows have a different NODE_VERSION:\n%s\n\nPlease update the Node.js version to **${{ steps.target-versions.outputs.node_version }}**." "${files_with_newlines}") - - gh pr review ${{ github.event.pull_request.number }} \ - --request-changes \ - --body "${body}" - # yamllint enable rule:line-length - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 9836ef1271abd0e5c5aa11a97af71056f8c76266 Mon Sep 17 00:00:00 2001 From: Marco Spengler Date: Mon, 8 Jul 2024 12:34:59 +0200 Subject: [PATCH 4/4] ci: update Node.js version in package.json during n8n update (N8N-19) --- .github/workflows/n8n-dependency-update.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/n8n-dependency-update.yaml b/.github/workflows/n8n-dependency-update.yaml index de187753..c6f93d0d 100644 --- a/.github/workflows/n8n-dependency-update.yaml +++ b/.github/workflows/n8n-dependency-update.yaml @@ -42,6 +42,17 @@ jobs: echo "node_types_version=${node_types_version}" >> "$GITHUB_OUTPUT" # yamllint enable rule:line-length + - name: Update node version in package.json + # yamllint disable-line rule:line-length + run: yq --inplace --exit-status '.engines.node = "${{steps.target-versions.outputs.node_version}}"' package.json + + - name: Commit node version update in package.json + uses: stefanzweifel/git-auto-commit-action@v5 + with: + # yamllint disable-line rule:line-length + commit_message: 'chore: bump node version in package.json to ${{steps.target-versions.outputs.node_version}}' + commit_options: '--signoff' + - name: Update node version in devcontainer.json # yamllint disable-line rule:line-length run: yq --inplace --exit-status '.features."ghcr.io/devcontainers/features/node:1".version = "${{steps.target-versions.outputs.node_version}}"' .devcontainer/devcontainer.json