From 642106f94b20c44ab9c8f9da0447ae20cce776b4 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Wed, 22 Oct 2025 10:03:13 -0400 Subject: [PATCH 1/7] meta: call `create-release-post.yml` post release --- .github/workflows/post-release.yml | 28 ++++++++++++++++++++++ .github/workflows/update-release-links.yml | 20 ---------------- 2 files changed, 28 insertions(+), 20 deletions(-) create mode 100644 .github/workflows/post-release.yml delete mode 100644 .github/workflows/update-release-links.yml diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml new file mode 100644 index 00000000000000..aa8c4c60141df1 --- /dev/null +++ b/.github/workflows/post-release.yml @@ -0,0 +1,28 @@ +name: Post-Release actions + +on: + workflow_dispatch: + inputs: + version: + description: The version to generate a blog post for. + type: string + required: true + release: + types: [released] + +permissions: + contents: read + +jobs: + post-release-actions: + if: github.repository == 'nodejs/node' + runs-on: ubuntu-latest + steps: + - run: | + # Trigger update-links workflow on nodejs/release-cloudflare-worker + gh workflow run update-links.yml --repo nodejs/release-cloudflare-worker + # Trigger create-release-post workflow on nodejs/nodejs.org + gh workflow run create-release-post.yml --repo nodejs/nodejs.org -f version=$VERSION + env: + GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} + VERSION: ${{ inputs.version || github.event.releease.tag_name }} diff --git a/.github/workflows/update-release-links.yml b/.github/workflows/update-release-links.yml deleted file mode 100644 index 3eaa61260545e8..00000000000000 --- a/.github/workflows/update-release-links.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Update release links - -on: - workflow_dispatch: - release: - types: [released] - -permissions: - contents: read - -jobs: - update-release-links: - if: github.repository == 'nodejs/node' - runs-on: ubuntu-latest - steps: - - name: Trigger update-links workflow on nodejs/release-cloudflare-worker - run: | - gh workflow run update-links.yml --repo nodejs/release-cloudflare-worker - env: - GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} From debfa58bad0f3f6d5e8ba85b92c7e788293fcabd Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Wed, 22 Oct 2025 10:17:44 -0400 Subject: [PATCH 2/7] Update post-release.yml Co-authored-by: Antoine du Hamel --- .github/workflows/post-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml index aa8c4c60141df1..137fa269a2fe9f 100644 --- a/.github/workflows/post-release.yml +++ b/.github/workflows/post-release.yml @@ -25,4 +25,4 @@ jobs: gh workflow run create-release-post.yml --repo nodejs/nodejs.org -f version=$VERSION env: GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} - VERSION: ${{ inputs.version || github.event.releease.tag_name }} + VERSION: ${{ inputs.version || github.event.release.tag_name }} From 47c1c7b5836b744241c488747479238488a2b0d5 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Wed, 22 Oct 2025 10:20:32 -0400 Subject: [PATCH 3/7] fixup! --- .github/workflows/post-release.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml index 137fa269a2fe9f..0f877b3c639bed 100644 --- a/.github/workflows/post-release.yml +++ b/.github/workflows/post-release.yml @@ -18,10 +18,14 @@ jobs: if: github.repository == 'nodejs/node' runs-on: ubuntu-latest steps: - - run: | - # Trigger update-links workflow on nodejs/release-cloudflare-worker + - name: Trigger update-links workflow on nodejs/release-cloudflare-worker + run: | gh workflow run update-links.yml --repo nodejs/release-cloudflare-worker - # Trigger create-release-post workflow on nodejs/nodejs.org + env: + GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} + + - name: Trigger create-release-post workflow on nodejs/nodejs.org + run: | gh workflow run create-release-post.yml --repo nodejs/nodejs.org -f version=$VERSION env: GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} From 9f41de9992517641222c6abbeaf4b55e1bc52eea Mon Sep 17 00:00:00 2001 From: avivkeller Date: Wed, 22 Oct 2025 16:13:30 -0400 Subject: [PATCH 4/7] fixup! --- doc/contributing/releases.md | 59 ++++++------------------------------ 1 file changed, 10 insertions(+), 49 deletions(-) diff --git a/doc/contributing/releases.md b/doc/contributing/releases.md index d90d2eee6e735b..b1a5ead452deda 100644 --- a/doc/contributing/releases.md +++ b/doc/contributing/releases.md @@ -30,8 +30,8 @@ official release builds for Node.js, hosted on . * [14. Push the release tag](#14-push-the-release-tag) * [15. Promote and sign the release builds](#15-promote-and-sign-the-release-builds) * [16. Check the release](#16-check-the-release) - * [17. Create a blog post](#17-create-a-blog-post) - * [18. Create the release on GitHub](#18-create-the-release-on-github) + * [17. Create the release on GitHub](#17-create-the-release-on-github) + * [17.1 Merge the blog post](#171-merge-the-blog-post) * [19. Announce](#19-announce) * [20. Celebrate](#20-celebrate) * [LTS releases](#lts-releases) @@ -1069,53 +1069,7 @@ have the right internal version strings. Check that the API docs are available at . Check that the release catalog files are correct at and . -### 17. Create a blog post - -There is an automatic build that is kicked off when you promote new builds, so -within a few minutes nodejs.org will be listing your new version as the latest -release. However, the blog post is not yet fully automatic. - -Create a new blog post by running the [nodejs.org release-post.js script][]: - -```bash -node ./apps/site/scripts/release-post/index.mjs x.y.z -``` - -This script will use the promoted builds and changelog to generate the post. Run -`npm run serve` to preview the post locally before pushing to the -[nodejs.org repository][]. - -* You can add a short blurb just under the main heading if you want to say - something important, otherwise the text should be publication ready. - -* The links to the download files won't be complete unless you waited for the - ARMv6 builds. Any downloads that are missing will have `*Coming soon*` next to - them. It's your responsibility to manually update these later when you have - the outstanding builds. - -* The `SHASUMS256.txt.asc` content is at the bottom of the post. When you update - the list of tarballs you'll need to copy/paste the new contents of this file - to reflect those changes. - -* Always use pull-requests on the [nodejs.org repository][]. Be respectful - of the website team, but you do not have to wait for PR sign-off. Please - use the following commit message format: - - ```console - Blog: vX.Y.Z release post - - Refs: - ``` - -* In order to trigger the CI Checks of the [nodejs.org repository][]; Please - attach the `github_actions:pull-request` label to the PR. - -* Changes to the base branch, `main`, on the [nodejs.org repository][] will - trigger a new build of nodejs.org, so your changes should appear a few minutes - after pushing. You can follow the [Deployments](https://github.com/nodejs/nodejs.org/deployments) page - to see when the build finishes and gets published. - -### 18. Create the release on GitHub +### 17. Create the release on GitHub * Go to the [New release page](https://github.com/nodejs/node/releases/new). * Select the tag version you pushed earlier. @@ -1125,6 +1079,13 @@ This script will use the promoted builds and changelog to generate the post. Run "Set as the latest release". * Click on the "Publish release" button. +#### 17.1 Merge the Blog Post + +Once a release is created, an automation will open a PR in the [nodejs.org repository][] +to create a blog post. You can add a short blurb just under the main heading if you want +to say something important, otherwise the text should be publication ready. Be respectful +of the website team, but you do not have to wait for PR sign-off. + ### 19. Announce The nodejs.org website will automatically rebuild and include the new version. From 1b1a358507feff5ad2b696837d0f5bd28fc760e7 Mon Sep 17 00:00:00 2001 From: avivkeller Date: Wed, 22 Oct 2025 16:59:52 -0400 Subject: [PATCH 5/7] fixup! --- doc/contributing/releases.md | 40 ++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/doc/contributing/releases.md b/doc/contributing/releases.md index b1a5ead452deda..bbee36599f1b58 100644 --- a/doc/contributing/releases.md +++ b/doc/contributing/releases.md @@ -31,7 +31,7 @@ official release builds for Node.js, hosted on . * [15. Promote and sign the release builds](#15-promote-and-sign-the-release-builds) * [16. Check the release](#16-check-the-release) * [17. Create the release on GitHub](#17-create-the-release-on-github) - * [17.1 Merge the blog post](#171-merge-the-blog-post) + * [18. Create a blog post](#18-create-a-blog-post) * [19. Announce](#19-announce) * [20. Celebrate](#20-celebrate) * [LTS releases](#lts-releases) @@ -1079,12 +1079,40 @@ at and . "Set as the latest release". * Click on the "Publish release" button. -#### 17.1 Merge the Blog Post +### 18. Create a blog post -Once a release is created, an automation will open a PR in the [nodejs.org repository][] -to create a blog post. You can add a short blurb just under the main heading if you want -to say something important, otherwise the text should be publication ready. Be respectful -of the website team, but you do not have to wait for PR sign-off. +There is an automatic build that is kicked off when you promote new builds, so +within a few minutes nodejs.org will be listing your new version as the latest +release, and a blog post draft PR will be created. + +In the event that a draft PR _is not created_, the following script can be used +as an alternative: + +```bash +node ./apps/site/scripts/release-post/index.mjs x.y.z +``` + +This script will use the promoted builds and changelog to generate the post. + +* You can add a short blurb just under the main heading if you want to say + something important, otherwise the text should be publication ready. + +* The links to the download files won't be complete unless you waited for the + ARMv6 builds. Any downloads that are missing will have `*Coming soon*` next to + them. It's your responsibility to manually update these later when you have + the outstanding builds. + +* The `SHASUMS256.txt.asc` content is at the bottom of the post. When you update + the list of tarballs you'll need to copy/paste the new contents of this file + to reflect those changes. + +* Always use pull-requests on the [nodejs.org repository][]. Be respectful + of the website team, but you do not have to wait for PR sign-off. + +* Changes to the base branch, `main`, on the [nodejs.org repository][] will + trigger a new build of nodejs.org, so your changes should appear a few minutes + after pushing. You can follow the [Deployments](https://github.com/nodejs/nodejs.org/deployments) page + to see when the build finishes and gets published. ### 19. Announce From 2f97590e651f5d03f7b32c78fc8c6e25f938c194 Mon Sep 17 00:00:00 2001 From: avivkeller Date: Wed, 22 Oct 2025 17:09:10 -0400 Subject: [PATCH 6/7] fixup! --- doc/contributing/releases.md | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/contributing/releases.md b/doc/contributing/releases.md index bbee36599f1b58..f34345c6e2fa5e 100644 --- a/doc/contributing/releases.md +++ b/doc/contributing/releases.md @@ -1482,5 +1482,4 @@ Typical resolution: sign the release again. [`create-release-proposal`]: https://github.com/nodejs/node/actions/workflows/create-release-proposal.yml [build-infra team]: https://github.com/orgs/nodejs/teams/build-infra [expected assets]: https://github.com/nodejs/build/tree/HEAD/ansible/www-standalone/tools/promote/expected_assets -[nodejs.org release-post.js script]: https://github.com/nodejs/nodejs.org/blob/HEAD/apps/site/scripts/release-post/index.mjs [nodejs.org repository]: https://github.com/nodejs/nodejs.org From 0f346f9fa392855cefafba8be90bbcae9e0aeac5 Mon Sep 17 00:00:00 2001 From: avivkeller Date: Thu, 23 Oct 2025 15:51:30 -0400 Subject: [PATCH 7/7] fixup! --- doc/contributing/releases.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/contributing/releases.md b/doc/contributing/releases.md index f34345c6e2fa5e..05bdb40515fd9d 100644 --- a/doc/contributing/releases.md +++ b/doc/contributing/releases.md @@ -1085,11 +1085,12 @@ There is an automatic build that is kicked off when you promote new builds, so within a few minutes nodejs.org will be listing your new version as the latest release, and a blog post draft PR will be created. -In the event that a draft PR _is not created_, the following script can be used -as an alternative: +In the event that a draft PR _is not created_, the [`scripts:release-post`][] script +can be used as an alternative: ```bash -node ./apps/site/scripts/release-post/index.mjs x.y.z +# In the apps/site folder of nodejs/nodejs.org +node --run scripts:release-post x.y.z ``` This script will use the promoted builds and changelog to generate the post. @@ -1480,6 +1481,7 @@ Typical resolution: sign the release again. [Node.js Snap management repository]: https://github.com/nodejs/snap [Snap]: https://snapcraft.io/node [`create-release-proposal`]: https://github.com/nodejs/node/actions/workflows/create-release-proposal.yml +[`scripts:release-post`]: https://github.com/nodejs/nodejs.org/blob/HEAD/apps/site/scripts/release-post/index.mjs [build-infra team]: https://github.com/orgs/nodejs/teams/build-infra [expected assets]: https://github.com/nodejs/build/tree/HEAD/ansible/www-standalone/tools/promote/expected_assets [nodejs.org repository]: https://github.com/nodejs/nodejs.org