fix(server): drain the New-triggered self-heal bake in Close() (flaky… #2
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 | |
| # Build + publish the multi-arch container image to GHCR. On a v* tag we push the | |
| # version + `latest`; on main we push `edge` (a rolling pre-release image). The | |
| # image is a FROM scratch wrapper around the fully-static musl binary (the | |
| # "go-dims" pattern) — see Dockerfile. | |
| # | |
| # Multi-arch is done by zig-cc CROSS-COMPILE inside the builder stage, NOT QEMU: | |
| # the builder is pinned to the native BUILDPLATFORM and links each TARGETARCH with | |
| # `zig cc`, so buildx emits linux/amd64 + linux/arm64 from one fast amd64 runner. | |
| # The engine (public github.com/beetlebugorg/tile57, whose submodules hold the IHO | |
| # S-101 catalogues) is git-cloned inside the Dockerfile, so no sibling checkout is | |
| # needed here. Same IHO-embed caveat as the binary releases (accepted — the image | |
| # embeds the catalogue via libtile57). | |
| # | |
| # NOTE: correct-by-construction but UNVALIDATED until a real push runs on GitHub | |
| # (buildx needs GHCR auth + the runner, neither available locally). | |
| on: | |
| push: | |
| branches: [main] | |
| tags: ["v*"] | |
| permissions: | |
| contents: read | |
| packages: write | |
| env: | |
| IMAGE: ghcr.io/beetlebugorg/chartplotter | |
| jobs: | |
| image: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout chartplotter | |
| uses: actions/checkout@v7 | |
| - name: Set up QEMU | |
| # Only needed so buildx can DECLARE the arm64 platform; the actual build is | |
| # a native cross-compile (the builder stage pins --platform=$BUILDPLATFORM), | |
| # so no guest code is emulated. | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Log in to GHCR | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Derive image tags | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: ${{ env.IMAGE }} | |
| tags: | | |
| type=semver,pattern={{version}} | |
| type=semver,pattern={{major}}.{{minor}} | |
| type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/v') }} | |
| type=raw,value=edge,enable=${{ github.ref == 'refs/heads/main' }} | |
| - name: Build + push (linux/amd64, linux/arm64) | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| platforms: linux/amd64,linux/arm64 | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| build-args: | | |
| VERSION=${{ github.ref_type == 'tag' && github.ref_name || format('edge-{0}', github.sha) }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max |