Merge pull request #81 from skykingjwc/patch-1 #35
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 GitHub Actions workflow handles version bumping and tag updates. | |
# It can be triggered either by: | |
# 1. Pushing to main branch - automatically bumps version and updates tags | |
# 2. Manual dispatch - allows independent control over stable and latest tags | |
--- | |
name: Version and Tags | |
on: # yamllint disable-line rule:truthy | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '**/VERSION' | |
- '**/VERSION_YAML' | |
workflow_dispatch: | |
inputs: | |
update_stable: | |
description: "Update stable tag?" | |
required: true | |
default: false | |
type: boolean | |
update_latest: | |
description: "Update latest tag?" | |
required: true | |
default: false | |
type: boolean | |
jobs: | |
version-and-tag: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Git | |
run: | | |
git config user.name "GitHub Actions" | |
git config user.email "[email protected]" | |
- name: Bump version | |
run: | | |
chmod +x ./versioning/bump_version.sh | |
./versioning/bump_version.sh | |
- name: Push Changes and Tags | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
git push origin main | |
git push origin --tags --force | |
- name: Update stable tag | |
if: | | |
success() && ( | |
github.event_name == 'workflow_dispatch' && inputs.update_stable || | |
github.event_name == 'push' | |
) | |
run: | | |
# Verify version bump was successful | |
if [ ! -f "./versioning/VERSION" ]; then | |
echo "Error: VERSION file not found. Version bump may have failed." | |
exit 1 | |
fi | |
# Backup existing tag | |
if git rev-parse --verify stable >/dev/null 2>&1; then | |
OLD_STABLE=$(git rev-parse stable) | |
echo "Backing up current stable tag ($OLD_STABLE)" | |
fi | |
# Update tag | |
NEW_VERSION=$(cat ./versioning/VERSION) | |
echo "Updating stable tag to $NEW_VERSION" | |
git tag -fa stable -m "Update stable tag" | |
git push origin stable --force | |
- name: Update latest tag | |
if: | | |
success() && ( | |
github.event_name == 'workflow_dispatch' && inputs.update_latest || | |
github.event_name == 'push' | |
) | |
run: | | |
# Verify version bump was successful | |
if [ ! -f "./versioning/VERSION" ]; then | |
echo "Error: VERSION file not found. Version bump may have failed." | |
exit 1 | |
fi | |
# Backup existing tag | |
if git rev-parse --verify latest >/dev/null 2>&1; then | |
OLD_LATEST=$(git rev-parse latest) | |
echo "Backing up current latest tag ($OLD_LATEST)" | |
fi | |
# Update tag | |
NEW_VERSION=$(cat ./versioning/VERSION) | |
echo "Updating latest tag to $NEW_VERSION" | |
git tag -fa latest -m "Update latest tag" | |
git push origin latest --force | |
... |