-
Notifications
You must be signed in to change notification settings - Fork 178
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
automatic generate release notes (#1056)
* automatic generate release notes Signed-off-by: xudong liu <xudong.liu@broadcom.com> * skip verify to test Signed-off-by: xudong liu <xudong.liu@broadcom.com> --------- Signed-off-by: xudong liu <xudong.liu@broadcom.com>
- Loading branch information
1 parent
6aa9dcc
commit 56eaa6a
Showing
4 changed files
with
74 additions
and
5 deletions.
There are no files selected for viewing
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
name: Generate Release Notes | ||
|
||
on: | ||
push: | ||
# Sequence of patterns matched against refs/tags | ||
tags: | ||
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 | ||
|
||
workflow_dispatch: # Use for manaully trigger to debug | ||
|
||
|
||
permissions: | ||
contents: write # Allow to create a release. | ||
|
||
jobs: | ||
generate-release-notes: | ||
runs-on: ubuntu-latest | ||
steps: | ||
# This step uses Github's checkout-action: https://github.com/actions/checkout | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
# Configure Git for helm release | ||
- name: Configure Git | ||
run: | | ||
git config user.name "$GITHUB_ACTOR" | ||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com" | ||
- name: Set up Go | ||
uses: actions/setup-go@v5 | ||
with: | ||
go-version-file: 'go.mod' | ||
|
||
- name: Check Latest Release Tag | ||
id: check | ||
run: | | ||
echo "valid=$(./hack/match-release-tag.sh >/dev/null 2>&1)" >> $GITHUB_OUTPUT | ||
- name: Find Second Latest Release Tag | ||
# if: ${{ step.check.output.valid }} | ||
id: find | ||
run: | | ||
SEMVER_REGEX='^[[:space:]]{0,}v[[:digit:]]{1,}\.[[:digit:]]{1,}\.[[:digit:]]{1,}(-(alpha|beta|rc)\.[[:digit:]]{1,}){0,1}[[:space:]]{0,}$' | ||
PRERELEASE_SEMVER_REGEX='^v?[0-9]+\.[0-9]+\.[0-9]+-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*$' | ||
STABLE_RELEASE_SEMVER_REGEX='^v?[0-9]+\.[0-9]+\.[0-9]+$' | ||
git fetch --tags | ||
latest_release_tag=$(git tag --sort=-v:refname | grep -E ${SEMVER_REGEX} | sed -n '1p') | ||
echo "latest_release_tag=${latest_release_tag}" >> $GITHUB_OUTPUT | ||
if [[ latest_release_tag =~ ${PRERELEASE_SEMVER_REGEX} ]]; then | ||
echo "${latest_release_tag} is a pre-release, return second latest release tag" | ||
echo "pre_release=1" >> $GITHUB_OUTPUT | ||
echo "second_latest_release_tag=$(git tag --sort=-v:refname | grep -E ${SEMVER_REGEX} | sed -n '2p')" >> $GITHUB_OUTPUT | ||
else | ||
echo "${latest_release_tag} is a stable release, return second stable release tag" | ||
echo "second_latest_release_tag=$(git tag --sort=-v:refname | grep -E ${STABLE_RELEASE_SEMVER_REGEX} | sed -n '2p')" >> $GITHUB_OUTPUT | ||
fi | ||
- name: Generate Release Note | ||
# if: ${{ step.check.output.valid }} | ||
run: | | ||
if {{ step.find.pre_release}}; then | ||
gh release create ${{ step.find.latest_release_tag }} --verify-tag --draft --generate-notes --notes-start-tag ${{ step.find.second_latest_release_tag}} --prerelease | ||
else | ||
gh release create ${{ step.find.latest_release_tag }} --verify-tag --draft --generate-notes --notes-start-tag ${{ step.find.second_latest_release_tag}} | ||
fi | ||
env: | ||
GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}" |