diff --git a/.github/scripts/create-github-release.mjs b/.github/scripts/create-github-release.mjs index 93312e512a9..dec6175e2ed 100644 --- a/.github/scripts/create-github-release.mjs +++ b/.github/scripts/create-github-release.mjs @@ -58,7 +58,7 @@ async function createGitHubRelease() { body: BODY, draft: false, prerelease: IS_PRE_RELEASE === 'true', - make_latest: MAKE_LATEST === 'true' ? 'true' : 'false', + make_latest: MAKE_LATEST === 'true' && !isReleaseTrackTag ? 'true' : 'false', target_commitish: COMMIT, owner, repo, diff --git a/.github/scripts/determine-version-info.mjs b/.github/scripts/determine-version-info.mjs index d13588e2f23..32a1d835fc7 100644 --- a/.github/scripts/determine-version-info.mjs +++ b/.github/scripts/determine-version-info.mjs @@ -121,6 +121,9 @@ function determineReleaseType(currentVersion) { if (currentVersion.includes('-rc.')) { return 'rc'; } + if (currentVersion.includes('-exp')) { + return 'rc'; + } return 'stable'; } diff --git a/.github/scripts/determine-version-info.test.mjs b/.github/scripts/determine-version-info.test.mjs index 33e4d183188..b831b1c2190 100644 --- a/.github/scripts/determine-version-info.test.mjs +++ b/.github/scripts/determine-version-info.test.mjs @@ -104,4 +104,16 @@ describe('determine-tracks', () => { assert.equal(output.release_type, 'rc'); assert.equal(output.rc_branch, 'release-candidate/2.10.x'); }); + + it('Set release_type accordingly on exp releases', () => { + const output = determineTrack('2.9.2-exp.0'); + + assert.equal(output.track, 'stable'); + assert.equal(output.version, '2.9.2-exp.0'); + assert.equal(output.previous_version, '2.9.2'); + assert.equal(output.bump, 'patch'); + assert.equal(output.new_stable_version, null); + assert.equal(output.release_type, 'rc'); + assert.equal(output.rc_branch, 'release-candidate/2.9.x'); + }); }); diff --git a/.github/workflows/release-create-github-releases.yml b/.github/workflows/release-create-github-releases.yml index e2f3383e607..71b7ab715f0 100644 --- a/.github/workflows/release-create-github-releases.yml +++ b/.github/workflows/release-create-github-releases.yml @@ -16,6 +16,9 @@ on: commit: required: true type: string + is_experimental: + required: true + type: boolean workflow_dispatch: inputs: track: @@ -35,6 +38,9 @@ on: description: 'Commitish the release points to (e.g. branch name or SHA).' required: true type: string + is_experimental: + required: true + type: boolean permissions: contents: write @@ -71,8 +77,8 @@ jobs: GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} RELEASE_TAG: ${{ inputs.version-tag }} BODY: ${{ inputs.body }} - IS_PRE_RELEASE: ${{ inputs.track == 'beta' }} - MAKE_LATEST: ${{ inputs.track == 'stable' }} + IS_PRE_RELEASE: ${{ inputs.track == 'beta' || inputs.is_experimental }} + MAKE_LATEST: ${{ inputs.track == 'stable' && !inputs.is_experimental }} COMMIT: ${{ inputs.commit }} - ADDITIONAL_TAGS: ${{ inputs.track }} + ADDITIONAL_TAGS: ${{ !inputs.is_experimental && inputs.track || '' }} run: node ./.github/scripts/create-github-release.mjs diff --git a/.github/workflows/release-publish-post-release.yml b/.github/workflows/release-publish-post-release.yml index 38d7eba24c5..f7bbe274acd 100644 --- a/.github/workflows/release-publish-post-release.yml +++ b/.github/workflows/release-publish-post-release.yml @@ -70,7 +70,7 @@ jobs: name: Ensure correct latest version on npm if: | inputs.bump == 'minor' || - inputs.track == 'stable' + (inputs.track == 'stable' && inputs.release_type != 'rc') uses: ./.github/workflows/release-set-stable-npm-packages-to-latest.yml secrets: inherit @@ -85,6 +85,8 @@ jobs: send-version-release-notification: name: 'Send version release notifications' + if: | + inputs.release_type != 'rc' uses: ./.github/workflows/release-version-release-notification.yml with: previous-version: ${{ inputs.previous_version }} diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index 6847cff902a..553c5e632d1 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -128,12 +128,15 @@ jobs: version-tag: 'n8n@${{ needs.determine-version-info.outputs.version }}' body: ${{ github.event.pull_request.body }} commit: ${{ github.event.pull_request.base.ref }} + is_experimental: ${{ needs.determine-version-info.outputs.release_type == 'rc' }} secrets: inherit move-track-tag: name: Move track tag needs: [determine-version-info, create-github-release] - if: github.event.pull_request.merged == true + if: | + github.event.pull_request.merged == true && + needs.determine-version-info.outputs.release_type != 'rc' uses: ./.github/workflows/release-update-pointer-tag.yml with: track: ${{ needs.determine-version-info.outputs.track }}