perf: reuse exact app artifacts for measurement reruns - #1609
Draft
mrousavy wants to merge 2 commits into
Draft
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
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.