diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts index d43d80d8bc..3cc559ec90 100755 --- a/.github/workflows/ci.generate.ts +++ b/.github/workflows/ci.generate.ts @@ -716,6 +716,19 @@ const ci = { "df -h", ].join("\n"), }, + { + name: "Build denort release", + if: [ + "matrix.job == 'test' &&", + "matrix.profile == 'release' &&", + "github.repository == 'denoland/deno'", + ].join("\n"), + run: [ + "df -h", + "cargo build --profile=release-slim --locked --bin denort", + "df -h", + ].join("\n"), + }, { // Run a minimal check to ensure that binary is not corrupted, regardless // of our build mode @@ -762,10 +775,11 @@ 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", - "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", "./deno types > lib.deno.d.ts", + "cd ../release-slim", + "zip -r ../release/denort-${{ matrix.arch }}-unknown-linux-gnu.zip denort", + "cd ../release", + "shasum -a 256 denort-${{ matrix.arch }}-unknown-linux-gnu.zip > denort-${{ matrix.arch }}-unknown-linux-gnu.zip.sha256sum", ].join("\n"), }, { @@ -790,8 +804,9 @@ 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", - "strip denort", - "zip -r denort-${{ matrix.arch }}-apple-darwin.zip denort", + "cd ../release-slim", + "zip -r ../release/denort-${{ matrix.arch }}-apple-darwin.zip denort", + "cd ../release", "shasum -a 256 denort-${{ matrix.arch }}-apple-darwin.zip > denort-${{ matrix.arch }}-apple-darwin.zip.sha256sum", ] .join("\n"), @@ -808,8 +823,9 @@ 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/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", + + "Compress-Archive -CompressionLevel Optimal -Force -Path target/release-slim/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"), }, { diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cc1aa89669..4fbaf82fcb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -419,6 +419,15 @@ jobs: df -h cargo build --release --locked --all-targets df -h + - name: Build denort release + if: |- + !(matrix.skip) && (matrix.job == 'test' && + matrix.profile == 'release' && + github.repository == 'denoland/deno') + run: |- + df -h + cargo build --profile=release-slim --locked --bin denort + df -h - name: Check deno binary if: '!(matrix.skip) && (matrix.job == ''test'')' run: 'target/${{ matrix.profile }}/deno eval "console.log(1+2)" | grep 3' @@ -448,10 +457,11 @@ 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 - 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 ./deno types > lib.deno.d.ts + cd ../release-slim + zip -r ../release/denort-${{ matrix.arch }}-unknown-linux-gnu.zip denort + cd ../release + shasum -a 256 denort-${{ matrix.arch }}-unknown-linux-gnu.zip > denort-${{ matrix.arch }}-unknown-linux-gnu.zip.sha256sum - name: Pre-release (mac) if: |- !(matrix.skip) && (matrix.os == 'macos' && @@ -467,8 +477,9 @@ 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 - strip denort - zip -r denort-${{ matrix.arch }}-apple-darwin.zip denort + cd ../release-slim + zip -r ../release/denort-${{ matrix.arch }}-apple-darwin.zip denort + cd ../release shasum -a 256 denort-${{ matrix.arch }}-apple-darwin.zip > denort-${{ matrix.arch }}-apple-darwin.zip.sha256sum - name: Pre-release (windows) if: |- @@ -480,8 +491,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/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 + Compress-Archive -CompressionLevel Optimal -Force -Path target/release-slim/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 if: |- !(matrix.skip) && (matrix.job == 'test' && diff --git a/Cargo.toml b/Cargo.toml index 1a7c04dbef..e4b9e0f496 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -251,6 +251,11 @@ incremental = true lto = true opt-level = 'z' # Optimize for size +[profile.release-slim] +inherits = "release" +panic = "abort" +strip = "symbols" + # Build release with debug symbols: cargo build --profile=release-with-debug [profile.release-with-debug] inherits = "release"