Fix build system, CI pipeline, and add three-tier local CI reproduction #16
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
PR #14 started as a dependency and port cleanup but grew into a comprehensive build system and CI overhaul. The Makefile had argument bugs that broke CI, test-all.sh duplicated raw cargo commands instead of using Makefile targets, and there was no way to reproduce CI locally with full fidelity.
Goals
Build fixes (CI blockers)
build release→buildin Makefile build target (build()signature isfeatures, target, profile— "release" went into features arg)build debug→build "$ALL_FEATURES" "" debugin installdev target (same class of bug)CI pipeline alignment
maketargets (fmt-check, lint, check, test, build) instead of raw cargo commands — Makefile is the single source of truthmake test-allstepCARGO_NET_GIT_FETCH_WITH_CLI=trueto ci-local.sh to match CI environmentThree-tier local CI reproduction
make test-all(~80% fidelity) — quick offline checks, fastest iterationmake ci-local(~95% fidelity) — moves workspace .cargo/config.toml aside, sets CI env vars, runsmake test-allmake ci-docker(~100% fidelity) — runs insideghcr.io/despiegk/builder:latest(same image as CI), Docker isolation eliminates all environment differencesci-docker infrastructure
scripts/ci-docker.sh— orchestrates Docker run with SSH keys, cargo registry mounts, CI env varsscripts/ci-patch-deps.sh— replicates CI's cross-repo deps.txt patching for feature branch buildsDependency and config fixes
Verification
make ci-localpasses → remote CI passes (confirmed on PR #14)make ci-dockerpasses inside Docker container (fmt-check, clippy, check, test, release build)Fix build_lib argument bugs and align CI/test-all pipelineto Fix build system, CI pipeline, and add three-tier local CI reproduction