You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a Docker workflow (.github/workflows/docker-build.yml or equivalent) for building (and optionally publishing) a container image for reproducible builds and verification. Use a simple multi-stage Dockerfile based on official Rust + cargo images (no CUDA needed for this zero-dep pure CPU crate).
Motivation
Reproducible environment for cargo build/test/clippy independent of host OS (catches subtle env issues early).
Potential for GHCR images (e.g. ghcr.io/limen-neural/engram-parser:main) that downstream consumers or examples can use easily.
Consistency with rmems/corinth-canal (which has .github/workflows/docker-build.yml + open Azure #109 for the full CI story).
Follows the pattern of other Limen-Neural Rust libs for DX and onboarding.
The current CI (.github/workflows/ci.yml) is ubuntu-only in GH Actions. Docker gives containerized verification on every PR/push, with publish only on main (mirroring corinth's split build vs. publish jobs).
Scope
New Dockerfile (multi-stage: builder with rust + cargo, final minimal image or just for CI verification).
New workflow in .github/workflows/ (e.g. docker-build.yml):
Build on PRs and pushes (push: false for verification; use gha cache).
On push to main: login to ghcr.io + build + push with tags for sha + "main".
Build args for RUST_VERSION=stable (keep simple; no CUDAHOSTCXX etc.).
Concurrency group, permissions (read for build, packages:write for publish).
Fork guard if needed (standard runners, so lighter than corinth's self-hosted GPU case).
Use docker/build-push-action with buildx + gha cache (like corinth).
Tag logic adapted from corinth (sha always; main on push; pr-### on PRs for verification).
Non-CUDA, CPU-only: just cargo check --all-features or full test inside the image for verification step (optional, since GH already does it; the value is the reproducible image itself).
Summary
Add a Docker workflow (
.github/workflows/docker-build.ymlor equivalent) for building (and optionally publishing) a container image for reproducible builds and verification. Use a simple multi-stage Dockerfile based on official Rust + cargo images (no CUDA needed for this zero-dep pure CPU crate).Motivation
cargo build/test/clippyindependent of host OS (catches subtle env issues early).ghcr.io/limen-neural/engram-parser:main) that downstream consumers or examples can use easily.rmems/corinth-canal(which has.github/workflows/docker-build.yml+ open Azure #109 for the full CI story).The current CI (
.github/workflows/ci.yml) is ubuntu-only in GH Actions. Docker gives containerized verification on every PR/push, with publish only on main (mirroring corinth's split build vs. publish jobs).Scope
Dockerfile(multi-stage: builder with rust + cargo, final minimal image or just for CI verification)..github/workflows/(e.g.docker-build.yml):docker/build-push-actionwith buildx + gha cache (like corinth).Non-CUDA, CPU-only: just
cargo check --all-featuresor full test inside the image for verification step (optional, since GH already does it; the value is the reproducible image itself).Non-goals
ubuntu-latestor Docker-in-Docker capable runners).Acceptance Criteria
Dockerfileexists at root (or in adocker/dir) with clear comments..github/workflows/docker-build.yml(or similar name) exists.Open Questions
cargo test --all-featuresinside the container for extra verification, or just build?Related
.github/workflows/ci.yml(existing GH).github/workflows/docker-build.yml+ #109 (templates we are adapting; note corinth is CUDA/GPU, this is CPU-only)Adapted from corinth-canal Docker patterns for a simple pure-Rust lib (no CUDA).