From e865411e3dd9d17d9601403fce0e864b9092e5fc Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Thu, 27 Apr 2023 12:41:25 -0400 Subject: [PATCH 1/7] automatically generate release notes --- .github/workflows/release.yml | 6 +++-- script/workflows/generate-release-notes.sh | 30 ++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100755 script/workflows/generate-release-notes.sh diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index feb08423..16e0f7c6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -41,9 +41,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') + RELEASE_NOTES=$(./scripts/workflows/release-notes.sh $LAST_PR ${{ env.new_version }}) gh pr create \ - --title "Release version ${{ inputs.version }}" \ - --body "Release version ${{ inputs.version }}" \ + --title "Release version ${{ env.new_version }}" \ + --body $RELEASE_NOTES \ --base main \ --head release/${{ inputs.version }} env: diff --git a/script/workflows/generate-release-notes.sh b/script/workflows/generate-release-notes.sh new file mode 100755 index 00000000..eec6cb55 --- /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 + +RELEASE_NOTES="Release $NEW_RELEASE\n" + +UPDATED=$(echo $CHANGELIST | jq -r '.[].title' | while read line; do + echo " - $line \n"; +done) + +echo $UPDATED From 487f93107d12745cd6dc50c4136a5bbd8c078029 Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Thu, 27 Apr 2023 12:44:09 -0400 Subject: [PATCH 2/7] automatically generate release notes --- script/workflows/generate-release-notes.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/script/workflows/generate-release-notes.sh b/script/workflows/generate-release-notes.sh index eec6cb55..a8a8613d 100755 --- a/script/workflows/generate-release-notes.sh +++ b/script/workflows/generate-release-notes.sh @@ -21,10 +21,11 @@ CHANGELIST=$(gh pr list --repo github/vscode-github-actions --base main --state # store the release notes in a variable so we can use it later -RELEASE_NOTES="Release $NEW_RELEASE\n" +RELEASE_NOTES="Release $NEW_RELEASE" UPDATED=$(echo $CHANGELIST | jq -r '.[].title' | while read line; do echo " - $line \n"; done) -echo $UPDATED +RELEASE_NOTES="$RELEASE_NOTES\n$UPDATED" +echo $RELEASE_NOTES From baad786947cf8b8a138d8a86f3f66b038e9bec63 Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Tue, 2 May 2023 12:09:12 -0400 Subject: [PATCH 3/7] script not scripts --- .github/workflows/release.yml | 4 ++-- release-notes.txt | 6 ++++++ script/workflows/generate-release-notes.sh | 7 ++----- 3 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 release-notes.txt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3a1e5a4f..e6e7bbca 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -68,10 +68,10 @@ 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') - RELEASE_NOTES=$(./scripts/workflows/release-notes.sh $LAST_PR ${{ env.new_version }}) + RELEASE_NOTES=$(./script/workflows/generate-release-notes.sh $LAST_PR ${{ env.new_version }}) gh pr create \ --title "Release version ${{ env.new_version }}" \ - --body $RELEASE_NOTES \ + --body-file release-notes.txt \ --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 index a8a8613d..ab8a2473 100755 --- a/script/workflows/generate-release-notes.sh +++ b/script/workflows/generate-release-notes.sh @@ -21,11 +21,8 @@ CHANGELIST=$(gh pr list --repo github/vscode-github-actions --base main --state # store the release notes in a variable so we can use it later -RELEASE_NOTES="Release $NEW_RELEASE" +echo "Release $NEW_RELEASE" >> release-notes.txt UPDATED=$(echo $CHANGELIST | jq -r '.[].title' | while read line; do - echo " - $line \n"; + echo " - $line \n" >> release-notes.txt done) - -RELEASE_NOTES="$RELEASE_NOTES\n$UPDATED" -echo $RELEASE_NOTES From cb73bfd729948acf8bb51b19760d641ad68d2e18 Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Tue, 2 May 2023 12:47:47 -0400 Subject: [PATCH 4/7] duplicate --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e6e7bbca..5c85dbdf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -68,7 +68,7 @@ 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') - RELEASE_NOTES=$(./script/workflows/generate-release-notes.sh $LAST_PR ${{ env.new_version }}) + ./script/workflows/generate-release-notes.sh $LAST_PR ${{ env.new_version }} gh pr create \ --title "Release version ${{ env.new_version }}" \ --body-file release-notes.txt \ From b73f80a42dff015e03e3e6b4b55cbad50e8ab564 Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Tue, 2 May 2023 12:51:58 -0400 Subject: [PATCH 5/7] test --- script/workflows/generate-release-notes.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/script/workflows/generate-release-notes.sh b/script/workflows/generate-release-notes.sh index ab8a2473..9de6b330 100755 --- a/script/workflows/generate-release-notes.sh +++ b/script/workflows/generate-release-notes.sh @@ -23,6 +23,8 @@ CHANGELIST=$(gh pr list --repo github/vscode-github-actions --base main --state echo "Release $NEW_RELEASE" >> release-notes.txt -UPDATED=$(echo $CHANGELIST | jq -r '.[].title' | while read line; do - echo " - $line \n" >> release-notes.txt -done) +echo $CHANGELIST | jq -r '.[].title' | while read line; do + echo " - $line" >> release-notes.txt +done + +echo " " \ No newline at end of file From f7d9b9484c7491a8a5a0b7969247ded91f84b4c4 Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Tue, 2 May 2023 12:57:16 -0400 Subject: [PATCH 6/7] hopefully? --- .github/workflows/release.yml | 2 +- script/workflows/generate-release-notes.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5c85dbdf..6f364cb2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -71,7 +71,7 @@ jobs: ./script/workflows/generate-release-notes.sh $LAST_PR ${{ env.new_version }} gh pr create \ --title "Release version ${{ env.new_version }}" \ - --body-file release-notes.txt \ + --body-file releasenotes.md \ --base main \ --head release/${{ env.new_version }} env: diff --git a/script/workflows/generate-release-notes.sh b/script/workflows/generate-release-notes.sh index 9de6b330..d23340d5 100755 --- a/script/workflows/generate-release-notes.sh +++ b/script/workflows/generate-release-notes.sh @@ -21,10 +21,10 @@ CHANGELIST=$(gh pr list --repo github/vscode-github-actions --base main --state # store the release notes in a variable so we can use it later -echo "Release $NEW_RELEASE" >> release-notes.txt +echo "Release $NEW_RELEASE" >> releasenotes.md echo $CHANGELIST | jq -r '.[].title' | while read line; do - echo " - $line" >> release-notes.txt + echo " - $line" >> release-notes.md done echo " " \ No newline at end of file From c981b640c9bb9de9a69c57a127e56c6c6370100e Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Tue, 2 May 2023 12:59:25 -0400 Subject: [PATCH 7/7] hopefully? --- script/workflows/generate-release-notes.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/workflows/generate-release-notes.sh b/script/workflows/generate-release-notes.sh index d23340d5..958168da 100755 --- a/script/workflows/generate-release-notes.sh +++ b/script/workflows/generate-release-notes.sh @@ -24,7 +24,7 @@ CHANGELIST=$(gh pr list --repo github/vscode-github-actions --base main --state echo "Release $NEW_RELEASE" >> releasenotes.md echo $CHANGELIST | jq -r '.[].title' | while read line; do - echo " - $line" >> release-notes.md + echo " - $line" >> releasenotes.md done echo " " \ No newline at end of file