From 0381749572fc7d074fcf0d33e604621914e40f37 Mon Sep 17 00:00:00 2001 From: SeaswimmerTheFsh Date: Mon, 11 Mar 2024 20:27:49 -0400 Subject: [PATCH] added autotagger --- .forgejo/workflows/autotagger.yaml | 43 ++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .forgejo/workflows/autotagger.yaml diff --git a/.forgejo/workflows/autotagger.yaml b/.forgejo/workflows/autotagger.yaml new file mode 100644 index 0000000..e7ddaa7 --- /dev/null +++ b/.forgejo/workflows/autotagger.yaml @@ -0,0 +1,43 @@ +name: Autotagger +on: + push: + branches: + - 'master' + +jobs: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Extract commit message + id: extract_commit_message + run: echo "::set-output name=message::$(git log --format=%B -n 1 $GITHUB_SHA)" + + - name: Check commit message + id: check_commit_message + run: | + COMMIT_MESSAGE=$(echo "${{ steps.extract_commit_message.outputs.message }}") + if [[ $COMMIT_MESSAGE =~ ^Version\ bumped\ to\ ([0-9]+\.[0-9]+\.[0-9]+) ]]; then + echo "Found version bump in commit message." + echo "::set-output name=version::${BASH_REMATCH[1]}" + else + echo "No version bump found in commit message." + LATEST_TAG=$(git describe --tags --abbrev=0) + echo "::set-output name=latest_tag::$LATEST_TAG" + fi + + - name: Create or update tag + if: steps.check_commit_message.outputs.version + run: | + VERSION=${{ steps.check_commit_message.outputs.version }} + git tag -a $VERSION -m "Version bumped to $VERSION" + git push origin $VERSION + + - name: Force update latest tag + if: steps.check_commit_message.outputs.latest_tag + run: | + COMMIT_MESSAGE=$(echo "${{ steps.extract_commit_message.outputs.message }}") + LATEST_TAG=${{ steps.check_commit_message.outputs.latest_tag }} + git tag -fa $LATEST_TAG -m $COMMIT_MESSAGE + git push origin $LATEST_TAG --force