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__