Skip to content

n8n Dependency Update #4

n8n Dependency Update

n8n Dependency Update #4

name: n8n Dependency Update
on:
workflow_dispatch:
inputs:
pull_request_ref:
required: true
type: string
workflow_call:
inputs:
pull_request_ref:
required: true
type: string
jobs:
update-node-version:
name: Update Node.js Version
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=$(pnpm list n8n --filter @skriptfabrik/n8n-nodes --json | jq --raw-output --exit-status '.[0].devDependencies.n8n.version')
node_version=$(docker run --rm --entrypoint node n8nio/n8n:${n8n_version} --version | sed 's/^v//')
node_types_version=$(pnpm show @types/node versions --json | jq --raw-output --arg node_version "${node_version}" 'map(select(. <= $node_version)) | map(split(".") | map(tonumber)) | max_by(.) | join(".")')
echo "node_version=${node_version}" >> "$GITHUB_OUTPUT"
echo "node_types_version=${node_types_version}" >> "$GITHUB_OUTPUT"
- name: Update node version in package.json
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:
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
run: yq --inplace --exit-status '.features."ghcr.io/devcontainers/features/node:1".version = "${{steps.target-versions.outputs.node_version}}"' .devcontainer/devcontainer.json
- name: Commit node version update in devcontainer.json
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'chore: bump node version in devcontainer to ${{steps.target-versions.outputs.node_version}}'
commit_options: '--signoff'
- name: Update @types/node
run: |
pnpm add @types/node@~${{ steps.target-versions.outputs.node_types_version }} \
--ignore-workspace-root-check \
--save-dev
- name: Commit @types/node update
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'chore: bump @types/node version to ${{ steps.target-versions.outputs.node_types_version }}'
commit_options: '--signoff'
update-n8n-dependencies-in-root:
name: Update n8n Dependencies in Root
needs: update-node-version
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_nodes_base_version=$(npm list n8n-nodes-base --json --depth 1 | jq --raw-output --exit-status '.dependencies.n8n.dependencies."n8n-nodes-base".version')
n8n_workflow_version=$(npm list n8n-workflow --json --depth 1 | jq --raw-output --exit-status '.dependencies.n8n.dependencies."n8n-workflow".version')
echo "n8n_nodes_base_version=${n8n_nodes_base_version}" >> "$GITHUB_OUTPUT"
echo "n8n_workflow_version=${n8n_workflow_version}" >> "$GITHUB_OUTPUT"
- name: Update n8n-nodes-base
run: |
pnpm add n8n-nodes-base@${{ steps.target-versions.outputs.n8n_nodes_base_version }} \
--ignore-workspace-root-check \
--save-dev \
--save-exact
- name: Commit n8n-nodes-base update
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'chore: bump n8n-nodes-base version to ${{ steps.target-versions.outputs.n8n_nodes_base_version }}'
commit_options: '--signoff'
- name: Update n8n-workflow
run: |
pnpm add n8n-workflow@${{ steps.target-versions.outputs.n8n_workflow_version }} \
--ignore-workspace-root-check \
--save-dev \
--save-exact
- name: Commit n8n-workflow update
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'chore: bump n8n-workflow version to ${{ steps.target-versions.outputs.n8n_workflow_version }}'
commit_options: '--signoff'
update-n8n-versions-in-packages:
name: Update n8n Dependencies in Packages
needs: update-n8n-dependencies-in-root
runs-on: ubuntu-latest
strategy:
matrix:
package:
- name: barcode
json: nodes/barcode/package.json
- name: channable
json: nodes/channable/package.json
- name: clockify-enhanced
json: nodes/clockify-enhanced/package.json
- name: cronhooks
json: nodes/cronhooks/package.json
- name: fulfillmenttools
json: nodes/fulfillmenttools/package.json
- name: google-enhanced
json: nodes/google-enhanced/package.json
- name: kaufland-marketplace
json: nodes/kaufland-marketplace/package.json
- name: moco
json: nodes/moco/package.json
- name: otto-market
json: nodes/otto-market/package.json
- name: sentry-io-enhanced
json: nodes/sentry-io-enhanced/package.json
max-parallel: 1
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_nodes_base_version=$(npm list n8n-nodes-base --json --depth 1 | jq --raw-output --exit-status '.dependencies.n8n.dependencies."n8n-nodes-base".version')
n8n_workflow_version=$(npm list n8n-workflow --json --depth 1 | jq --raw-output --exit-status '.dependencies.n8n.dependencies."n8n-workflow".version')
echo "n8n_nodes_base_version=${n8n_nodes_base_version}" >> "$GITHUB_OUTPUT"
echo "n8n_workflow_version=${n8n_workflow_version}" >> "$GITHUB_OUTPUT"
- name: Update n8n-nodes-base version
run: |
yq --inplace --exit-status '(select(.peerDependencies.n8n-nodes-base) | .peerDependencies.n8n-nodes-base) = "${{ steps.target-versions.outputs.n8n_nodes_base_version }}"' ${{ matrix.package.json }}
pnpm install --no-frozen-lockfile
- name: Commit n8n-nodes-base version update
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'fix(${{matrix.package.name}}): bump n8n-nodes-base version to ${{ steps.target-versions.outputs.n8n_nodes_base_version }}'
commit_options: '--signoff'
- name: Update n8n-workflow version
run: |
yq --inplace --exit-status '(select(.peerDependencies.n8n-workflow) | .peerDependencies.n8n-workflow) = "${{ steps.target-versions.outputs.n8n_workflow_version }}"' ${{ matrix.package.json }}
pnpm install --no-frozen-lockfile
- name: Commit n8n-workflow version update
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: 'fix(${{matrix.package.name}}): bump n8n-workflow version to ${{ steps.target-versions.outputs.n8n_workflow_version }}'
commit_options: '--signoff'