Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf: strip release binaries to minimize size, but download debug info on panic to get useful stack traces #27811

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions .github/workflows/ci.generate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -720,6 +720,33 @@ const ci = {
"df -h",
].join("\n"),
},
{
name: "Strip and separate debug info (linux)",
if: [
"matrix.os == 'linux' &&",
"(matrix.job == 'test' || matrix.job == 'bench') &&",
"matrix.profile == 'release' && (matrix.use_sysroot ||",
"github.repository == 'denoland/deno')",
].join("\n"),
run: [
"objcopy --only-keep-debug target/release/deno target/release/deno.debug",
"objcopy --add-gnu-debuglink target/release/deno.debug target/release/deno",
"strip -s target/release/deno",
],
},
{
name: "Strip and separate debug info (mac)",
if: [
"matrix.os == 'macos' &&",
"(matrix.job == 'test' || matrix.job == 'bench') &&",
"matrix.profile == 'release' && (matrix.use_sysroot ||",
"github.repository == 'denoland/deno')",
].join("\n"),
run: [
"dsymutil target/release/deno",
"strip target/release/deno",
],
},
{
// Run a minimal check to ensure that binary is not corrupted, regardless
// of our build mode
Expand Down Expand Up @@ -766,6 +793,8 @@ const ci = {
"cd target/release",
"zip -r deno-${{ matrix.arch }}-unknown-linux-gnu.zip deno",
"shasum -a 256 deno-${{ matrix.arch }}-unknown-linux-gnu.zip > deno-${{ matrix.arch }}-unknown-linux-gnu.zip.sha256sum",
"zip -r deno-debuginfo-${{ matrix.arch}}-unknown-linux-gnu.zip deno.debug",
"shasum -a 256 deno-debuginfo-${{ matrix.arch }}-unknown-linux-gnu.zip > deno-debuginfo-${{ matrix.arch }}-unknown-linux-gnu.zip.sha256sum",
"strip denort",
"zip -r denort-${{ matrix.arch }}-unknown-linux-gnu.zip denort",
"shasum -a 256 denort-${{ matrix.arch }}-unknown-linux-gnu.zip > denort-${{ matrix.arch }}-unknown-linux-gnu.zip.sha256sum",
Expand Down Expand Up @@ -794,6 +823,8 @@ const ci = {
"cd target/release",
"zip -r deno-${{ matrix.arch }}-apple-darwin.zip deno",
"shasum -a 256 deno-${{ matrix.arch }}-apple-darwin.zip > deno-${{ matrix.arch }}-apple-darwin.zip.sha256sum",
"zip -r deno-debuginfo-${{ matrix.arch }}-apple-darwin.zip deno.dSYM",
"shasum -a 256 deno-debuginfo-${{ matrix.arch }}-apple-darwin.zip > deno-debuginfo-${{ matrix.arch }}-apple-darwin.zip.sha256sum",
"strip denort",
"zip -r denort-${{ matrix.arch }}-apple-darwin.zip denort",
"shasum -a 256 denort-${{ matrix.arch }}-apple-darwin.zip > denort-${{ matrix.arch }}-apple-darwin.zip.sha256sum",
Expand All @@ -812,6 +843,8 @@ const ci = {
run: [
"Compress-Archive -CompressionLevel Optimal -Force -Path target/release/deno.exe -DestinationPath target/release/deno-${{ matrix.arch }}-pc-windows-msvc.zip",
"Get-FileHash target/release/deno-${{ matrix.arch }}-pc-windows-msvc.zip -Algorithm SHA256 | Format-List > target/release/deno-${{ matrix.arch }}-pc-windows-msvc.zip.sha256sum",
"Compress-Archive -CompressionLevel Optimal -Force -Path target/release/deno.pdb -DestinationPath target/release/deno-debuginfo-${{ matrix.arch }}-pc-windows-msvc.zip",
"Get-FileHash target/release/deno-debuginfo-${{ matrix.arch }}-pc-windows-msvc.zip -Algorithm SHA256 | Format-List > target/release/deno-debuginfo-${{ matrix.arch }}-pc-windows-msvc.zip.sha256sum",
"Compress-Archive -CompressionLevel Optimal -Force -Path target/release/denort.exe -DestinationPath target/release/denort-${{ matrix.arch }}-pc-windows-msvc.zip",
"Get-FileHash target/release/denort-${{ matrix.arch }}-pc-windows-msvc.zip -Algorithm SHA256 | Format-List > target/release/denort-${{ matrix.arch }}-pc-windows-msvc.zip.sha256sum",
].join("\n"),
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,25 @@ jobs:
df -h
cargo build --release --locked --all-targets
df -h
- name: Strip and separate debug info (linux)
if: |-
!(matrix.skip) && (matrix.os == 'linux' &&
(matrix.job == 'test' || matrix.job == 'bench') &&
matrix.profile == 'release' && (matrix.use_sysroot ||
github.repository == 'denoland/deno'))
run:
- objcopy --only-keep-debug target/release/deno target/release/deno.debug
- objcopy --add-gnu-debuglink target/release/deno.debug target/release/deno
- strip -s target/release/deno
- name: Strip and separate debug info (mac)
if: |-
!(matrix.skip) && (matrix.os == 'macos' &&
(matrix.job == 'test' || matrix.job == 'bench') &&
matrix.profile == 'release' && (matrix.use_sysroot ||
github.repository == 'denoland/deno'))
run:
- dsymutil target/release/deno
- strip target/release/deno
- name: Check deno binary
if: '!(matrix.skip) && (matrix.job == ''test'')'
run: 'target/${{ matrix.profile }}/deno eval "console.log(1+2)" | grep 3'
Expand Down Expand Up @@ -446,6 +465,8 @@ jobs:
cd target/release
zip -r deno-${{ matrix.arch }}-unknown-linux-gnu.zip deno
shasum -a 256 deno-${{ matrix.arch }}-unknown-linux-gnu.zip > deno-${{ matrix.arch }}-unknown-linux-gnu.zip.sha256sum
zip -r deno-debuginfo-${{ matrix.arch}}-unknown-linux-gnu.zip deno.debug
shasum -a 256 deno-debuginfo-${{ matrix.arch }}-unknown-linux-gnu.zip > deno-debuginfo-${{ matrix.arch }}-unknown-linux-gnu.zip.sha256sum
strip denort
zip -r denort-${{ matrix.arch }}-unknown-linux-gnu.zip denort
shasum -a 256 denort-${{ matrix.arch }}-unknown-linux-gnu.zip > denort-${{ matrix.arch }}-unknown-linux-gnu.zip.sha256sum
Expand All @@ -465,6 +486,8 @@ jobs:
cd target/release
zip -r deno-${{ matrix.arch }}-apple-darwin.zip deno
shasum -a 256 deno-${{ matrix.arch }}-apple-darwin.zip > deno-${{ matrix.arch }}-apple-darwin.zip.sha256sum
zip -r deno-debuginfo-${{ matrix.arch }}-apple-darwin.zip deno.dSYM
shasum -a 256 deno-debuginfo-${{ matrix.arch }}-apple-darwin.zip > deno-debuginfo-${{ matrix.arch }}-apple-darwin.zip.sha256sum
strip denort
zip -r denort-${{ matrix.arch }}-apple-darwin.zip denort
shasum -a 256 denort-${{ matrix.arch }}-apple-darwin.zip > denort-${{ matrix.arch }}-apple-darwin.zip.sha256sum
Expand All @@ -478,6 +501,8 @@ jobs:
run: |-
Compress-Archive -CompressionLevel Optimal -Force -Path target/release/deno.exe -DestinationPath target/release/deno-${{ matrix.arch }}-pc-windows-msvc.zip
Get-FileHash target/release/deno-${{ matrix.arch }}-pc-windows-msvc.zip -Algorithm SHA256 | Format-List > target/release/deno-${{ matrix.arch }}-pc-windows-msvc.zip.sha256sum
Compress-Archive -CompressionLevel Optimal -Force -Path target/release/deno.pdb -DestinationPath target/release/deno-debuginfo-${{ matrix.arch }}-pc-windows-msvc.zip
Get-FileHash target/release/deno-debuginfo-${{ matrix.arch }}-pc-windows-msvc.zip -Algorithm SHA256 | Format-List > target/release/deno-debuginfo-${{ matrix.arch }}-pc-windows-msvc.zip.sha256sum
Compress-Archive -CompressionLevel Optimal -Force -Path target/release/denort.exe -DestinationPath target/release/denort-${{ matrix.arch }}-pc-windows-msvc.zip
Get-FileHash target/release/denort-${{ matrix.arch }}-pc-windows-msvc.zip -Algorithm SHA256 | Format-List > target/release/denort-${{ matrix.arch }}-pc-windows-msvc.zip.sha256sum
- name: Upload canary to dl.deno.land
Expand Down
Loading