feat(tools/e2e): network-isolated build verification harness for vendor packages - #428
Merged
Minipada merged 2 commits intoAug 26, 2026
Merged
Conversation
…vendor packages Add a `vendor-network-check` Containerfile stage that builds aws_sdk_vendor and vector_vendor under `RUN --network=none` (a per-instruction Buildah/Podman flag, verified to take precedence over build.sh's own top-level `--network host`), while keeping their rosdep/apt install in a separate, normally-networked layer. Splitting `toolchain` into `toolchain-base` + `toolchain` gives this new stage a branch point that predates the toolchain stage's own aws_sdk_vendor build, so it's a real, from-scratch attempt rather than a cache hit. Verified locally: today the isolated build fails with a clear, attributable network error for each package (git clone / file DOWNLOAD "Could not resolve host"), not a generic crash or timeout — proving the seam works before #424/#425 make it pass. tools/e2e/scripts/verify_network_isolation.sh wraps build.sh with TARGET=vendor-network-check; ci.yaml wires it in as its own non-blocking (continue-on-error) job until #424 and #425 land. Closes #423 Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## jazzy #428 +/- ##
=======================================
Coverage 70.93% 70.93%
=======================================
Files 119 119
Lines 7401 7401
=======================================
Hits 5249 5249
Misses 2152 2152
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…rror continue-on-error only affects the workflow's aggregate conclusion and needs: gating — the job's own check-run conclusion still reports "failure", so every PR showed a red X for a build that's expected to fail until #424/#425 land. Disable the job outright (if: false) instead; flip it back on once those land and the isolated build can actually pass. Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
github-actions
Bot
deleted the
feature/423-network-isolated-build-verification-harn
branch
August 26, 2026 21:28
3 tasks
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.
Summary
vendor-network-checkstage totools/e2e/Containerfilethat buildsaws_sdk_vendorandvector_vendorunderRUN --network=none(a per-instruction Buildah/Podman flag — verified to take precedence overbuild.sh's top-level--network host), while their rosdep/apt dependency install stays in a separate, normally-networked layer.toolchainis split intotoolchain-base+toolchainso this new stage branches off before the productiontoolchainstage buildsaws_sdk_vendor, making it a real from-scratch attempt rather than a cache hit against already-built work.tools/e2e/scripts/verify_network_isolation.sh, a thin wrapper aroundbuild.sh(TARGET=vendor-network-check) that is the harness's entry point for both local dev and CI..github/workflows/ci.yamlas a new standalonenetwork-isolation-checkjob, markedcontinue-on-error: truesince it's expected to fail until vector_vendor: checked-in binary, no network fetch #424 and aws_sdk_vendor: flattened source, no network fetch #425 replaceaws_sdk_vendor's git clone andvector_vendor's binary download with vendored/prebuilt sources.Verified locally (
podman build --target vendor-network-check): the isolated build fails today with a clear, attributable network error for each package —fatal: unable to access 'https://github.com/aws/aws-sdk-cpp.git/': Could not resolve host: github.comforaws_sdk_vendor, andCouldn't resolve host nameforvector_vendor'sfile(DOWNLOAD ...)— not a generic timeout or crash, proving the isolation seam works before it's asked to pass.Test plan
git add -A && prek run --all-files --skip build-docpasses (hadolint, shellcheck, REUSE, clang-format, etc.)podman build --target vendor-network-check -f tools/e2e/Containerfile .(viaverify_network_isolation.sh) fails today with clear, attributable network errors for bothaws_sdk_vendorandvector_vendorpodman build --target toolchain -f tools/e2e/Containerfile .still reaches theaws_sdk_vendorbuild step normally (production path unaffected by thetoolchain-base/toolchainsplit)network-isolation-checkjob runs green (non-blocking) on this PRCloses #423