Skip to content

Commit 05beed6

Browse files
committed
make tar & sign build step optional
1 parent f6e1db4 commit 05beed6

File tree

2 files changed

+36
-28
lines changed

2 files changed

+36
-28
lines changed

.github/workflows/release.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
- name: Build and sign
3030
run: |
3131
echo "${MINISIGN_SECRET_KEY}" > minisign.key
32-
zig build -Doptimize=ReleaseFast --summary all
32+
zig build -Doptimize=ReleaseFast -Dtarball --summary all
3333
rm -f minisign.key
3434
env:
3535
MINISIGN_SECRET_KEY: ${{ secrets.MINISIGN_SECRET_KEY }}

build.zig

+35-27
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ const targets: []const std.Target.Query = &.{
1313
pub fn build(b: *std.Build) !void {
1414
const optimize = b.standardOptimizeOption(.{});
1515

16+
const tarball = b.option(
17+
bool,
18+
"tarball",
19+
"Generate tarball with signature",
20+
) orelse false;
21+
1622
for (targets) |t| {
1723
const triple = try t.zigTriple(b.allocator);
1824
const target = b.resolveTargetQuery(t);
@@ -49,36 +55,38 @@ pub fn build(b: *std.Build) !void {
4955
});
5056
b.getInstallStep().dependOn(&out.step);
5157

52-
// Archive executable
53-
const tar_name = try std.mem.concat(b.allocator, u8, &.{ name, "-", triple, ".tar.gz" });
54-
const tar = b.addSystemCommand(&.{"tar"});
55-
tar.setCwd(exe_dir);
56-
tar.addArgs(&.{"-czf"});
57-
tar.addArg(tar_name);
58-
tar.addArg(exe.out_filename);
59-
tar.step.dependOn(&out.step);
58+
if (tarball) {
59+
// Archive executable
60+
const tar_name = try std.mem.concat(b.allocator, u8, &.{ name, "-", triple, ".tar.gz" });
61+
const tar = b.addSystemCommand(&.{"tar"});
62+
tar.setCwd(exe_dir);
63+
tar.addArgs(&.{"-czf"});
64+
tar.addArg(tar_name);
65+
tar.addArg(exe.out_filename);
66+
tar.step.dependOn(&out.step);
6067

61-
// Sign archive file
62-
const sign_name = try std.mem.concat(b.allocator, u8, &.{ tar_name, ".minisig" });
63-
const sign = b.addSystemCommand(&.{"minisign"});
64-
sign.addPrefixedFileArg("-Sm", exe_dir.path(b, tar_name));
65-
sign.addPrefixedFileArg("-x", exe_dir.path(b, sign_name));
66-
sign.addPrefixedFileArg("-s", b.path("minisign.key"));
67-
sign.step.dependOn(&tar.step);
68+
// Sign archive file
69+
const sign_name = try std.mem.concat(b.allocator, u8, &.{ tar_name, ".minisig" });
70+
const sign = b.addSystemCommand(&.{"minisign"});
71+
sign.addPrefixedFileArg("-Sm", exe_dir.path(b, tar_name));
72+
sign.addPrefixedFileArg("-x", exe_dir.path(b, sign_name));
73+
sign.addPrefixedFileArg("-s", b.path("minisign.key"));
74+
sign.step.dependOn(&tar.step);
6875

69-
const install_tar = b.addInstallFile(
70-
exe_dir.path(b, tar_name),
71-
b.pathJoin(&.{ triple, tar_name }),
72-
);
73-
install_tar.step.dependOn(&tar.step);
74-
b.getInstallStep().dependOn(&install_tar.step);
76+
const install_tar = b.addInstallFile(
77+
exe_dir.path(b, tar_name),
78+
b.pathJoin(&.{ triple, tar_name }),
79+
);
80+
install_tar.step.dependOn(&tar.step);
81+
b.getInstallStep().dependOn(&install_tar.step);
7582

76-
const install_sign = b.addInstallFile(
77-
exe_dir.path(b, sign_name),
78-
b.pathJoin(&.{ triple, sign_name }),
79-
);
80-
install_sign.step.dependOn(&sign.step);
81-
b.getInstallStep().dependOn(&install_sign.step);
83+
const install_sign = b.addInstallFile(
84+
exe_dir.path(b, sign_name),
85+
b.pathJoin(&.{ triple, sign_name }),
86+
);
87+
install_sign.step.dependOn(&sign.step);
88+
b.getInstallStep().dependOn(&install_sign.step);
89+
}
8290

8391
// Use `zig build run` for debug
8492
if (optimize == .Debug and t.os_tag == .macos) {

0 commit comments

Comments
 (0)