Repository navigation
ci(platforms): separate primary merge gates and bind candidate profiles - #314
Conversation
|
Parent-coordinated consolidation: #314 owns the CI graph and merged Builder selection. AICH trust #248 and atomic settings #299 are independently owned reliability work, with atomic settings explicitly stacked after AICH. They are being qualified in isolated registered checkouts in parallel using the exact #314 workflow candidate. Merge order is #314, then AICH, then atomic settings; each dependent branch will be refreshed against the actual preceding merge and applicable checks rerun before merge. The parent owns ref updates, conflict review and merges. File ownership and dependencies are recorded; no required CI/CodeQL gate is waived. This is the coordinated use of the parallel-approved policy, not an unrelated PR exception. |
|
The parent is also qualifying the existing profile-ownership lane (#247) in parallel. Its seven Rust commits own daemon/profile/metadata lease lifetimes and are separate from CI graph changes, AICH trust and atomic settings. Actual Windows packaged-daemon proof passed: all three offline writer commands specifically rejected the busy profile without settings/root/bootstrap mutation; clean shutdown released ownership, durable partial progress survived restart, and the 12 MiB transfer completed with the expected hash. Its current workflow base is the same #314 candidate; merge order remains #314, AICH #315, atomic settings #316, then parent-reviewed independent lanes. The parent will refresh exact branches and require applicable checks before each merge. No required status or author policy is waived; all affected human PRs carry the coordinated parallel-approved label. |
Windows/Linux merge qualification currently waits for macOS and Android even after primary platforms pass. This separates their visible, failure-aware outcomes into an independent workflow while Required CI retains Linux GNU/musl, Windows, native ARM64, REST/OpenAPI, shared quality and supply-chain checks. Required CodeQL and PR coordination remain unchanged.
Release qualification keeps the full platform inventory by default. An explicit Windows/Linux profile is restricted to unpublished manual candidates; nightly/tag publication still requires every included platform and exact latest source-run/attempt evidence. Native package and smoke recipes share YAML steps while keeping artifact namespaces separate.
The workflow consumers pin the merged Builder profile provider and native-link source-fence fix at
995d13f350c8342437fdb3122d2a271696ac6e29(emulebb/emulebb-build#53). Prepared-image production remains a separate workstream. The dependency-only Cargo cache change preserves its original author commit and covers both primary and optional hosted caches.Validation: normal commit and push hooks passed environment provenance, actionlint, policy checks, 262 Python tests (one Windows skip for the Ubuntu aggregate-shell test), and rustfmt. Hosted qualification exposed an uninitialized musl Cargo target directory (now created before the unchanged full test/smoke command) and rejection of tracked native source links (fixed and fully hosted-qualified in emulebb/emulebb-build#53, including 16 actual Linux link cases). Hosted platform compilation, the real aggregate shell and CodeQL are pending the refreshed exact-head checks; no local broad platform matrix was run for this workflow change.
Closes #293.