diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 07e573c0..6f364cb2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,9 +67,11 @@ jobs: - name: Create PR run: | + LAST_PR=$(gh pr list --repo ${{ github.repository }} --limit 1 --state merged --search "Release version" --json number | jq -r '.[0].number') + ./script/workflows/generate-release-notes.sh $LAST_PR ${{ env.new_version }} gh pr create \ --title "Release version ${{ env.new_version }}" \ - --body "Release version ${{ env.new_version }}" \ + --body-file releasenotes.md \ --base main \ --head release/${{ env.new_version }} env: diff --git a/release-notes.txt b/release-notes.txt new file mode 100644 index 00000000..81b108c4 --- /dev/null +++ b/release-notes.txt @@ -0,0 +1,6 @@ +Release 0.25.7 + - Add working lock file and update script to add it to the npm workspace root \n + - Make pre-prepare run off of hooks \n + - @muzimuzhi - Upgrade vsce 2.11.0 to @vscode/vsce version 2.19.0 \n + - Update workflow file \n + - Release version 0.25.6 \n diff --git a/script/workflows/generate-release-notes.sh b/script/workflows/generate-release-notes.sh new file mode 100755 index 00000000..958168da --- /dev/null +++ b/script/workflows/generate-release-notes.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# this script is used to generate release notes for a given release +# first argument is the pull request id for the last release +# the second is the new release number + +# the script then grabs every pull request merged since that pull request +# and outputs a string of release notes + +echo "Generating release notes for $2" + +# get the last release pull request id +LAST_RELEASE_PR=$1 + +# get the new release number +NEW_RELEASE=$2 + +#get when the last release was merged +LAST_RELEASE_MERGED_AT=$(gh pr view $LAST_RELEASE_PR --repo github/vscode-github-actions --json mergedAt | jq -r '.mergedAt') + +CHANGELIST=$(gh pr list --repo github/vscode-github-actions --base main --state merged --json title --search "merged:>$LAST_RELEASE_MERGED_AT -label:no-release") + +# store the release notes in a variable so we can use it later + +echo "Release $NEW_RELEASE" >> releasenotes.md + +echo $CHANGELIST | jq -r '.[].title' | while read line; do + echo " - $line" >> releasenotes.md +done + +echo " " \ No newline at end of file