From 413ae51185caeb15a5d0e286b0463aabf5eb08bd Mon Sep 17 00:00:00 2001 From: Felipe Suero Date: Thu, 27 Apr 2023 13:03:45 -0400 Subject: [PATCH] add script --- .github/workflows/publish.yml | 2 ++ script/workflows/generate-release-notes.sh | 31 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100755 script/workflows/generate-release-notes.sh diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 17b4347..1636b83 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -42,6 +42,8 @@ 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 }}" \ diff --git a/script/workflows/generate-release-notes.sh b/script/workflows/generate-release-notes.sh new file mode 100755 index 0000000..d9e7ff3 --- /dev/null +++ b/script/workflows/generate-release-notes.sh @@ -0,0 +1,31 @@ +#!/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 actions/languageservices --json mergedAt | jq -r '.mergedAt') + +CHANGELIST=$(gh pr list --repo actions/languageservices --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" + +UPDATED=$(echo $CHANGELIST | jq -r '.[].title' | while read line; do + echo " - $line \n"; +done) + +RELEASE_NOTES="$RELEASE_NOTES\n$UPDATED" +echo $RELEASE_NOTES