8000 fix(release): verify container image before merge by samuelagm · Pull Request #16 · resilis/walgit · GitHub
[go: up one dir, main page]

Skip to content

fix(release): verify container image before merge - #16

Merged
samuelagm merged 1 commit into
mainfrom
fix/release-protobuf-includes
Aug 25, 2026
Merged

samuelagm merged 1 commit into
mainfrom
fix/release-protobuf-includes

Conversation

@samuelagm
@samuelagm samuelagm commented Aug 25, 2026 •
Copy link
Copy Markdown

Summary

  • install the protobuf development headers required by the release image build
  • fail the image build early when the standard timestamp.proto include is absent
  • build and smoke-test the real release image in pull-request CI
  • cap both the image gate and release job at 15 minutes

This fixes the exact failure in release run 32878855855, where protoc could not find google/protobuf/timestamp.proto.

Validation

  • full local Containerfile build passed
  • runtime image smoke passed: walgit, walgit-server, Git, and Git LFS are present
  • git diff --check
  • actionlint 1.7.7 on both changed workflows
  • independent exact-SHA review of 467ab74983f2b1ed3e6bee116a0a397b3b3b6c1f: PASS, no findings
  • hosted CI run 32884794693: all required checks passed
  • container image: 14m02s; Rust workspace and e2e: 9m34s; RustFS S3 contract: 5m00s; dependency audit: 3m18s; format and web: 51s

Change Safety Contract

Preservation boundary

Existing Rust and web builds, runtime image contents, entrypoint behavior, release publishing, SBOM, provenance, attestation, signing, dependency audit, and RustFS contract checks remain unchanged. The authorized change is to fix the release build dependency and enforce the 15-minute CI limit.

Owner and invariant

Containerfile owns release-image build dependencies. It must compile the same locked WalGit source with the protobuf well-known types available. CI must reject an image that cannot build or lacks the runtime tools, and no job may run longer than 15 minutes.

Direct and adjacent impact

The change affects only the image builder and GitHub Actions. It adds a builder-only Debian package, a no-push image validation job, the existing quality aggregate dependency, and the release timeout. It does not change runtime code, APIs, object-store behavior, configuration, schemas, or persisted data.

Compatibility and recovery

There is no persisted-contract or mixed-version impact. The added headers remain in the discarded build stage. A revert restores the prior workflows and builder, although that would restore the known release failure. The preferred recovery for timing failure is to split or cache the build within the same 15-minute ceiling, not increase the timeout.

Verification

Local evidence proves that the actual image builds and its runtime tools exist. Pull-request CI proved the hosted build completes within 15 minutes and kept the existing required quality aggregate green. After merge, the release workflow for the exact main commit must build and publish successfully within 15 minutes.

Risks and follow-ups

The first hosted image build passed with 58 seconds of margin. If normal timing variance reaches the 15-minute ceiling, optimize or split the build; do not raise the timeout.

@samuelagm
samuelagm merged commit 32e05b3 into main Aug 25, 2026
7 checks passed
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.

1 participant

0