🚀 Release 2.16.0 #756
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: 'Release: Publish' | |
| on: | |
| pull_request: | |
| types: | |
| - closed | |
| branches: | |
| - 'release/*' | |
| jobs: | |
| determine-version-info: | |
| name: Determine publishing track | |
| runs-on: ubuntu-latest | |
| if: github.event.pull_request.merged == true | |
| outputs: | |
| track: ${{ steps.determine-info.outputs.track }} | |
| previous_version: ${{ steps.determine-info.outputs.previous_version }} | |
| version: ${{ steps.determine-info.outputs.version }} | |
| bump: ${{ steps.determine-info.outputs.bump }} | |
| new_stable_version: ${{ steps.determine-info.outputs.new_stable_version }} | |
| release_type: ${{ steps.determine-info.outputs.release_type }} | |
| rc_branch: ${{ steps.determine-info.outputs.rc_branch }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Node.js | |
| uses: ./.github/actions/setup-nodejs | |
| with: | |
| build-command: '' | |
| install-command: pnpm install --frozen-lockfile --dir ./.github/scripts --ignore-workspace | |
| - name: Determine track from package version number | |
| id: determine-info | |
| run: node .github/scripts/determine-version-info.mjs | |
| publish-to-npm: | |
| name: Publish to NPM | |
| needs: [determine-version-info] | |
| runs-on: ubuntu-latest | |
| if: github.event.pull_request.merged == true | |
| timeout-minutes: 20 | |
| environment: npm | |
| permissions: | |
| id-token: write | |
| env: | |
| NPM_CONFIG_PROVENANCE: true | |
| RELEASE: ${{ needs.determine-version-info.outputs.version }} # Used by Vite build process | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Setup and Build | |
| uses: ./.github/actions/setup-nodejs | |
| env: | |
| N8N_FAIL_ON_POPULARITY_FETCH_ERROR: true | |
| SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
| - name: Check for new unpublished packages | |
| run: node .github/scripts/detect-new-packages.mjs | |
| - name: Dry-run publishing | |
| run: | | |
| pnpm --filter n8n publish --no-git-checks --dry-run | |
| pnpm publish -r --filter '!n8n' --no-git-checks --dry-run | |
| - name: Pre publishing changes | |
| run: | | |
| node .github/scripts/trim-fe-packageJson.js | |
| node .github/scripts/ensure-provenance-fields.mjs | |
| cp README.md packages/cli/README.md | |
| sed -i "s/default: 'dev'/default: '${{ needs.determine-version-info.outputs.release_type }}'/g" packages/cli/dist/config/schema.js | |
| - name: Publish n8n to NPM with rc tag | |
| env: | |
| PUBLISH_BRANCH: ${{ github.event.pull_request.base.ref }} | |
| run: pnpm --filter n8n publish --publish-branch "$PUBLISH_BRANCH" --access public --tag rc --no-git-checks | |
| - name: Publish other packages to NPM | |
| env: | |
| PUBLISH_BRANCH: ${{ github.event.pull_request.base.ref }} | |
| PUBLISH_TAG: ${{ needs.determine-version-info.outputs.track == 'stable' && 'latest' || needs.determine-version-info.outputs.track }} | |
| run: | | |
| # Prefix version-like track names (e.g. "1", "v1") to avoid npm rejecting them as semver ranges | |
| if [[ "$PUBLISH_TAG" =~ ^v?[0-9] ]]; then | |
| PUBLISH_TAG="release-${PUBLISH_TAG}" | |
| fi | |
| pnpm publish -r --filter '!n8n' --publish-branch "$PUBLISH_BRANCH" --access public --tag "$PUBLISH_TAG" --no-git-checks | |
| - name: Cleanup rc tag | |
| run: npm dist-tag rm n8n rc | |
| continue-on-error: true | |
| publish-to-docker-hub: | |
| name: Publish to DockerHub | |
| needs: [determine-version-info] | |
| uses: ./.github/workflows/docker-build-push.yml | |
| with: | |
| n8n_version: ${{ needs.determine-version-info.outputs.version }} | |
| release_type: ${{ needs.determine-version-info.outputs.release_type }} | |
| secrets: inherit | |
| create-github-release: | |
| name: Create GitHub Release | |
| needs: [determine-version-info, publish-to-npm, publish-to-docker-hub] | |
| if: github.event.pull_request.merged == true | |
| uses: ./.github/workflows/release-create-github-releases.yml | |
| with: | |
| track: ${{ needs.determine-version-info.outputs.track }} | |
| version-tag: 'n8n@${{ needs.determine-version-info.outputs.version }}' | |
| body: ${{ github.event.pull_request.body }} | |
| commit: ${{ github.event.pull_request.base.ref }} | |
| secrets: inherit | |
| move-track-tag: | |
| name: Move track tag | |
| needs: [determine-version-info, create-github-release] | |
| if: github.event.pull_request.merged == true | |
| uses: ./.github/workflows/release-update-pointer-tag.yml | |
| with: | |
| track: ${{ needs.determine-version-info.outputs.track }} | |
| version-tag: 'n8n@${{ needs.determine-version-info.outputs.version }}' | |
| secrets: inherit | |
| promote-stable-tag: | |
| name: Promote stable tag (minor bump) | |
| needs: [determine-version-info, create-github-release] | |
| if: | | |
| github.event.pull_request.merged == true && | |
| needs.determine-version-info.outputs.new_stable_version != '' | |
| uses: ./.github/workflows/release-update-pointer-tag.yml | |
| with: | |
| track: stable | |
| version-tag: 'n8n@${{ needs.determine-version-info.outputs.new_stable_version }}' | |
| secrets: inherit | |
| generate-and-attach-sbom: | |
| name: Generate and Attach SBOM to Release | |
| needs: [determine-version-info, create-github-release] | |
| uses: ./.github/workflows/sbom-generation-callable.yml | |
| with: | |
| n8n_version: ${{ needs.determine-version-info.outputs.version }} | |
| release_tag_ref: 'n8n@${{ needs.determine-version-info.outputs.version }}' | |
| secrets: inherit | |
| merge-release-tag-to-master: | |
| name: Merge release tag to master on minor release | |
| needs: [determine-version-info, publish-to-npm, create-github-release] | |
| if: | | |
| github.event.pull_request.merged == true && | |
| needs.determine-version-info.outputs.bump == 'minor' && | |
| needs.determine-version-info.outputs.release_type != 'rc' | |
| uses: ./.github/workflows/release-merge-tag-to-branch.yml | |
| with: | |
| version: ${{ needs.determine-version-info.outputs.version }} | |
| target-branch: master | |
| secrets: inherit | |
| merge-release-tag-to-rc-branch: | |
| name: Merge release tag to RC branch on patch release | |
| needs: [determine-version-info, publish-to-npm, create-github-release] | |
| if: | | |
| github.event.pull_request.merged == true && | |
| needs.determine-version-info.outputs.bump == 'patch' && | |
| needs.determine-version-info.outputs.release_type != 'rc' | |
| uses: ./.github/workflows/release-merge-tag-to-branch.yml | |
| with: | |
| version: ${{ needs.determine-version-info.outputs.version }} | |
| target-branch: ${{ needs.determine-version-info.outputs.rc_branch }} | |
| secrets: inherit | |
| post-release: | |
| name: Run Post-release actions | |
| needs: | |
| [ | |
| determine-version-info, | |
| publish-to-npm, | |
| create-github-release, | |
| move-track-tag, | |
| promote-stable-tag, | |
| ] | |
| if: | | |
| always() && | |
| needs.publish-to-npm.result == 'success' && | |
| needs.create-github-release.result == 'success' && | |
| (needs.move-track-tag.result == 'success' || needs.move-track-tag.result == 'skipped') && | |
| (needs.promote-stable-tag.result == 'success' || needs.promote-stable-tag.result == 'skipped') | |
| uses: ./.github/workflows/release-publish-post-release.yml | |
| with: | |
| track: ${{ needs.determine-version-info.outputs.track }} | |
| previous_version: ${{ needs.determine-version-info.outputs.previous_version }} | |
| version: ${{ needs.determine-version-info.outputs.version }} | |
| bump: ${{ needs.determine-version-info.outputs.bump }} | |
| new_stable_version: ${{ needs.determine-version-info.outputs.new_stable_version }} | |
| release_type: ${{ needs.determine-version-info.outputs.release_type }} | |
| secrets: inherit |