ci(INFRA-3629): Phase 5c Namespace artifact adoption#30169
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
…ce artifacts - Pair ios-bundle upload/download on Namespace vs GitHub runners - Pair fixture validation junit download with validate-e2e-fixtures uploads - Pair prior-run junit download; split step ids for actionlint uniqueness - Pair JUnit and screenshot uploads in run-e2e-workflow Co-authored-by: Cursor <cursoragent@cursor.com>
- Pair APK/androidTest and iOS app/sourcemap uploads; keep upload-apk, upload-test-apk, upload-app, upload-sourcemap ids on GitHub-only steps - Pair run-e2e-workflow download-all for Android/iOS build artifacts - Pair smoke/regression report shard downloads by runner_provider Co-authored-by: Cursor <cursoragent@cursor.com>
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
…p uploads - Align build-ios-e2e find-reusable-build with Android: skip on namespace - Pair smoke/regression aggregate and JSON report uploads by runner_provider Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Reduce parallel workers on namespace-profile-metamask-ci-linux (8x16) to lower cgroup OOM SIGKILL risk on heavy shards; heap stays 12GiB namespace / 20GiB GitHub via existing NODE_OPTIONS split. Co-authored-by: Cursor <cursoragent@cursor.com>
CI note — Namespace unit SIGKILL (transient) + current runsWhat happened: Namespace Mitigation (landed on this branch): aac0451c1c9f5e097049fa01030af80fb4a478da — Namespace Linux unit matrix uses Latest workflow runs (same head as PR tip)
Merge posture: Branch is mergeable from GitHub’s perspective; ready for human review. policy-bot / policy-bot: main are still pending until policy approves. Happy to re-run or pair a |
🔍 Smart E2E Test Selection⏭️ Smart E2E selection skipped - skip-smart-e2e-selection label found All E2E tests pre-selected. |
|



Description
Paired artifact steps:
runner_provider=namespace→ SHA-pinnednamespace-actions/upload-artifact/namespace-actions/download-artifact. Otherwise →actions/upload-artifact@v4/actions/download-artifact@v4. No dynamicuses:; onlyif:-gated pairs.Behavior added
lcov.infouse the same backend as the runner.run-e2e-workflow.yml): JUnit, screenshots, and prior-run junit re-fetch use the paired backend on Namespace..app/ sourcemap uploads align with same-run “download all” inrun-e2e-workflow.yml(no mixed backend in one run).retention-days: 7on both backends (matches smoke; Namespace default without that is 30 days).Caveats
run-idstill uses GitHub’s API where used.find-reusable-buildis off on Namespace (Android + iOS) until that path is validated for Namespace artifacts.namespace-actions/*pins (distinct fromnamespacelabs/*).Acceptance evidence (still to attach before closing INFRA-3629)
Implements pairing + pins only; ticket “done” still needs linked proof (Namespace
cidispatch where Namespace steps actually run, allowlist, INFRA-3597 pointer if applicable, native E2E Namespace handoff, timing/stability if required, rollback note on ticket).runner_provider=namespace— see run for status).cionphase5c/namespace-artifact-adoption:workflow_dispatch(Namespace runners)pull_request(GitHub-hosted jobs)pull_requestChangelog
CHANGELOG entry: null
Related issues
Related to INFRA-3629 — partial implementation until acceptance evidence is on the ticket (this PR does not claim full closure).
Manual testing steps
Screenshots/Recordings
N/A — workflow and runner configuration only; validate via Actions run logs and the Artifacts tab on the workflow run.
Before
N/A
After
N/A
Pre-merge author checklist
Performance checks (if applicable)
trace()for usage andaddTokenfor an examplePre-merge reviewer checklist
Note
Medium Risk
Changes CI artifact upload/download paths across builds, coverage, and E2E workflows; misconfiguration could break artifact handoffs and make tests/coverage flaky or unavailable on one runner provider.
Overview
Standardizes artifact handling when
runner_provider=namespaceby pairingnamespace-actions/upload-artifact+namespace-actions/download-artifact(SHA-pinned) with the existingactions/*-artifact@v4steps for non-Namespace runs, preventing mixed backends within a single workflow run.This updates Android/iOS E2E build workflows to upload APKs, test APKs,
.appbundles, and iOS sourcemaps via the matching backend and adjusts job outputs/status logging accordingly; it also disables cross-run reusable-build lookup on Namespace for iOS.The main
ci.ymlworkflow now uploads/downloads artifacts (iOS JS bundle, coverage shards/merged outputs, and fixture-validation JUnit) via the provider-matched backend, tweaks Namespace Jest parallelism (--maxWorkers=33%), and updates smoke/regression report workflows plusrun-e2e-workflow.ymlto download prior-run results and upload JUnit/screenshots using the same backend (with consistentretention-days: 7).Reviewed by Cursor Bugbot for commit 4680278. Bugbot is set up for automated code reviews on this repo. Configure here.