feat(FN-5606): add ARM64 to release and test-release workflow matrices

Adds ARM64 (Apple Silicon) as a target platform in both the release and test-release CI matrices, with corresponding test assertions covering the updated workflow configurations.

Fusion-Task-Id: FN-5606

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Fusion-Task-Id: FN-5606
This commit is contained in:
gsxdsm
2026-05-27 02:42:06 -07:00
parent 294efb02fd
commit a0d30f18f8
3 changed files with 25 additions and 4 deletions

View File

@@ -29,6 +29,9 @@ jobs:
- os: ubuntu-latest
target: bun-linux-x64
binary: fn-linux-x64
- os: ubuntu-24.04-arm
target: bun-linux-arm64
binary: fn-linux-arm64
- os: macos-latest
target: bun-darwin-arm64
binary: fn-darwin-arm64

View File

@@ -20,6 +20,9 @@ jobs:
- os: ubuntu-latest
target: bun-linux-x64
binary: fn-linux-x64
- os: ubuntu-24.04-arm
target: bun-linux-arm64
binary: fn-linux-arm64
- os: macos-latest
target: bun-darwin-arm64
binary: fn-darwin-arm64

View File

@@ -328,11 +328,12 @@ describe("Binary release workflow (.github/workflows/release.yml)", () => {
expect(workflow.on.push).toBeUndefined();
});
it("has build-binaries job with 4-target matrix", () => {
it("has build-binaries job with 5-target matrix", () => {
const matrix = workflow.jobs["build-binaries"].strategy.matrix.include;
expect(matrix).toHaveLength(4);
expect(matrix).toHaveLength(5);
const targets = matrix.map((m: any) => m.target);
expect(targets).toContain("bun-linux-x64");
expect(targets).toContain("bun-linux-arm64");
expect(targets).toContain("bun-darwin-arm64");
expect(targets).toContain("bun-darwin-x64");
expect(targets).toContain("bun-windows-x64");
@@ -343,11 +344,18 @@ describe("Binary release workflow (.github/workflows/release.yml)", () => {
const osMap: Record<string, string> = {};
matrix.forEach((m: any) => { osMap[m.target] = m.os; });
expect(osMap["bun-linux-x64"]).toBe("ubuntu-latest");
expect(osMap["bun-linux-arm64"]).toBe("ubuntu-24.04-arm");
expect(osMap["bun-darwin-arm64"]).toBe("macos-latest");
expect(osMap["bun-darwin-x64"]).toBe("macos-13");
expect(osMap["bun-windows-x64"]).toBe("windows-latest");
});
it("maps bun-linux-arm64 to fn-linux-arm64 binary name", () => {
const matrix = workflow.jobs["build-binaries"].strategy.matrix.include;
const arm64Entry = matrix.find((m: any) => m.target === "bun-linux-arm64");
expect(arm64Entry?.binary).toBe("fn-linux-arm64");
});
it("uses softprops/action-gh-release", () => {
expect(content).toContain("softprops/action-gh-release");
});
@@ -418,16 +426,23 @@ describe("Test-release workflow (.github/workflows/test-release.yml)", () => {
expect(workflow.on).toHaveProperty("workflow_dispatch");
});
it("has 4-target build matrix", () => {
it("has 5-target build matrix", () => {
const matrix = workflow.jobs["build-binaries"].strategy.matrix.include;
expect(matrix).toHaveLength(4);
expect(matrix).toHaveLength(5);
const targets = matrix.map((m: any) => m.target);
expect(targets).toContain("bun-linux-x64");
expect(targets).toContain("bun-linux-arm64");
expect(targets).toContain("bun-darwin-arm64");
expect(targets).toContain("bun-darwin-x64");
expect(targets).toContain("bun-windows-x64");
});
it("maps bun-linux-arm64 to fn-linux-arm64 binary name", () => {
const matrix = workflow.jobs["build-binaries"].strategy.matrix.include;
const arm64Entry = matrix.find((m: any) => m.target === "bun-linux-arm64");
expect(arm64Entry?.binary).toBe("fn-linux-arm64");
});
it("includes smoke tests with --help", () => {
expect(content).toContain("--help");
});