Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/post-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
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:
- 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 }}

- 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 }}
VERSION: ${{ inputs.version || github.event.release.tag_name }}
20 changes: 0 additions & 20 deletions .github/workflows/update-release-links.yml

This file was deleted.

52 changes: 21 additions & 31 deletions doc/contributing/releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ official release builds for Node.js, hosted on <https://nodejs.org/>.
* [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)
* [18. Create a blog post](#18-create-a-blog-post)
* [19. Announce](#19-announce)
* [20. Celebrate](#20-celebrate)
* [LTS releases](#lts-releases)
Expand Down Expand Up @@ -1069,21 +1069,31 @@ have the right internal version strings. Check that the API docs are available
at <https://nodejs.org/api/>. Check that the release catalog files are correct
at <https://nodejs.org/dist/index.tab> and <https://nodejs.org/dist/index.json>.

### 17. Create a blog post
### 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.
* For release title, copy the title from the changelog.
* For the description, copy the rest of the changelog entry.
* If you are not releasing the latest "Current", uncheck
"Set as the latest release".
* Click on the "Publish release" button.

### 18. 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.
release, and a blog post draft PR will be created.

Create a new blog post by running the [nodejs.org release-post.js script][]:
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. Run
`npm run serve` to preview the post locally before pushing to the
[nodejs.org repository][].
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.
Expand All @@ -1098,33 +1108,13 @@ This script will use the promoted builds and changelog to generate the post. Run
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: <full URL to your release proposal PR>
```

* In order to trigger the CI Checks of the [nodejs.org repository][]; Please
attach the `github_actions:pull-request` label to the PR.
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.

### 18. 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.
* For release title, copy the title from the changelog.
* For the description, copy the rest of the changelog entry.
* If you are not releasing the latest "Current", uncheck
"Set as the latest release".
* Click on the "Publish release" button.

### 19. Announce

The nodejs.org website will automatically rebuild and include the new version.
Expand Down Expand Up @@ -1491,7 +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 release-post.js script]: https://github.com/nodejs/nodejs.org/blob/HEAD/apps/site/scripts/release-post/index.mjs
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

non-blocking nit: this script is still mentioned as a fallback - perhaps it should remain?

[nodejs.org repository]: https://github.com/nodejs/nodejs.org
Loading