Major Release #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |