Merge pull request #47 from sudolulo/chore/simplify-lockfile-ci

chore: replace lockfile auto-update with uv lock --check
This commit is contained in:
2026-06-18 16:36:10 -04:00
committed by GitHub
5 changed files with 14 additions and 64 deletions
+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -euo pipefail
if git diff --cached --name-only | grep -q "^pyproject\.toml$"; then
uv lock
git add uv.lock
fi
+3
View File
@@ -21,6 +21,9 @@ jobs:
- name: Set up Python - name: Set up Python
run: uv python install 3.13 run: uv python install 3.13
- name: Check lockfile is up to date
run: uv lock --check
- name: Install dependencies - name: Install dependencies
run: uv sync --extra cpu run: uv sync --extra cpu
-63
View File
@@ -1,63 +0,0 @@
# .github/workflows/update-lockfile.yml
name: Update lockfile
on:
push:
branches:
- '**'
- '!main'
paths:
- 'pyproject.toml'
workflow_dispatch:
jobs:
update-lockfile:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Install uv
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
- name: Set up Python
run: uv python install 3.13
- name: Regenerate lockfile
run: uv lock
- name: Check for changes
id: diff
run: |
if git diff --quiet uv.lock; then
echo "changed=false" >> "$GITHUB_OUTPUT"
else
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Commit and push updated lockfile
if: steps.diff.outputs.changed == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add uv.lock
git commit -m "chore: update lockfile"
if [ "$GITHUB_REF_NAME" = "dev" ]; then
# dev is protected — open a PR rather than pushing directly
BRANCH="chore/lockfile-$(git rev-parse --short HEAD)"
git checkout -b "$BRANCH"
git push origin "$BRANCH"
gh pr create \
--base dev \
--head "$BRANCH" \
--title "chore: update lockfile" \
--body "Automated lockfile update triggered by a \`pyproject.toml\` change on \`dev\`."
else
git push
fi
+3
View File
@@ -17,8 +17,11 @@ git clone https://github.com/sudolulo/winnow.git
cd winnow cd winnow
git checkout dev git checkout dev
uv sync uv sync
git config core.hooksPath .githooks
``` ```
The last line activates the project's git hooks. The pre-commit hook automatically runs `uv lock` and stages the result whenever `pyproject.toml` is part of a commit, keeping the lockfile in sync without any extra steps.
## Running Tests and Lint ## Running Tests and Lint
```bash ```bash
Generated
+1 -1
View File
@@ -905,7 +905,7 @@ wheels = [
[[package]] [[package]]
name = "winnow" name = "winnow"
version = "0.6.5" version = "0.6.6"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "croniter" }, { name = "croniter" },