Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
156 lines
5.4 KiB
YAML
156 lines
5.4 KiB
YAML
name: Version Bump
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version-type:
|
|
description: 'Version bump type'
|
|
required: true
|
|
default: 'patch'
|
|
type: choice
|
|
options:
|
|
- patch
|
|
- minor
|
|
- major
|
|
custom-version:
|
|
description: 'Custom version (optional, overrides version-type)'
|
|
required: false
|
|
type: string
|
|
|
|
jobs:
|
|
bump-version:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install packaging
|
|
|
|
- name: Get current version
|
|
id: current-version
|
|
run: |
|
|
CURRENT_VERSION=$(python -c "import penpot_mcp; print(penpot_mcp.__version__)")
|
|
echo "current=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
|
echo "Current version: $CURRENT_VERSION"
|
|
|
|
- name: Calculate new version
|
|
id: new-version
|
|
run: |
|
|
python << 'EOF'
|
|
import os
|
|
from packaging import version
|
|
|
|
current = "${{ steps.current-version.outputs.current }}"
|
|
custom = "${{ github.event.inputs.custom-version }}"
|
|
bump_type = "${{ github.event.inputs.version-type }}"
|
|
|
|
if custom:
|
|
new_version = custom
|
|
else:
|
|
v = version.parse(current)
|
|
if bump_type == "major":
|
|
new_version = f"{v.major + 1}.0.0"
|
|
elif bump_type == "minor":
|
|
new_version = f"{v.major}.{v.minor + 1}.0"
|
|
else: # patch
|
|
new_version = f"{v.major}.{v.minor}.{v.micro + 1}"
|
|
|
|
print(f"New version: {new_version}")
|
|
|
|
with open(os.environ['GITHUB_OUTPUT'], 'a') as f:
|
|
f.write(f"version={new_version}\n")
|
|
EOF
|
|
|
|
- name: Update version in files
|
|
run: |
|
|
NEW_VERSION="${{ steps.new-version.outputs.version }}"
|
|
|
|
# Update __init__.py
|
|
sed -i "s/__version__ = \".*\"/__version__ = \"$NEW_VERSION\"/" penpot_mcp/__init__.py
|
|
|
|
# Verify the change
|
|
echo "Updated version in penpot_mcp/__init__.py:"
|
|
grep "__version__" penpot_mcp/__init__.py
|
|
|
|
- name: Create changelog entry
|
|
run: |
|
|
NEW_VERSION="${{ steps.new-version.outputs.version }}"
|
|
DATE=$(date +"%Y-%m-%d")
|
|
|
|
# Create CHANGELOG.md if it doesn't exist
|
|
if [ ! -f CHANGELOG.md ]; then
|
|
cat > CHANGELOG.md << 'EOF'
|
|
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
EOF
|
|
fi
|
|
|
|
# Add new version entry
|
|
sed -i "3i\\\\n## [$NEW_VERSION] - $DATE\\\\n\\\\n### Added\\\\n- Version bump to $NEW_VERSION\\\\n\\\\n### Changed\\\\n- Update dependencies and improve stability\\\\n\\\\n### Fixed\\\\n- Bug fixes and performance improvements\\\\n" CHANGELOG.md
|
|
|
|
echo "Updated CHANGELOG.md with version $NEW_VERSION"
|
|
|
|
- name: Commit and push changes
|
|
run: |
|
|
NEW_VERSION="${{ steps.new-version.outputs.version }}"
|
|
|
|
git config --local user.email "action@github.com"
|
|
git config --local user.name "GitHub Action"
|
|
|
|
git add penpot_mcp/__init__.py CHANGELOG.md
|
|
git commit -m "Bump version to $NEW_VERSION
|
|
|
|
- Update version in __init__.py to $NEW_VERSION
|
|
- Add changelog entry for version $NEW_VERSION
|
|
|
|
🤖 Generated with GitHub Actions"
|
|
|
|
git push
|
|
|
|
echo "✅ Version bumped to $NEW_VERSION and pushed to repository"
|
|
|
|
- name: Create pull request (if on branch)
|
|
if: github.ref != 'refs/heads/main'
|
|
uses: peter-evans/create-pull-request@v7
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
commit-message: "Bump version to ${{ steps.new-version.outputs.version }}"
|
|
title: "🔖 Bump version to ${{ steps.new-version.outputs.version }}"
|
|
body: |
|
|
## Version Bump to ${{ steps.new-version.outputs.version }}
|
|
|
|
This PR was automatically created to bump the version.
|
|
|
|
### Changes
|
|
- Updated `__version__` in `penpot_mcp/__init__.py`
|
|
- Added changelog entry for version ${{ steps.new-version.outputs.version }}
|
|
|
|
### Type of Change
|
|
- [${{ github.event.inputs.version-type == 'major' && 'x' || ' ' }}] Major version (breaking changes)
|
|
- [${{ github.event.inputs.version-type == 'minor' && 'x' || ' ' }}] Minor version (new features)
|
|
- [${{ github.event.inputs.version-type == 'patch' && 'x' || ' ' }}] Patch version (bug fixes)
|
|
|
|
### Checklist
|
|
- [x] Version updated in `__init__.py`
|
|
- [x] Changelog updated
|
|
- [ ] Tests pass (will be verified by CI)
|
|
- [ ] Ready for merge and auto-publish
|
|
|
|
**Note**: Merging this PR to `main` will trigger automatic publishing to PyPI.
|
|
branch: version-bump-${{ steps.new-version.outputs.version }}
|
|
delete-branch: true |