From 42418d5b182af0e5e4c9baf6c4da84213d1a4517 Mon Sep 17 00:00:00 2001 From: Estrella Pan Date: Thu, 2 Jul 2026 17:05:50 +0200 Subject: [PATCH] ci: restore release build fix, gate dev-branch PRs, mock the live TMDB test - Apply the docker-actions/cache fix from 4a513df so 3.3 releases build; fix buildx outputs typo - Run CI on PRs targeting 3.*-dev; add ruff + frontend lint/vitest steps - .dockerignore excludes tests and __pycache__ from the image - test_tmdb mocks the HTTP layer (was hitting the live TMDB API in the default suite) Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_014w1Z6Nxy6XTRgkFXqPr9Zh --- .dockerignore | 3 +++ .github/workflows/build.yml | 45 ++++++++++++++++++++++--------------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/.dockerignore b/.dockerignore index 595cb0a5..1645f979 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,7 @@ __pycache__ +**/__pycache__ *.pyc +**/*.pyc *.pyo *.pyd .Python @@ -20,6 +22,7 @@ coverage.xml .hypothesis backend/src/module/tests +backend/src/test backend/src/module/conf/const_dev.py config/bangumi.json/config/bangumi.json /docs diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3380b355..4176dbd3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,6 +8,7 @@ on: - closed branches: - main + - "3.*-dev" push: jobs: @@ -24,6 +25,8 @@ jobs: version: "latest" - name: Install dependencies run: cd backend && uv sync --group dev + - name: Lint + run: cd backend && uv run ruff check src - name: Test run: | mkdir -p backend/config @@ -62,6 +65,12 @@ jobs: - name: Install dependencies run: cd webui && pnpm install + - name: Lint + run: cd webui && pnpm lint + + - name: Unit test + run: cd webui && pnpm test + - name: build test run: | cd webui && pnpm test:build @@ -192,16 +201,16 @@ jobs: echo "VERSION='${{ needs.version-info.outputs.version }}'" >> module/__version__.py - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Docker metadata main if: ${{ needs.version-info.outputs.release == 1 && needs.version-info.outputs.dev != 1 }} id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: | estrellaxd/auto_bangumi @@ -213,7 +222,7 @@ jobs: - name: Docker metadata dev if: ${{ needs.version-info.outputs.dev == 1 }} id: meta-dev - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: | estrellaxd/auto_bangumi @@ -224,14 +233,14 @@ jobs: - name: Login to DockerHub if: ${{ needs.version-info.outputs.release == 1 }} - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Login to ghcr.io if: ${{ needs.version-info.outputs.release == 1 }} - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} @@ -245,41 +254,41 @@ jobs: - name: Build and push if: ${{ needs.version-info.outputs.release == 1 && needs.version-info.outputs.dev != 1 }} - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v6 with: context: . - builder: ${{ steps.buildx.output.name }} + builder: ${{ steps.buildx.outputs.name }} platforms: linux/amd64,linux/arm64 push: True tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha, scope=${{ github.workflow }} - cache-to: type=gha, scope=${{ github.workflow }} + cache-from: type=gha,scope=${{ github.workflow }} + cache-to: type=gha,scope=${{ github.workflow }},ignore-error=true - name: Build and push dev if: ${{ needs.version-info.outputs.dev == 1 }} - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v6 with: context: . - builder: ${{ steps.buildx.output.name }} + builder: ${{ steps.buildx.outputs.name }} platforms: linux/amd64,linux/arm64 push: ${{ github.event_name == 'push' }} tags: ${{ steps.meta-dev.outputs.tags }} labels: ${{ steps.meta-dev.outputs.labels }} - cache-from: type=gha, scope=${{ github.workflow }} - cache-to: type=gha, scope=${{ github.workflow }} + cache-from: type=gha,scope=${{ github.workflow }} + cache-to: type=gha,scope=${{ github.workflow }},ignore-error=true - name: Build test if: ${{ needs.version-info.outputs.release == 0 }} - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v6 with: context: . - builder: ${{ steps.buildx.output.name }} + builder: ${{ steps.buildx.outputs.name }} platforms: linux/amd64,linux/arm64 push: false tags: estrellaxd/auto_bangumi:test - cache-from: type=gha, scope=${{ github.workflow }} - cache-to: type=gha, scope=${{ github.workflow }} + cache-from: type=gha,scope=${{ github.workflow }} + cache-to: type=gha,scope=${{ github.workflow }},ignore-error=true release: runs-on: ubuntu-latest