bench: Bhabha 2L vertex-corrected box (VBox) — Family 6 × 4 variants #61
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: docker | |
| on: | |
| push: | |
| branches: [main] | |
| tags: ['v*'] | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - 'docker/**' | |
| - '.dockerignore' | |
| - '.github/workflows/docker.yml' | |
| - 'CMakeLists.txt' | |
| - 'src/**' | |
| - 'include/**' | |
| env: | |
| REGISTRY: ghcr.io | |
| IMAGE_NAME: ${{ github.repository }} | |
| # Opt JavaScript-based actions into Node.js 24 ahead of the platform | |
| # switch (mirrors .github/workflows/ci.yml). Becomes a no-op once | |
| # upstream actions ship `runs.using: node24` natively. | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" | |
| jobs: | |
| build-and-push: | |
| name: Build image (linux/amd64) | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write # required for ghcr.io push | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| # Only log in for actual pushes — PRs build the image locally | |
| # (push=false below) so the cache can warm up without granting | |
| # write access on the registry. | |
| - name: Log in to GHCR | |
| if: github.event_name != 'pull_request' | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Extract tags & labels | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
| tags: | | |
| # `:main` on every push to main | |
| type=ref,event=branch | |
| # `:pr-NNN` on pull requests (for trace-back convenience) | |
| type=ref,event=pr | |
| # `:1.1` on git tag v1.1, `:1.2` on v1.2, etc. | |
| type=semver,pattern={{version}} | |
| # `:latest` only on default-branch pushes / tag pushes | |
| type=raw,value=latest,enable={{is_default_branch}} | |
| - name: Build and push | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| file: docker/Dockerfile | |
| platforms: linux/amd64 | |
| # PRs: build-only (validate Dockerfile changes); main/tag: push. | |
| push: ${{ github.event_name != 'pull_request' }} | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| # GitHub Actions cache backend; persists FLINT / Kira / | |
| # FireFly layers across runs and shaves cold ~25 min builds | |
| # down to ~5 min when the upstream sources haven't changed. | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max |