Fix build flow: lockfile bot, CPU multi-arch, paths-ignore, release guard

- update-lockfile.yml: regenerate all four lockfiles (main + cpu/rocm/intel
  variants) on any pyproject change; add variant pyproject files to trigger
- docker-publish.yml: add lockfiles to paths-ignore so the bot commit does
  not trigger a second Docker build; remove redundant CONTRIBUTING/SECURITY
  entries already covered by **.md; add QEMU to build-cpu; set CPU image to
  linux/amd64,linux/arm64 to match release
- release.yml: inline lockfile generation now covers all variants; add
  workflow_dispatch guard that fails if not dispatched from main

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-13 06:52:52 +00:00
co-authored by Claude Sonnet 4.6
parent 7e90b8e669
commit 608ade8499
3 changed files with 46 additions and 13 deletions
+9 -4
View File
@@ -6,13 +6,15 @@ on:
paths-ignore:
- "**.md"
- "docs/**"
- "CONTRIBUTING.md"
- "SECURITY.md"
- ".github/ISSUE_TEMPLATE/**"
- ".github/PULL_REQUEST_TEMPLATE.md"
- ".github/workflows/release.yml"
- ".github/workflows/lint.yml"
- ".github/dependabot.yml"
- "uv.lock"
- "uv-cpu.lock"
- "uv-rocm.lock"
- "uv-intel.lock"
concurrency:
group: docker-${{ github.ref }}
@@ -143,7 +145,7 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-cpu:
name: Build CPU-only (amd64)
name: Build CPU (amd64 + arm64)
runs-on: ubuntu-latest
permissions:
contents: read
@@ -161,6 +163,9 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
@@ -185,7 +190,7 @@ jobs:
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
platforms: linux/amd64,linux/arm64
build-args: VARIANT=cpu
cache-from: type=gha,scope=linux/amd64-cpu
cache-to: type=gha,mode=max,scope=linux/amd64-cpu
+19 -2
View File
@@ -37,8 +37,25 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Ensure uv.lock is current
run: uv lock
- name: Verify release branch
if: github.event_name == 'workflow_dispatch'
run: |
if [ "${{ github.ref_name }}" != "main" ]; then
echo "::error::Releases must be dispatched from main (current: ${{ github.ref_name }})"
exit 1
fi
- name: Ensure lockfiles are current
run: |
cp pyproject.toml _pyproject_orig.toml
for variant in cpu rocm intel; do
cp pyproject-${variant}.toml pyproject.toml
uv lock
cp uv.lock uv-${variant}.lock
done
cp _pyproject_orig.toml pyproject.toml
uv lock
rm _pyproject_orig.toml
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
+18 -7
View File
@@ -5,6 +5,9 @@ on:
push:
paths:
- 'pyproject.toml'
- 'pyproject-cpu.toml'
- 'pyproject-rocm.toml'
- 'pyproject-intel.toml'
workflow_dispatch:
jobs:
@@ -30,24 +33,32 @@ jobs:
- name: Set up Python
run: uv python install 3.13
- name: Regenerate lockfile
run: uv lock
- name: Regenerate all lockfiles
run: |
cp pyproject.toml _pyproject_orig.toml
for variant in cpu rocm intel; do
cp pyproject-${variant}.toml pyproject.toml
uv lock
cp uv.lock uv-${variant}.lock
done
cp _pyproject_orig.toml pyproject.toml
uv lock
rm _pyproject_orig.toml
- name: Check for changes
id: diff
run: |
if git diff --quiet uv.lock; then
if git diff --quiet uv.lock uv-cpu.lock uv-rocm.lock uv-intel.lock; then
echo "changed=false" >> "$GITHUB_OUTPUT"
else
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Commit and push updated lockfile
- name: Commit and push updated lockfiles
if: steps.diff.outputs.changed == 'true'
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 uv.lock"
git add uv.lock uv-cpu.lock uv-rocm.lock uv-intel.lock
git commit -m "chore: update lockfiles"
git push