Skip to content

perf: reuse exact app artifacts for measurement reruns - #1609

Draft
mrousavy wants to merge 2 commits into
perf/cleanup-coveragefrom
perf/cleanup-ci
Draft

perf: reuse exact app artifacts for measurement reruns#1609
mrousavy wants to merge 2 commits into
perf/cleanup-coveragefrom
perf/cleanup-ci

Conversation

@mrousavy

@mrousavy mrousavy commented Sep 5, 2026

Copy link
Copy Markdown
Member

Separates Android and iOS builds from measurements. Each platform saves exact Release apps with revision, suite, architecture, configuration and toolchain metadata; measurement jobs download immutable artifact IDs. GitHub's “Re-run job and dependent jobs” can now repeat one platform's measurements using saved apps while collection retains the other platform's original result attempt. Both platforms keep base/head measurements together on one machine. Changed definitions build head only, and identical SHAs reuse one binary.

The canonical raw JSON report records and links each platform's build and measurement artifact/attempt. The trusted publisher validates those IDs against the triggering run's artifact inventory. iOS tar packaging preserves executable permissions and symlinks. Android uses a single Gradle basic cache owner, current artifact actions and supported SwiftShader GPU rendering with mandatory KVM CPU acceleration. Package Markdown/MDX-only edits skip measurement jobs. The benchmark's attributable Kotlin/Gradle warnings are fixed.

Bencher receives median history only: its duplicate GitHub publishing path and checks permission are removed so configured Bencher alerts cannot silently turn this report-only rollout into a GitHub gate. One renderer owns the PR comment and artifact links.

Stacked on #1607. Action updates overlap Dependabot #1593, #1594 and #1595. The separate Xcode followup retains ownership of compiler selection; this PR moves the existing overrides unchanged into scripts/performance/build-ios.sh.

Validation: 70 host tests, including actual packaging shell execution for paired/same-SHA/changed-suite cases, tar executable/symlink preservation, package docs-only relevance, fresh shared-work controller processes, and Android attempt 2 with retained iOS attempt 1 provenance. Tooling/app TypeScript, app ESLint, actionlint, shellcheck and diff checks pass. Full Android x86_64 Release app build passed; the focused Gradle recheck passed with attributable app syntax warnings removed. The prior coverage tip also passed a bounded actual iOS Release/Hermes smoke for C++/Swift deferred-worker Promise and native-owned buffer bounce with distinct calibration/measurement processes and exact work counts.

CI is intentionally cancelled immediately after PR creation to conserve Actions minutes. No hosted rerun or performance speedup is claimed. The inherited Android SDK XML mismatch remains documented: the emulator action hardcodes cmdline-tools/latest, while latest tools 23 changes the SDK manager interface. No SDK layout patch or warning suppression is introduced. Other dependency warnings remain outside this focused change.

@vercel

vercel Bot commented Sep 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
nitro-docs Ready Ready Preview Sep 5, 2026 4:06pm UTC

Request Review

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