From 219856d0f7be403628f50e5785d972093f237b2b Mon Sep 17 00:00:00 2001 From: Xudong Liu Date: Fri, 14 Jun 2024 21:01:32 +0800 Subject: [PATCH] fix release github action Signed-off-by: Xudong Liu --- .github/workflows/auto-sync-gh-pages.yml | 11 +++++++---- .github/workflows/generate-release-notes.yml | 19 +++++++++++-------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/auto-sync-gh-pages.yml b/.github/workflows/auto-sync-gh-pages.yml index 05841c83b..d22f7e8b6 100644 --- a/.github/workflows/auto-sync-gh-pages.yml +++ b/.github/workflows/auto-sync-gh-pages.yml @@ -32,13 +32,16 @@ jobs: id: check run: | git fetch --tags --force - + echo "latest release is ${latest_tag}" latest_tag=$(git tag --sort=-creatordate | head -n 1) echo "latest_tag=${latest_tag}" >> $GITHUB_OUTPUT - echo "valid=$(./hack/match-release-tag.sh ${latest_tag} >/dev/null 2>&1)" >> $GITHUB_OUTPUT + + ./hack/match-release-tag.sh ${latest_tag} + valid=$? + echo "valid=${valid}" >> $GITHUB_OUTPUT - name: Cherry Pick All Related Changes in Master Branch - if: ${{ steps.check.outputs.valid }} + if: ${{ steps.check.outputs.valid }} == 0 run: | git checkout gh-pages git checkout -b topic/github-action/update-gh-pages-$(date +'%Y%m%d') @@ -48,7 +51,7 @@ jobs: git push -u origin topic/github-action/update-gh-pages-$(date +'%Y%m%d') - name: Create Pull Request - if: ${{ steps.check.outputs.valid }} + if: ${{ steps.check.outputs.valid }} == 0 run: | gh pr create --title ":book:(docs) cherry-pick docs update to gh-pages" \ --body "This PR was created by GitHub Actions to update documentation in gh-pages branch" \ diff --git a/.github/workflows/generate-release-notes.yml b/.github/workflows/generate-release-notes.yml index cbe2a3fa2..6a566af1e 100644 --- a/.github/workflows/generate-release-notes.yml +++ b/.github/workflows/generate-release-notes.yml @@ -38,12 +38,15 @@ jobs: run: | git fetch --tags --force latest_tag=$(git tag --sort=-creatordate | head -n 1) - + echo "latest release is ${latest_tag}" echo "latest_tag=${latest_tag}" >> $GITHUB_OUTPUT - echo "valid=$(./hack/match-release-tag.sh ${latest_tag} >/dev/null 2>&1)" >> $GITHUB_OUTPUT + + ./hack/match-release-tag.sh ${latest_tag} + valid=$? + echo "valid=${valid}" >> $GITHUB_OUTPUT - name: Find Second Latest Release Tag - if: ${{ steps.check.outputs.valid }} + if: ${{ steps.check.outputs.valid }} == 0 id: find run: | SEMVER_REGEX='^[[:space:]]{0,}v[[:digit:]]{1,}\.[[:digit:]]{1,}\.[[:digit:]]{1,}(-(alpha|beta|rc)\.[[:digit:]]{1,}){0,1}[[:space:]]{0,}$' @@ -51,22 +54,22 @@ jobs: STABLE_RELEASE_SEMVER_REGEX='^v?[0-9]+\.[0-9]+\.[0-9]+$' latest_tag=${{ steps.check.outputs.latest_tag }} + if [[ latest_tag =~ ${PRERELEASE_SEMVER_REGEX} ]]; then - second_latest_release_tag=$(git tag --sort=-v:refname | grep -E ${SEMVER_REGEX} | awk 'p{print; exit} /${latest_tag}/{p=1}') + second_latest_release_tag=$(git tag --sort=-v:refname | grep -E ${SEMVER_REGEX} | awk "p{print; exit} /${latest_tag}/{p=1}") echo "${latest_tag} is a pre-release, return second latest release tag ${second_latest_release_tag}" echo "pre_release=1" >> $GITHUB_OUTPUT else - second_latest_release_tag=$(git tag --sort=-v:refname | grep -E ${STABLE_RELEASE_SEMVER_REGEX} | awk 'p{print; exit} /${latest_tag}/{p=1}') + second_latest_release_tag=$(git tag --sort=-v:refname | grep -E ${STABLE_RELEASE_SEMVER_REGEX} | awk "p{print; exit} /${latest_tag}/{p=1}") echo "${latest_tag} is a stable release, return second stable release tag ${second_latest_release_tag}" fi echo "second_latest_release_tag=${second_latest_release_tag}" >> $GITHUB_OUTPUT - - name: Generate Release Note - if: ${{ steps.check.outputs.valid }} + if: ${{ steps.check.outputs.valid }} == 0 run: | - if ${{ steps.find.outputs.pre_release}} >/dev/null 2>&1; then + if [ -n ${{ steps.find.outputs.pre_release }} ]; then gh release create ${{ steps.check.outputs.latest_tag }} --verify-tag --generate-notes --notes-start-tag ${{ steps.find.outputs.second_latest_release_tag }} --prerelease else gh release create ${{ steps.check.outputs.latest_tag }} --verify-tag --generate-notes --notes-start-tag ${{ steps.find.outputs.second_latest_release_tag }}