mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
🐳 chore: 支持自动修改版本号 (#1629)
This commit is contained in:
parent
e41e16370e
commit
cd88d805ce
65
.github/workflows/update_version.yml
vendored
Normal file
65
.github/workflows/update_version.yml
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
name: Update Version
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request_target:
|
||||||
|
paths:
|
||||||
|
- zhenxun/**
|
||||||
|
- resources/**
|
||||||
|
- bot.py
|
||||||
|
types:
|
||||||
|
- opened
|
||||||
|
- synchronize
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- dev
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-version:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event.pull_request.head.sha }}
|
||||||
|
|
||||||
|
- name: Read current version
|
||||||
|
id: read_version
|
||||||
|
run: |
|
||||||
|
version_line=$(grep '__version__' __version__)
|
||||||
|
version=$(echo $version_line | sed -E 's/__version__:\s*v([0-9]+\.[0-9]+\.[0-9]+)(-.+)?/\1/')
|
||||||
|
echo "Current version: $version"
|
||||||
|
echo "current_version=$version" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Check for version file changes
|
||||||
|
id: check_diff
|
||||||
|
run: |
|
||||||
|
if git diff --name-only HEAD~1 HEAD | grep -q '__version__'; then
|
||||||
|
echo "Version file has changes"
|
||||||
|
echo "version_changed=true" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "Version file has no changes"
|
||||||
|
echo "version_changed=false" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Get commit hash
|
||||||
|
id: get_commit_hash
|
||||||
|
run: echo "commit_hash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Update version file
|
||||||
|
if: steps.check_diff.outputs.version_changed == 'false'
|
||||||
|
run: |
|
||||||
|
current_version="${{ steps.read_version.outputs.current_version }}"
|
||||||
|
commit_hash="${{ steps.get_commit_hash.outputs.commit_hash }}"
|
||||||
|
new_version="v${current_version}-${commit_hash}"
|
||||||
|
echo "Updating version to: $new_version"
|
||||||
|
echo "__version__: $new_version" > __version__
|
||||||
|
git config --global user.name "${{ github.event.pull_request.user.login }}"
|
||||||
|
git config --global user.email "${{ github.event.pull_request.user.login }}@users.noreply.github.com"
|
||||||
|
git add __version__
|
||||||
|
git remote set-url origin https://github.com/${{ github.event.pull_request.head.repo.full_name }}.git
|
||||||
|
git commit -m "chore(version): Update version to $new_version"
|
||||||
|
git push origin HEAD:${{ github.event.pull_request.head.ref }}
|
||||||
|
|
||||||
|
- name: Check updated version
|
||||||
|
if: steps.check_diff.outputs.version_changed == 'false'
|
||||||
|
run: cat __version__
|
||||||
Loading…
Reference in New Issue
Block a user