Skip to content

Major Release

Major Release #9

Workflow file for this run

name: Major Release
permissions:
issues: write
contents: write
on:
schedule:
- cron: 0 0 15 2,8 * # runs at midnight UTC every 15 February and 15 August
workflow_dispatch:
jobs:
create-issue:
runs-on: ubuntu-latest
steps:
- name: Check for release schedule
id: check-date
run: |
# Get the current month and day
MONTH=$(date +'%m')
DAY=$(date +'%d')
# We'll create the reminder issue two months prior the release
if [[ "$MONTH" == "02" || "$MONTH" == "08" ]] && [[ "$DAY" == "15" ]]; then
echo "create_issue=true" >> $GITHUB_ENV
else
echo "create_issue=false" >> $GITHUB_ENV
fi
curl -L https://github.com/nodejs/Release/raw/HEAD/schedule.json | \
jq -r 'to_entries | map(select(.value.start | strptime("%Y-%m-%d") | mktime > now)) | first | "VERSION=" + .key + "\nRELEASE_DATE=" + .value.start' >> "$GITHUB_ENV"
echo "PR_MAX_DATE=$(date -d "$RELEASE_DATE -1 month" +%Y-%m-%d)" >> "$GITHUB_ENV"
- name: Create release announcement issue
# if: env.create_issue == 'true'
run: |
gh issue create --repo "${GITHUB_REPOSITORY}" \
--title 'Upcoming Node.js Major Release' \
--body-file -<<EOF
A reminder that the next Node.js **semver major release** is scheduled for **${RELEASE_DATE}**.
Therefore, all commits that were landed until **${PR_MAX_DATE}** (one month prior to the release) will be included in the next semver major release.
Please ensure that any necessary preparations are made in advance.
For more details on the release process, visit the [Node.js Release Working Group](https://github.com/nodejs/release).
cc: @nodejs/collaborators
EOF
env:
GH_TOKEN: ${{ github.token }}