From 5ef93ed712cec5afecb63f7478d55d91e1539f68 Mon Sep 17 00:00:00 2001 From: medcl Date: Mon, 16 Dec 2024 17:02:28 +0800 Subject: [PATCH] chore: update github action and pull request template --- .github/PULL_REQUEST_TEMPLATE.md | 12 ++++++++++++ .github/workflows/build-docs.yml | 29 ++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..7a8c9524 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,12 @@ +## What does this PR do + +## Rationale for this change + +## Standards checklist + +- [ ] The PR title is descriptive +- [ ] The commit messages are [semantic](https://www.conventionalcommits.org/) +- [ ] Necessary tests are added +- [ ] Updated the release notes +- [ ] Necessary documents have been added if this is a new feature +- [ ] Performance tests checked, no obvious performance degradation \ No newline at end of file diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 04ab76c3..9e3f1ce6 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -21,23 +21,38 @@ jobs: - name: Set Variables Based on Ref id: vars run: | + PRODUCT_NAME=$(basename $(pwd)) # Get the directory name as the product name + echo "PRODUCT_NAME=$PRODUCT_NAME" >> $GITHUB_ENV CURRENT_REF=${GITHUB_REF##*/} + IS_SEMVER=false + SEMVER_REGEX="^v([0-9]+)\.([0-9]+)\.([0-9]+)$" + if [[ "${GITHUB_REF_TYPE}" == "branch" ]]; then if [[ "$CURRENT_REF" == "main" ]]; then echo "VERSION=main" >> $GITHUB_ENV echo "BRANCH=main" >> $GITHUB_ENV - else + elif [[ "$CURRENT_REF" =~ $SEMVER_REGEX ]]; then + IS_SEMVER=true echo "VERSION=$CURRENT_REF" >> $GITHUB_ENV echo "BRANCH=$CURRENT_REF" >> $GITHUB_ENV + else + echo "Branch '$CURRENT_REF' is not a valid semantic version. Skipping build." + exit 0 fi elif [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then - echo "VERSION=$CURRENT_REF" >> $GITHUB_ENV - echo "BRANCH=main" >> $GITHUB_ENV # Set BRANCH to 'main' for tags + if [[ "$CURRENT_REF" =~ $SEMVER_REGEX ]]; then + IS_SEMVER=true + echo "VERSION=$CURRENT_REF" >> $GITHUB_ENV + echo "BRANCH=main" >> $GITHUB_ENV # Set BRANCH to 'main' for tags + else + echo "Tag '$CURRENT_REF' is not a valid semantic version. Skipping build." + exit 0 + fi fi - # Gather branches and tags, sort, remove duplicates + # Gather branches and tags, filter for semantic versions, sort, remove duplicates VERSIONS=$(git for-each-ref refs/remotes/origin refs/tags --format="%(refname:short)" | \ - grep -E "^v[0-9.]+$" | sort -Vr | uniq | tr '\n' ',' | sed 's/,$//') + grep -E "^v[0-9]+\.[0-9]+\.[0-9]+$" | sort -Vr | uniq | tr '\n' ',' | sed 's/,$//') echo "VERSIONS=main,$VERSIONS" >> $GITHUB_ENV - name: Install Hugo @@ -65,7 +80,7 @@ jobs: if [[ -n $(git status --porcelain) ]]; then git add . - git commit -m "Rebuild docs for version $VERSION" + git commit -m "Rebuild $PRODUCT_NAME docs for version $VERSION" git push origin main else echo "No changes to commit." @@ -93,7 +108,7 @@ jobs: if [[ -n $(git status --porcelain) ]]; then git add . - git commit -m "Rebuild docs for main branch with latest version" + git commit -m "Rebuild $PRODUCT_NAME docs for main branch with latest version" git push origin main else echo "No changes to commit for main."