diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 64d0154..a437aaa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,11 +15,12 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] + zig-version: [0.5.0, master] runs-on: ${{matrix.os}} steps: - uses: actions/checkout@v1 - - uses: goto-bus-stop/setup-zig@default + - uses: goto-bus-stop/setup-zig@fix-4 with: - version: 0.5.0 - - run: zig run src/main.zig + version: ${{matrix.zig-version}} + - run: zig build test working-directory: test diff --git a/dist/index.js b/dist/index.js index f0574e0..9703ef6 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1135,19 +1135,17 @@ async function downloadZig (version) { throw new Error(`Could not find version ${version} for platform ${host}`) } - const hostVariantName = { - linux: 'linux-x86_64', - darwin: 'macos-x86_64', - win32: 'windows-x86_64' - }[os.platform()] - const variantName = `zig-${hostVariantName}-${version}` + const variantName = path.basename(meta[host].tarball).replace(`.${ext}`, '') + const downloadPath = await cache.downloadTool(meta[host].tarball) const zigPath = ext === 'zip' ? await cache.extractZip(downloadPath) : await cache.extractTar(downloadPath, undefined, 'x') const binPath = path.join(zigPath, variantName) - return cache.cacheDir(binPath, 'zig', version) + const cachePath = await cache.cacheDir(binPath, 'zig', variantName) + + return cachePath } async function main () { @@ -1166,7 +1164,11 @@ async function main () { actions.addPath(zigPath) } -main() +main().catch((err) => { + console.error(err.stack) + actions.setFailed(err.message) + process.exit(1) +}) /***/ }), diff --git a/index.js b/index.js index cdc13be..e2fe21f 100644 --- a/index.js +++ b/index.js @@ -41,19 +41,17 @@ async function downloadZig (version) { throw new Error(`Could not find version ${version} for platform ${host}`) } - const hostVariantName = { - linux: 'linux-x86_64', - darwin: 'macos-x86_64', - win32: 'windows-x86_64' - }[os.platform()] - const variantName = `zig-${hostVariantName}-${version}` + const variantName = path.basename(meta[host].tarball).replace(`.${ext}`, '') + const downloadPath = await cache.downloadTool(meta[host].tarball) const zigPath = ext === 'zip' ? await cache.extractZip(downloadPath) : await cache.extractTar(downloadPath, undefined, 'x') const binPath = path.join(zigPath, variantName) - return cache.cacheDir(binPath, 'zig', version) + const cachePath = await cache.cacheDir(binPath, 'zig', variantName) + + return cachePath } async function main () { @@ -72,4 +70,8 @@ async function main () { actions.addPath(zigPath) } -main() +main().catch((err) => { + console.error(err.stack) + actions.setFailed(err.message) + process.exit(1) +}) diff --git a/test/build.zig b/test/build.zig index 8d9df1f..4e1c95f 100644 --- a/test/build.zig +++ b/test/build.zig @@ -2,13 +2,9 @@ const Builder = @import("std").build.Builder; pub fn build(b: *Builder) void { const mode = b.standardReleaseOptions(); - const exe = b.addExecutable("test", "src/main.zig"); - exe.setBuildMode(mode); - exe.install(); + const test_build = b.addTest("src/main.zig"); + test_build.setBuildMode(mode); - const run_cmd = exe.run(); - run_cmd.step.dependOn(b.getInstallStep()); - - const run_step = b.step("run", "Run the app"); - run_step.dependOn(&run_cmd.step); + const test_step = b.step("test", "Run the app"); + test_step.dependOn(&test_build.step); } diff --git a/test/src/main.zig b/test/src/main.zig index b8ddde6..6ddbf36 100644 --- a/test/src/main.zig +++ b/test/src/main.zig @@ -1,6 +1,5 @@ -const io = @import("std").io; +const debug = @import("std").debug; -pub fn main() anyerror!void { - const stdout = try io.getStdOut(); - try stdout.write("it works!\n"); +test "it works" { + debug.assert(1 == 1); }