Repository navigation
ci: align local container verification with CI - #30
Merged
Merged
Conversation
Replace OrbStack-specific build and test guidance with Linux environments provided by installed tooling. Preserve Linux-resident storage and document unprivileged execution with a private XDG_RUNTIME_DIR for container test compatibility.
Provide Go, Git, Make, OpenSSH, non-root execution, and a private runtime directory in a repository-owned image. Copy the checkout onto Linux storage and match CI CGO settings. Add make container-test with a selectable Docker-compatible client so agents do not reconstruct test setup for each run.
Run the same Linux verification image locally, in CI, and before tagged releases. Pin the current Go patch version separately from the module minimum. Add read-only drift checks, matching offline linter configuration validation, feature checks, and cross-compilation. Retain native macOS coverage and preserve release Git metadata.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Local container checks could pass while CI rejected formatting, dependency drift, or lint. Use one repository-owned Linux image and shared Make targets for local verification, Linux CI, and the tagged-release verification gate.
Pin the compiler in
.go-version(Go 1.25.14, matching the current CI patch level) and the linter inMakefile. Keep the module minimum separate. The image supplies an unprivileged user, private runtime directory, and the matching linter schema for offline configuration validation. Docker, Podman, and nerdctl clients can run the same target.make verifychecks dependencies and formatting without repairs, runs vet/tests, builds both binaries, checks feature output, runs configuration validation and lint, and cross-compiles all four release platforms. Native macOS CI runs the shared coremake checktarget. Remove duplicate PR build/lint jobs; release compilation usesmake buildwhile preserving embedded Git metadata. Demo compilation uses the same compiler pin.Validation:
Local Linux success predicts the shared Linux checks. Native macOS behavior, demo generation, and release publication retain independent CI coverage. Alternate container clients were checked by dry-run; Docker was used for execution.