mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
feat(ci): add verify job to ai-bundles workflow
The verify job runs between build and publish, gating HuggingFace upload on per-bundle smoke tests. Each of the 14 bundle variants (7 bundles x 2 arches) is verified independently: SHA256 checksum, tarball extraction, Python import checks, and functional inference.
This commit is contained in:
@@ -116,9 +116,108 @@ jobs:
|
|||||||
path: /tmp/bundles/
|
path: /tmp/bundles/
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
|
||||||
|
verify:
|
||||||
|
name: Verify ${{ matrix.bundle }} (${{ matrix.arch }})
|
||||||
|
needs: build
|
||||||
|
timeout-minutes: 20
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- bundle: background-removal
|
||||||
|
arch: amd64-gpu
|
||||||
|
runner: ubuntu-latest
|
||||||
|
- bundle: background-removal
|
||||||
|
arch: arm64-cpu
|
||||||
|
runner: ubuntu-24.04-arm
|
||||||
|
- bundle: face-detection
|
||||||
|
arch: amd64-gpu
|
||||||
|
runner: ubuntu-latest
|
||||||
|
- bundle: face-detection
|
||||||
|
arch: arm64-cpu
|
||||||
|
runner: ubuntu-24.04-arm
|
||||||
|
- bundle: object-eraser-colorize
|
||||||
|
arch: amd64-gpu
|
||||||
|
runner: ubuntu-latest
|
||||||
|
- bundle: object-eraser-colorize
|
||||||
|
arch: arm64-cpu
|
||||||
|
runner: ubuntu-24.04-arm
|
||||||
|
- bundle: upscale-enhance
|
||||||
|
arch: amd64-gpu
|
||||||
|
runner: ubuntu-latest
|
||||||
|
- bundle: upscale-enhance
|
||||||
|
arch: arm64-cpu
|
||||||
|
runner: ubuntu-24.04-arm
|
||||||
|
- bundle: photo-restoration
|
||||||
|
arch: amd64-gpu
|
||||||
|
runner: ubuntu-latest
|
||||||
|
- bundle: photo-restoration
|
||||||
|
arch: arm64-cpu
|
||||||
|
runner: ubuntu-24.04-arm
|
||||||
|
- bundle: ocr
|
||||||
|
arch: amd64-gpu
|
||||||
|
runner: ubuntu-latest
|
||||||
|
- bundle: ocr
|
||||||
|
arch: arm64-cpu
|
||||||
|
runner: ubuntu-24.04-arm
|
||||||
|
- bundle: transcription
|
||||||
|
arch: amd64-gpu
|
||||||
|
runner: ubuntu-latest
|
||||||
|
- bundle: transcription
|
||||||
|
arch: arm64-cpu
|
||||||
|
runner: ubuntu-24.04-arm
|
||||||
|
runs-on: ${{ matrix.runner }}
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: read
|
||||||
|
steps:
|
||||||
|
- name: Free disk space
|
||||||
|
run: |
|
||||||
|
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc \
|
||||||
|
/usr/local/share/boost /opt/hostedtoolcache/CodeQL
|
||||||
|
sudo docker system prune -af
|
||||||
|
df -h /
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||||
|
with:
|
||||||
|
ref: v${{ inputs.version }}
|
||||||
|
|
||||||
|
- name: Log in to GHCR
|
||||||
|
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GHCR_TOKEN }}
|
||||||
|
|
||||||
|
- name: Download build artifact
|
||||||
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.bundle }}-${{ matrix.arch }}
|
||||||
|
path: /tmp/bundles
|
||||||
|
|
||||||
|
- name: Verify bundle
|
||||||
|
env:
|
||||||
|
BUNDLE: ${{ matrix.bundle }}
|
||||||
|
ARCH: ${{ matrix.arch }}
|
||||||
|
VERSION: ${{ inputs.version }}
|
||||||
|
run: |
|
||||||
|
docker run --rm --entrypoint bash \
|
||||||
|
-v "$PWD/docker/verify-bundle.sh:/verify-bundle.sh:ro" \
|
||||||
|
-v "$PWD/packages/ai/python:/app/packages/ai/python:ro" \
|
||||||
|
-v "$PWD/tests/fixtures:/fixtures:ro" \
|
||||||
|
-v "/tmp/bundles:/bundles:ro" \
|
||||||
|
-e SNAPOTTER_GPU=0 \
|
||||||
|
-e CUDA_VISIBLE_DEVICES="" \
|
||||||
|
-e MODELS_PATH=/tmp/verify-models \
|
||||||
|
-e U2NET_HOME=/tmp/verify-models/rembg \
|
||||||
|
-e PYTHONPATH=/app/packages/ai/python \
|
||||||
|
"ghcr.io/snapotter-hq/snapotter:${VERSION}" \
|
||||||
|
/verify-bundle.sh "${BUNDLE}" "${ARCH}"
|
||||||
|
|
||||||
publish:
|
publish:
|
||||||
name: Publish to HuggingFace
|
name: Publish to HuggingFace
|
||||||
needs: build
|
needs: verify
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|||||||
Reference in New Issue
Block a user