Introduces a GitHub Actions workflow that automatically updates and commits the uv.lock file when pyproject.toml changes on the main branch or via manual dispatch. This helps ensure dependency lock file stays in sync with project version updates.
52 lines
1.2 KiB
YAML
52 lines
1.2 KiB
YAML
name: Update uv.lock on version bump
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- 'pyproject.toml'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
update-lock:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.13'
|
|
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v3
|
|
|
|
- name: Update uv.lock
|
|
run: uv sync
|
|
|
|
- name: Check for changes
|
|
id: changes
|
|
run: |
|
|
if git diff --quiet uv.lock; then
|
|
echo "changed=false" >> $GITHUB_OUTPUT
|
|
echo "No changes to uv.lock"
|
|
else
|
|
echo "changed=true" >> $GITHUB_OUTPUT
|
|
echo "uv.lock has been updated"
|
|
fi
|
|
|
|
- name: Commit and push uv.lock
|
|
if: steps.changes.outputs.changed == 'true'
|
|
run: |
|
|
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
|
git config --local user.name "github-actions[bot]"
|
|
git add uv.lock
|
|
git commit -m "chore: update uv.lock after version bump [skip ci]"
|
|
git push
|
|
|