From a10f2262e26b5af8c9cd764d587b8da90e06b4e1 Mon Sep 17 00:00:00 2001 From: "Nurul Huda (Apon)" Date: Sat, 14 Mar 2026 19:20:34 +0600 Subject: [PATCH] ci: rebuild from source when publishing --- .github/workflows/cd.yml | 2 +- pkg/temporal/build.zig | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index a43d16d..b4c9020 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -82,7 +82,7 @@ jobs: - name: Build Package run: | cd pkg/temporal - zig build -Dtarget=${{ matrix.target }} -Doptimize=ReleaseSafe + zig build -Dbuild-rust -Dtarget=${{ matrix.target }} -Doptimize=ReleaseSafe - name: Upload Artifact uses: actions/upload-artifact@v4 diff --git a/pkg/temporal/build.zig b/pkg/temporal/build.zig index 1d1ef49..74b314b 100644 --- a/pkg/temporal/build.zig +++ b/pkg/temporal/build.zig @@ -3,6 +3,7 @@ const std = @import("std"); pub fn build(b: *std.Build) !void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); + const force_build_rust = b.option(bool, "build-rust", "Always build Rust library from source") orelse false; const arch_str = @tagName(target.result.cpu.arch); const os_str = @tagName(target.result.os.tag); @@ -33,9 +34,9 @@ pub fn build(b: *std.Build) !void { } var selected_lib_file: std.Build.LazyPath = undefined; - if (prebuilt_lib_file) |lib_file| { + if (prebuilt_lib_file != null and !force_build_rust) { // std.debug.print("Using pre-built temporal_capi library from downloaded artifact at: {s}\n", .{prebuilt_lib_path}); - selected_lib_file = lib_file; + selected_lib_file = prebuilt_lib_file.?; } else { // std.debug.print("building from source: {s}\n", .{prebuilt_lib_path}); const build_crab = @import("build_crab"); @@ -51,12 +52,12 @@ pub fn build(b: *std.Build) !void { }, ); selected_lib_file = build_dir.path(b, lib_name); - - // --- Install Step (for publishing) --- // - const install_lib = b.addInstallFile(selected_lib_file, b.fmt("lib/{s}/{s}", .{ target_triple, lib_name })); - b.getInstallStep().dependOn(&install_lib.step); } + // --- Install Step (for publishing) --- // + const install_lib = b.addInstallFile(selected_lib_file, b.fmt("lib/{s}/{s}", .{ target_triple, lib_name })); + b.getInstallStep().dependOn(&install_lib.step); + // --- Zig Module --- // const mod = b.addModule("temporal_rs", .{ .root_source_file = b.path("src/root.zig"),