diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml new file mode 100644 index 00000000000000..0f877b3c639bed --- /dev/null +++ b/.github/workflows/post-release.yml @@ -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 }} 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 }} diff --git a/doc/contributing/releases.md b/doc/contributing/releases.md index d90d2eee6e735b..05bdb40515fd9d 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) + * [18. Create a blog post](#18-create-a-blog-post) * [19. Announce](#19-announce) * [20. Celebrate](#20-celebrate) * [LTS releases](#lts-releases) @@ -1069,21 +1069,31 @@ 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 +### 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. @@ -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: - ``` - -* 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. @@ -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 [nodejs.org repository]: https://github.com/nodejs/nodejs.org