Skip to content

Prefer Docker over Podman in container-image CI scripts - #67

Closed
bougyman with Copilot wants to merge 2 commits into
mainfrom
copilot/fix-github-actions-job
Closed

Prefer Docker over Podman in container-image CI scripts#67
bougyman with Copilot wants to merge 2 commits into
mainfrom
copilot/fix-github-actions-job

Conversation

Copilot AI commented Aug 11, 2026

Copy link
Copy Markdown

The Build and publish container image job was building the image with Podman while downstream steps expected to find it through Docker. On GitHub Actions runners with both runtimes installed, that left Trivy scanning a tag that did not exist in Docker’s local image store.

  • Root cause

    • ci/build_image.sh preferred Podman when both runtimes were available.
    • The image was committed as localhost/linear-cli-ex:<tag>, while the workflow scanned linear-cli-ex:<tag> via Trivy/Docker.
  • Change

    • Reordered runtime selection to prefer Docker first, then fall back to Podman, in:
      • ci/build_image.sh
      • ci/publish.sh
      • ci/save_image.sh
  • Effect

    • Build, scan, publish, and save now operate on the same local image representation in CI.
    • The change keeps local fallback behavior for environments that only have Podman.
  • Representative change

    if command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1
    then
        runtime=docker
    elif command -v podman >/dev/null 2>&1 && podman info >/dev/null 2>&1
    then
        runtime=podman
    else
        die 6 "No usable container runtime found"
    fi

Co-authored-by: bougyman <6848+bougyman@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix failing GitHub Actions job Build and publish container image Prefer Docker over Podman in container-image CI scripts Aug 11, 2026
Copilot AI requested a review from bougyman August 11, 2026 19:02
@bougyman

Copy link
Copy Markdown
Member

Your commit messages suck, and we prefer podman, not docker. This was a bad change.

@bougyman bougyman closed this Aug 11, 2026
bougyman added a commit that referenced this pull request Aug 11, 2026
… scanning (#68)

## Summary
- Splits the `burrito` job into a `burrito-build` matrix (one leg per
target - `macos_aarch64`, `linux_x86_64`, `windows_x86_64` - built
concurrently instead of serially in one job) and a `burrito-package` job
that gathers all three binaries and does the
packaging/checksums/SBOM/release-creation. Closes #66. The release
pipeline was taking 12+ minutes with all three targets built serially.
- Fixes Trivy scanning a Docker-only `image-ref` while the image is
actually built with Podman (`ci/build_image.sh` prefers Podman) - see
#67, where a runtime-preference reorder was tried and rejected since it
would've meant Podman-built images go untested. This saves the image to
a tarball (`ci/save_image.sh`, already existed but was unused) and has
Trivy scan that directly via its `input` option, sidestepping the
runtime-detection question entirely.
- Fixes a pre-existing `shellcheck` SC2035 nit (`sha256sum *` ->
`sha256sum -- *`) found while validating the workflow with `actionlint`.

## Test plan
- [x] `actionlint .github/workflows/main.yaml` - clean, no warnings
- [x] YAML validated (job graph: `validate` -> `burrito-build` (matrix)
-> `burrito-package` -> `container`, with `needs`/output references
updated accordingly)
- [ ] End-to-end verification on an actual release-PR merge (or
`workflow_dispatch`) - confirm total wall-clock and that the container
SBOM step succeeds against the saved tarball

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants