Strip staged build artifacts with llvm-strip#245
Conversation
- Prefer `llvm-strip` with fallback to platform `strip` - Strip CI artifacts during staging and leave release packaging unstripped
📝 WalkthroughWalkthroughThe artifact staging script now uses Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/ci.yml:
- Line 208: The workflow currently runs stage-build-artifacts.sh with the
--strip flag when producing the "ci-artifacts" bundle, causing later release
packaging to repackage stripped binaries; instead, produce and publish a
separate unstripped artifact and have the release packaging step consume that.
Remove --strip only from the unstripped build invocation (e.g., call
stage-build-artifacts.sh build release-unstripped --include-tests without
--strip), keep the stripped CI artifact if needed, and update the release
packaging job to download/use the new "release-unstripped" artifact (references:
the stage-build-artifacts.sh invocation, the --strip flag, and the
"ci-artifacts" artifact name).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 78b0f9b2-2819-4a6a-acf9-d58443599f5f
📒 Files selected for processing (2)
.github/scripts/stage-build-artifacts.sh.github/workflows/ci.yml
Benchmark Results274 benchmarks Interpreted: 🟢 193 improved · 🔴 48 regressed · 33 unchanged · avg +4.6% arraybuffer.js — Interp: 🟢 13, 1 unch. · avg +9.9% · Bytecode: 🟢 6, 8 unch. · avg +1.7%
arrays.js — Interp: 🟢 19 · avg +9.6% · Bytecode: 🟢 11, 🔴 2, 6 unch. · avg +4.2%
async-await.js — Interp: 🟢 6 · avg +11.5% · Bytecode: 🟢 4, 2 unch. · avg +1.2%
classes.js — Interp: 🟢 31 · avg +11.2% · Bytecode: 🟢 2, 🔴 4, 25 unch. · avg -0.0%
closures.js — Interp: 🟢 11 · avg +6.4% · Bytecode: 🔴 5, 6 unch. · avg -4.2%
collections.js — Interp: 🟢 12 · avg +10.3% · Bytecode: 🟢 5, 🔴 2, 5 unch. · avg +0.1%
destructuring.js — Interp: 🟢 22 · avg +5.7% · Bytecode: 🟢 5, 🔴 10, 7 unch. · avg -1.0%
fibonacci.js — Interp: 🟢 8 · avg +6.2% · Bytecode: 🔴 4, 4 unch. · avg -4.9%
for-of.js — Interp: 🟢 1, 🔴 3, 3 unch. · avg -0.3% · Bytecode: 🟢 3, 4 unch. · avg +2.0%
helpers/bench-module.js — Interp: 0 · Bytecode: 0
iterators.js — Interp: 🟢 6, 🔴 7, 7 unch. · avg +0.2% · Bytecode: 🟢 6, 🔴 4, 10 unch. · avg +1.8%
json.js — Interp: 🟢 18, 2 unch. · avg +5.6% · Bytecode: 🟢 12, 8 unch. · avg +3.1%
jsx.jsx — Interp: 🟢 16, 5 unch. · avg +2.8% · Bytecode: 🔴 12, 9 unch. · avg -1.6%
modules.js — Interp: 🟢 6, 3 unch. · avg +1.9% · Bytecode: 🔴 8, 1 unch. · avg -3.3%
numbers.js — Interp: 🟢 9, 🔴 2 · avg +4.2% · Bytecode: 🟢 5, 🔴 5, 1 unch. · avg +0.4%
objects.js — Interp: 🟢 2, 🔴 3, 2 unch. · avg -0.5% · Bytecode: 🔴 4, 3 unch. · avg -1.2%
promises.js — Interp: 🔴 9, 3 unch. · avg -3.2% · Bytecode: 🔴 2, 10 unch. · avg -0.4%
regexp.js — Interp: 🟢 5, 🔴 4, 2 unch. · avg -0.1% · Bytecode: 🟢 6, 5 unch. · avg +2.8%
strings.js — Interp: 🟢 1, 🔴 7, 3 unch. · avg -4.0% · Bytecode: 🟢 5, 🔴 1, 5 unch. · avg +1.3%
typed-arrays.js — Interp: 🟢 7, 🔴 13, 2 unch. · avg -0.2% · Bytecode: 🟢 9, 🔴 1, 12 unch. · avg +2.2%
Measured on ubuntu-latest x64. Benchmark ranges compare cached main-branch min/max ops/sec with the PR run; overlapping ranges are treated as unchanged noise. Percentage deltas are secondary context. |
Suite Timing
Measured on ubuntu-latest x64. |
Summary
llvm-strip, withstripas a fallback, so build outputs are stripped more reliably across platforms.--stripflags from release packaging steps to match the intended artifact contents.Testing
--stripbehavior now applies only where intended.llvm-striptostripwithout failing the staging step.