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
{{ message }}
Repository navigation
Add Docker workflow for reproducible / containerized builds (publish to GHCR on main) #9
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.
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).
Both follow the pattern from corinth-canal #109 (Azure) and its docker-build.yml for org consistency. See plan for details. Cross-platform + containerized verification for this pure-Rust zero-dep crate.
See #8 (Azure) too. All build on the existing CI baseline + corinth/neuromod patterns for Limen-Neural DX (LIM-9). Grok Build assisted drafting. (Separate ymls preferred where it makes sense.)
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 docs: standalone public docs pass for v0.3.0 (RM-1952) #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+ docs: standalone public docs pass for v0.3.0 (RM-1952) #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).