Skip to content

ci(release): package Linux with a verified native builder image - #322

Open
itlezy wants to merge 10 commits into
mainfrom
fix/ci-linux-environment
Open

itlezy wants to merge 10 commits into
mainfrom
fix/ci-linux-environment

Conversation

@itlezy

@itlezy itlezy commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

Native Linux packaging currently provisions APT and AppImage tooling on each host runner. Route it through the verified native compiler image instead, retaining the Windows/macOS host recipe, package lifecycle checks and release inventory. Linux inputs use exact mirrored upstream digests; an invalid image never falls back to host provisioning.

Pin Builder 7664330e9381e6ac4f10a72d39f293a4b886b5b9 together with ghcr.io/emulebb/emulebb-build-ci/ubuntu-rust@sha256:e006429d3a240a6f4e43b1d8f05581bcd963ca681059e2661465ebb359f9118e. Host verification checks the image's GitHub attestation, producer source, recipe/material hashes, tested native CPU descriptors and runtime probe before packaging. The Alpine change affects its build-only unpack input; the runtime base remains immutable.

Preserve the current source/channel/architecture identity checks, Windows/Linux profile-ownership proof, both workspace-root inputs and shell-independent channel argument. Retain prepared execution receipts and package logs even when packaging fails. Full and reduced platform profiles share the existing native recipes and artifact graph.

Validation:

  • Producer 43091764360 passed on exact Builder main. AMD64 and ARM64 native probes executed as UID 10000 without networking and exercised real DEB production, AppStream and desktop validators.
  • Independent existing verifiers checked all eight material hashes, anonymous prepared/mirror registry reads, both CPU graphs and cryptographic GitHub attestations. Producer URI: https://github.com/emulebb/emulebb-build/actions/runs/43091764360/attempts/1. Evidence: reports/packaging-identity/prepared-43091764360/prepared-image-verification.json.
  • Current focused workflow owners passed 9/9 and 7/7. Normal commit/push hooks passed; receipts reports/local-check/emulebb-rust/20261111T201027Z-6f8de4b2 and 20261111T201050Z-b1c48e23.
  • Fresh hosted qualification and actual unpublished prepared-package/lifecycle proof remain required. Producer verification alone does not prove this consumer or a final combined-main nightly.

Parent-coordinated parallel consolidation alongside #320: this lane owns prepared release execution and its workflow tests; #320 owns inventory-derived download guidance. The parent coordinates shared Git state, dependency rebases and integration order under parallel-approved. Original authored commits are preserved; the bounded host-provisioning prerequisite is already integrated by #318. Final main advancement still requires fresh applicable checks.

Refs #302 / RUST-CI-045; related #306. No Beta3 promotion or APK/signing change.

Threepwood-7 added 10 commits November 11, 2026 21:03
…-045)

Use the Build-owned verified-image launcher only for Linux native packages. Remove nightly host APT/AppImage provisioning while preserving the six-platform graph, output identities and every downstream proof gate.

Unpublished integration checkpoint: the parent must supply the actual verified EMULEBB_LINUX_PREPARED_IMAGE value and merged Build producer pin before delivery. No guessed image reference is added.

Refs #302
Skip redundant host Rust, Node and npm setup on Linux while retaining Python control, source policy and image verification. Windows and macOS keep their existing toolchain setup.

Refs #302
Pass the Build-owned mirror selector to musl and OCI packaging. Make only Alpine's unpack stage selectable, retaining the original digest as its default and preserving the final LinuxServer runtime base.

Unpublished integration checkpoint: production activation still requires the parent-owned merged Build pin and verified public image graph.

Refs #302
…(RUST-CI-045)

Adopt Builder766 and the verified multiarch image together. Producer43091764360 passed native probes, exact material checks, public reads and GitHub attestation.
@itlezy itlezy added the parallel-approved Maintainer-approved exception for deliberately parallel human pull requests label Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

parallel-approved Maintainer-approved exception for deliberately parallel human pull requests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant