mirror of
https://github.com/qbcore-fivem/qb-core.git
synced 2026-08-28 17:01:16 +00:00
75 lines
2.3 KiB
YAML
75 lines
2.3 KiB
YAML
name: Semantic Version Bump (Conventional Commits)
|
||
|
||
on:
|
||
push:
|
||
branches:
|
||
- main
|
||
|
||
jobs:
|
||
semver-bump:
|
||
runs-on: ubuntu-latest
|
||
if: github.event.head_commit.author.name != 'github-actions[bot]'
|
||
|
||
steps:
|
||
- name: Checkout code
|
||
uses: actions/checkout@v3
|
||
|
||
- name: Determine bump type from commit message
|
||
id: bump
|
||
run: |
|
||
COMMIT_MSG="${{ github.event.head_commit.message }}"
|
||
echo "🔍 Commit message: $COMMIT_MSG"
|
||
|
||
if echo "$COMMIT_MSG" | grep -qE 'BREAKING CHANGE|!:'; then
|
||
echo "bump=major" >> $GITHUB_OUTPUT
|
||
elif echo "$COMMIT_MSG" | grep -qE '^feat(\(.+\))?:'; then
|
||
echo "bump=minor" >> $GITHUB_OUTPUT
|
||
elif echo "$COMMIT_MSG" | grep -qE '^fix(\(.+\))?:'; then
|
||
echo "bump=patch" >> $GITHUB_OUTPUT
|
||
else
|
||
echo "bump=none" >> $GITHUB_OUTPUT
|
||
fi
|
||
|
||
- name: Bump version in fxmanifest.lua
|
||
if: steps.bump.outputs.bump != 'none'
|
||
run: |
|
||
FILE="fxmanifest.lua"
|
||
VERSION_LINE=$(grep -E "version ['\"]?[0-9]+\.[0-9]+\.[0-9]+['\"]?" "$FILE")
|
||
VERSION=$(echo "$VERSION_LINE" | grep -oE "[0-9]+\.[0-9]+\.[0-9]+")
|
||
|
||
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION"
|
||
|
||
case "${{ steps.bump.outputs.bump }}" in
|
||
major)
|
||
MAJOR=$((MAJOR + 1))
|
||
MINOR=0
|
||
PATCH=0
|
||
;;
|
||
minor)
|
||
MINOR=$((MINOR + 1))
|
||
PATCH=0
|
||
;;
|
||
patch)
|
||
PATCH=$((PATCH + 1))
|
||
;;
|
||
esac
|
||
|
||
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
|
||
sed -i "s/version ['\"]$VERSION['\"]/version '$NEW_VERSION'/" "$FILE"
|
||
echo "new_version=$NEW_VERSION" >> $GITHUB_ENV
|
||
|
||
- name: Commit and push version bump
|
||
if: steps.bump.outputs.bump != 'none'
|
||
run: |
|
||
git config user.name "github-actions[bot]"
|
||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||
git add fxmanifest.lua
|
||
|
||
if git diff --cached --quiet; then
|
||
echo "⚠️ No version changes to commit."
|
||
exit 0
|
||
fi
|
||
|
||
COMMIT_MSG="${{ github.event.head_commit.message }}"
|
||
git commit -m "ci: bump fxmanifest version to ${{ env.new_version }} – $COMMIT_MSG"
|
||
git push |