Skip to content

Commit f725899

Browse files
committed
build: compress release binaries with tar.gz/zip, add --minify
Made-with: Cursor
1 parent fb2d1af commit f725899

2 files changed

Lines changed: 23 additions & 12 deletions

File tree

.github/workflows/release.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ jobs:
3030
uses: softprops/action-gh-release@v2
3131
with:
3232
files: |
33-
dist/minimax-*
33+
dist/*.tar.gz
34+
dist/*.zip
3435
dist/manifest.json
3536
generate_release_notes: true

build.ts

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import { readFileSync, writeFileSync } from 'fs';
55
const VERSION = process.env.VERSION ?? 'dev';
66

77
const targets = [
8-
{ bunTarget: 'bun-linux-x64', platform: 'linux-x64', output: 'minimax-linux-x64' },
9-
{ bunTarget: 'bun-linux-x64-musl', platform: 'linux-x64-musl', output: 'minimax-linux-x64-musl' },
10-
{ bunTarget: 'bun-linux-arm64', platform: 'linux-arm64', output: 'minimax-linux-arm64' },
11-
{ bunTarget: 'bun-linux-arm64-musl', platform: 'linux-arm64-musl', output: 'minimax-linux-arm64-musl' },
12-
{ bunTarget: 'bun-darwin-x64', platform: 'darwin-x64', output: 'minimax-darwin-x64' },
13-
{ bunTarget: 'bun-darwin-arm64', platform: 'darwin-arm64', output: 'minimax-darwin-arm64' },
14-
{ bunTarget: 'bun-windows-x64', platform: 'windows-x64', output: 'minimax-windows-x64.exe' },
8+
{ bunTarget: 'bun-linux-x64', platform: 'linux-x64', output: 'minimax-linux-x64', archive: 'minimax-linux-x64.tar.gz' },
9+
{ bunTarget: 'bun-linux-x64-musl', platform: 'linux-x64-musl', output: 'minimax-linux-x64-musl', archive: 'minimax-linux-x64-musl.tar.gz' },
10+
{ bunTarget: 'bun-linux-arm64', platform: 'linux-arm64', output: 'minimax-linux-arm64', archive: 'minimax-linux-arm64.tar.gz' },
11+
{ bunTarget: 'bun-linux-arm64-musl', platform: 'linux-arm64-musl', output: 'minimax-linux-arm64-musl', archive: 'minimax-linux-arm64-musl.tar.gz' },
12+
{ bunTarget: 'bun-darwin-x64', platform: 'darwin-x64', output: 'minimax-darwin-x64', archive: 'minimax-darwin-x64.tar.gz' },
13+
{ bunTarget: 'bun-darwin-arm64', platform: 'darwin-arm64', output: 'minimax-darwin-arm64', archive: 'minimax-darwin-arm64.tar.gz' },
14+
{ bunTarget: 'bun-windows-x64', platform: 'windows-x64', output: 'minimax-windows-x64.exe', archive: 'minimax-windows-x64.zip' },
1515
];
1616

1717
function sha256(path: string): string {
@@ -22,21 +22,31 @@ console.log(`Building minimax-cli ${VERSION}...\n`);
2222

2323
const manifest: {
2424
version: string;
25-
platforms: Record<string, { checksum: string }>;
25+
platforms: Record<string, { archive: string; checksum: string }>;
2626
} = { version: VERSION, platforms: {} };
2727

28-
for (const { bunTarget, platform, output } of targets) {
28+
for (const { bunTarget, platform, output, archive } of targets) {
2929
const outPath = `dist/${output}`;
30+
const archivePath = `dist/${archive}`;
3031
process.stdout.write(` ${output}...`);
3132
await $`bun build src/main.ts \
3233
--compile \
34+
--minify \
3335
--target ${bunTarget} \
3436
--outfile ${outPath} \
3537
--define "process.env.CLI_VERSION='${VERSION}'"`.quiet();
36-
manifest.platforms[platform] = { checksum: sha256(outPath) };
38+
39+
// Compress: tar.gz for unix, zip for windows
40+
if (archive.endsWith('.zip')) {
41+
await $`zip -j ${archivePath} ${outPath}`.quiet();
42+
} else {
43+
await $`tar -czf ${archivePath} -C dist ${output}`.quiet();
44+
}
45+
46+
manifest.platforms[platform] = { archive, checksum: sha256(archivePath) };
3747
console.log(' ✓');
3848
}
3949

4050
writeFileSync('dist/manifest.json', JSON.stringify(manifest, null, 2));
4151
console.log(' manifest.json ✓');
42-
console.log(`\nDone. ${targets.length} binaries in dist/`);
52+
console.log(`\nDone. ${targets.length} archives in dist/`);

0 commit comments

Comments
 (0)