29 Commits

Author SHA1 Message Date
Solomon
2f772d46b5 Build dist 2025-12-18 12:44:52 +00:00
Renée Kooi
abea47f85e 2.2.1 2024-09-28 09:27:50 +02:00
goto-bus-stop
8794dc8e29 Rebuild (automated) 2024-09-26 18:50:21 +00:00
Renée
08c27c8707 Deprecate (#89) 2024-09-26 19:49:57 +01:00
Renée
2a9625d550 Update CI version matrix (#77)
* ci: tweak versions matrix

* tweak ifs

* ci: different way to use legacy versions

* clearer test variant name

* fixup! clearer test variant name

* syntax?
2024-04-26 10:05:48 +02:00
Renée Kooi
c921de45d4 Update tests for version resolution 2024-04-26 09:51:59 +02:00
Renée Kooi
e3b63a8160 Run standard --fix 2024-04-26 09:42:30 +02:00
goto-bus-stop
8554b2f249 Rebuild (automated) 2024-04-26 07:39:51 +00:00
David
ef1fbe2694 Better handle architecture, fixes macOS silicon support (#68) 2024-04-26 09:39:29 +02:00
goto-bus-stop
4f12c907f3 Rebuild (automated) 2024-01-29 09:56:20 +00:00
dependabot[bot]
c13dfb00a4 Bump esbuild from 0.19.12 to 0.20.0 (#71)
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.19.12 to 0.20.0.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.19.12...v0.20.0)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-29 10:55:58 +01:00
Chris Heyes
7e1b9284f3 Improve usage example (#66)
Run zig fmt --check  on root dir so that build.zig, build.zig.zon and any other folders containing zig source get checked
2024-01-06 21:59:41 +01:00
goto-bus-stop
d866436887 Rebuild (automated) 2024-01-03 10:20:44 +00:00
dependabot[bot]
e64d72b669 Bump EndBug/add-and-commit from 4 to 9 (#64)
* Bump EndBug/add-and-commit from 4 to 9

Bumps [EndBug/add-and-commit](https://github.com/endbug/add-and-commit) from 4 to 9.
- [Release notes](https://github.com/endbug/add-and-commit/releases)
- [Commits](https://github.com/endbug/add-and-commit/compare/v4...v9)

---
updated-dependencies:
- dependency-name: EndBug/add-and-commit
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* remove obsolete options

* test the new action

* test the new action

* test the new action

* Rebuild (automated)

* revert debug changes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Renée Kooi <renee@kooi.me>
Co-authored-by: goto-bus-stop <goto-bus-stop@users.noreply.github.com>
2024-01-03 11:20:24 +01:00
Rui Chen
1c0785686c dependabot: support github-actions (#63)
Signed-off-by: Rui Chen <rui@chenrui.dev>
2024-01-03 11:09:15 +01:00
Renée Kooi
7ab2955eb7 2.2.0 2023-12-30 12:36:33 +01:00
Renée Kooi
e299690d0d ci: tag automated commits 2023-12-30 12:34:43 +01:00
Automated
fff13db8fe Rebuild 2023-12-30 11:32:16 +00:00
Rui Chen
426edce485 feat: update to use node20 (#61)
* feat: update to use node20

Signed-off-by: Rui Chen <rui@chenrui.dev>

* chore: bump to use `actions/checkout` v4 (node20 runtime)

Signed-off-by: Rui Chen <rui@chenrui.dev>

* exclude node_modules

* Rebuild

---------

Signed-off-by: Rui Chen <rui@chenrui.dev>
Co-authored-by: Renée Kooi <renee@kooi.me>
2023-12-30 12:31:55 +01:00
Automated
b4d8c3ab02 Rebuild 2023-12-30 11:28:06 +00:00
Renée
8dab702865 ci: add zig 0.11.0 (#62)
* chore(ci): add 0.11.0

Signed-off-by: Rui Chen <rui@chenrui.dev>

* Support zig 0.11 build system

---------

Signed-off-by: Rui Chen <rui@chenrui.dev>
Co-authored-by: Rui Chen <rui@chenrui.dev>
2023-12-30 12:27:39 +01:00
Automated
c7b6cdd3ad Rebuild 2023-08-09 08:58:55 +00:00
dependabot[bot]
eec948797a Bump esbuild from 0.18.20 to 0.19.0 (#56)
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.18.20 to 0.19.0.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.18.20...v0.19.0)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-09 10:58:27 +02:00
Renée Kooi
6fede2f055 2.1.1 2023-07-08 18:02:04 +02:00
Renée Kooi
eaf2e37a2d add editorconfig 2023-07-08 18:02:04 +02:00
Automated
d66159a2c0 Rebuild 2023-07-08 16:00:17 +00:00
Renée Kooi
eb533fc3df Fix cache: false, closes #55 2023-07-08 17:59:52 +02:00
Renée Kooi
14a1906c0d 2.1.0 2023-06-25 17:47:07 +02:00
Renée
bc506fbfd1 Use github cache (#53)
* Cache the zig compiler locally

* logging

* npm update

* verboser

* os.arch

* debug

* log signal

* address https://github.com/actions/toolkit/issues/687

* correct path

* add a cache: false option

* share size

* zigpath

* path.join skull
2023-06-25 17:44:29 +02:00
17 changed files with 65921 additions and 3322 deletions

23
.editorconfig Normal file
View File

@@ -0,0 +1,23 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 2
[*.js]
indent_style = space
indent_size = 2
[*.md]
trim_trailing_whitespace = false

View File

@@ -6,3 +6,9 @@ updates:
interval: daily interval: daily
time: "04:00" time: "04:00"
open-pull-requests-limit: 10 open-pull-requests-limit: 10
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 10

View File

@@ -9,13 +9,9 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- run: npm install - run: npm install
- uses: EndBug/add-and-commit@v4 - uses: EndBug/add-and-commit@v9
with: with:
add: dist add: dist
message: Rebuild message: Rebuild (automated)
author_name: Automated
author_email: github@asdf.kooi.me
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

View File

@@ -6,7 +6,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout sources - name: Checkout sources
uses: actions/checkout@v3 uses: actions/checkout@v4
- name: Install dependencies - name: Install dependencies
run: npm install run: npm install
- name: Run tests - name: Run tests
@@ -17,19 +17,36 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ubuntu-latest, macos-latest, windows-latest] os: [ubuntu-latest, macos-12, macos-latest, windows-latest]
zig-version: [0.7.0, 0.8.0, 0.9.0, 0.10.0] zig-version: [0.11.0, 0.12.0]
test-variant: [modern]
include: include:
- os: ubuntu-latest - { os: ubuntu-latest, zig-version: 0.5.0, test-variant: legacy }
zig-version: 0.5.0 - { os: ubuntu-latest, zig-version: 0.7.0, test-variant: legacy }
- { os: ubuntu-latest, zig-version: 0.8.0, test-variant: legacy }
- { os: ubuntu-latest, zig-version: 0.9.0, test-variant: legacy }
- { os: ubuntu-latest, zig-version: 0.10.0, test-variant: legacy }
- { os: macos-12, zig-version: 0.7.0, test-variant: legacy }
- { os: macos-12, zig-version: 0.8.0, test-variant: legacy }
- { os: macos-12, zig-version: 0.9.0, test-variant: legacy }
- { os: macos-12, zig-version: 0.10.0, test-variant: legacy }
- { os: windows-latest, zig-version: 0.7.0, test-variant: legacy }
- { os: windows-latest, zig-version: 0.8.0, test-variant: legacy }
- { os: windows-latest, zig-version: 0.9.0, test-variant: legacy }
- { os: windows-latest, zig-version: 0.10.0, test-variant: legacy }
runs-on: ${{matrix.os}} runs-on: ${{matrix.os}}
steps: steps:
- name: Checkout sources - name: Checkout sources
uses: actions/checkout@v3 uses: actions/checkout@v4
- name: Install Zig - name: Install Zig
uses: goto-bus-stop/setup-zig@default uses: goto-bus-stop/setup-zig@default
with: with:
version: ${{matrix.zig-version}} version: ${{matrix.zig-version}}
- name: Run tests - name: Run tests (zig up to v0.10.x)
if: ${{ matrix.test-variant == 'legacy' }}
run: zig build test run: zig build test
working-directory: test working-directory: test/v0.10
- name: Run tests (zig v0.11.x)
if: ${{ matrix.test-variant == 'modern' }}
run: zig build test
working-directory: test/v0.11

2
.gitignore vendored
View File

@@ -1,3 +1,5 @@
node_modules
# Logs # Logs
logs logs
*.log *.log

View File

@@ -4,6 +4,35 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/). This project adheres to [Semantic Versioning](http://semver.org/).
## 2.2.1
This will be the final release in this repository.
Please see [#88](https://github.com/goto-bus-stop/setup-zig/issues/88) for an upgrade guide.
Thanks for using setup-zig!
* Fix Apple Silicon. [#68](https://github.com/goto-bus-stop/setup-zig/pull/68)
* Deprecate in favour of [mlugg/setup-zig](https://github.com/mlugg/setup-zig). [#89](https://github.com/goto-bus-stop/setup-zig/pull/89)
Thanks [@davidgm94](https://github.com/davidgm94) and [@mlugg](https://github.com/mlugg)!
## 2.2.0
* Update the action to use Node.js 20. [#61](https://github.com/goto-bus-stop/setup-zig/pull/61)
* Add a test for zig 0.11.0. [#62](https://github.com/goto-bus-stop/setup-zig/pull/62)
Thanks [@chenrui333](https://github.com/chenrui333)!
## 2.1.1
* Fix `cache: false`, see [#55](https://github.com/goto-bus-stop/setup-zig/issues/55).
Thanks to [@linusg](https://github.com/linusg) for the report!
## 2.1.0
* The action now caches compilers in your repository's Actions cache by default. This significantly
speeds up installs on average. [#53](https://github.com/goto-bus-stop/setup-zig/pull/53)
2.0.2 also had caching-related changes but they didn't actually do much, based on a misunderstanding
of what the `tool-cache` is for.
## 2.0.2 ## 2.0.2
* Fix tool-cache usage, this should speed up the action if zig was already downloaded before. [#45](https://github.com/goto-bus-stop/setup-zig/pull/45) * Fix tool-cache usage, this should speed up the action if zig was already downloaded before. [#45](https://github.com/goto-bus-stop/setup-zig/pull/45)

View File

@@ -2,6 +2,9 @@
Use the zig compiler in your Github Actions workflows Use the zig compiler in your Github Actions workflows
> [!WARNING]
> This GitHub Action is unmaintained. Please use [mlugg/setup-zig](https://github.com/mlugg/setup-zig) instead.
[Usage](#usage) - [License: Apache-2.0](#license) [Usage](#usage) - [License: Apache-2.0](#license)
## Usage ## Usage
@@ -24,7 +27,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: goto-bus-stop/setup-zig@v2 - uses: goto-bus-stop/setup-zig@v2
- run: zig fmt --check src/*.zig - run: zig fmt --check .
``` ```
Optionally set a Zig version: Optionally set a Zig version:
@@ -48,6 +51,18 @@ If you are running Zig on Windows machines, you need to make sure that your .zig
*.zig text eol=lf *.zig text eol=lf
``` ```
This action caches the downloaded compilers in your repository's Actions cache by default,
to reduce the load on the Zig Foundation's servers. Cached compilers are only about 60MB
each per version/OS/architecture.
If this is really bad for you for some reason you can disable the caching.
```yaml
- uses: goto-bus-stop/setup-zig@v2
with:
cache: false
```
## License ## License
[Apache-2.0](LICENSE.md) [Apache-2.0](LICENSE.md)

View File

@@ -1,5 +1,5 @@
name: 'Setup Zig' name: 'Setup Zig (legacy)'
description: 'Setup a Zig compiler and add it to the path' description: 'Please use mlugg/setup-zig instead'
branding: branding:
icon: play icon: play
color: orange color: orange
@@ -9,6 +9,10 @@ inputs:
description: 'Version of the zig compiler to use (must be 0.3.0 or up)' description: 'Version of the zig compiler to use (must be 0.3.0 or up)'
required: true required: true
default: 'master' default: 'master'
cache:
description: 'Cache downloaded compilers for faster action runs. Strongly recommended.'
required: false
default: 'true'
runs: runs:
using: 'node16' using: 'node20'
main: 'dist/index.js' main: 'dist/index.js'

68983
dist/index.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -4,7 +4,8 @@ const os = require('os')
const path = require('path') const path = require('path')
const semver = require('semver') const semver = require('semver')
const actions = require('@actions/core') const actions = require('@actions/core')
const cache = require('@actions/tool-cache') const cache = require('@actions/cache')
const toolCache = require('@actions/tool-cache')
const { const {
extForPlatform, extForPlatform,
resolveCommit, resolveCommit,
@@ -13,40 +14,60 @@ const {
const TOOL_NAME = 'zig' const TOOL_NAME = 'zig'
async function downloadZig (platform, version) { async function downloadZig (arch, platform, version, useCache = true) {
const ext = extForPlatform(platform) const ext = extForPlatform(platform)
const { downloadUrl, variantName, version: useVersion } = version.includes('+') const { downloadUrl, variantName, version: useVersion } = version.includes('+')
? resolveCommit(platform, version) ? resolveCommit(arch, platform, version)
: await resolveVersion(platform, version) : await resolveVersion(arch, platform, version)
const cachedPath = cache.find(TOOL_NAME, useVersion) const cachedPath = toolCache.find(TOOL_NAME, useVersion)
if (cachedPath) { if (cachedPath) {
actions.info(`using cached zig install: ${cachedPath}`) actions.info(`using cached zig install: ${cachedPath}`)
return cachedPath return cachedPath
} }
const cacheKey = `${TOOL_NAME}-${variantName}`
if (useCache) {
const restorePath = path.join(process.env.RUNNER_TOOL_CACHE, TOOL_NAME, useVersion, arch)
actions.info(`attempting restore of ${cacheKey} to ${restorePath}`)
const restoredKey = await cache.restoreCache([restorePath], cacheKey)
if (restoredKey) {
actions.info(`using cached zig install: ${restorePath}`)
return restorePath
}
}
actions.info(`no cached version found. downloading zig ${variantName}`) actions.info(`no cached version found. downloading zig ${variantName}`)
const downloadPath = await cache.downloadTool(downloadUrl) const downloadPath = await toolCache.downloadTool(downloadUrl)
const zigPath = ext === 'zip' const zigPath = ext === 'zip'
? await cache.extractZip(downloadPath) ? await toolCache.extractZip(downloadPath)
: await cache.extractTar(downloadPath, undefined, 'x') : await toolCache.extractTar(downloadPath, undefined, 'x')
const binPath = path.join(zigPath, variantName) const binPath = path.join(zigPath, variantName)
const cachePath = await cache.cacheDir(binPath, TOOL_NAME, useVersion) const cachePath = await toolCache.cacheDir(binPath, TOOL_NAME, useVersion)
actions.info(`added zig ${useVersion} to the tool cache`)
if (useCache) {
actions.info(`adding zig ${useVersion} at ${cachePath} to local cache ${cacheKey}`)
await cache.saveCache([cachePath], cacheKey)
}
return cachePath return cachePath
} }
async function main () { async function main () {
const version = actions.getInput('version') || 'master' const version = actions.getInput('version') || 'master'
const useCache = actions.getInput('cache') || 'true'
if (semver.valid(version) && semver.lt(version, '0.3.0')) { if (semver.valid(version) && semver.lt(version, '0.3.0')) {
actions.setFailed('This action does not work with Zig 0.1.0 and Zig 0.2.0') actions.setFailed('This action does not work with Zig 0.1.0 and Zig 0.2.0')
return return
} }
if (useCache !== 'false' && useCache !== 'true') {
actions.setFailed('`with.cache` must be "true" or "false"')
return
}
const zigPath = await downloadZig(os.platform(), version) const zigPath = await downloadZig(os.arch(), os.platform(), version, useCache === 'true')
// Add the `zig` binary to the $PATH // Add the `zig` binary to the $PATH
actions.addPath(zigPath) actions.addPath(zigPath)

View File

@@ -1,19 +1,20 @@
{ {
"name": "setup-zig", "name": "setup-zig",
"description": "Use the zig compiler in your Github Action", "description": "Use the zig compiler in your Github Action",
"version": "2.0.2", "version": "2.2.1",
"author": "Renée Kooi <renee@kooi.me>", "author": "Renée Kooi <renee@kooi.me>",
"bugs": { "bugs": {
"url": "https://github.com/goto-bus-stop/setup-zig/issues" "url": "https://github.com/goto-bus-stop/setup-zig/issues"
}, },
"dependencies": { "dependencies": {
"@actions/cache": "^3.2.1",
"@actions/core": "^1.2.2", "@actions/core": "^1.2.2",
"@actions/tool-cache": "^2.0.1", "@actions/tool-cache": "^2.0.1",
"semver": "^7.1.3", "semver": "^7.1.3",
"simple-get": "^4.0.0" "simple-get": "^4.0.0"
}, },
"devDependencies": { "devDependencies": {
"esbuild": "^0.17.19", "esbuild": "^0.20.0",
"standard": "^17.0.0" "standard": "^17.0.0"
}, },
"homepage": "https://github.com/goto-bus-stop/setup-zig", "homepage": "https://github.com/goto-bus-stop/setup-zig",
@@ -30,7 +31,7 @@
"url": "https://github.com/goto-bus-stop/setup-zig.git" "url": "https://github.com/goto-bus-stop/setup-zig.git"
}, },
"scripts": { "scripts": {
"prepare": "esbuild index.js --outdir=dist --bundle --platform=node", "prepare": "esbuild index.js --outdir=dist --keep-names --bundle --platform=node --target=node20",
"test": "standard && node test" "test": "standard && node test"
}, },
"standard": { "standard": {

18
test.js
View File

@@ -5,29 +5,35 @@ const {
} = require('./versions') } = require('./versions')
async function test () { async function test () {
assert.deepEqual(resolveCommit('linux', '0.6.0+4b48fccad'), { assert.deepEqual(resolveCommit('x64', 'linux', '0.6.0+4b48fccad'), {
downloadUrl: 'https://ziglang.org/builds/zig-linux-x86_64-0.6.0+4b48fccad.tar.xz', downloadUrl: 'https://ziglang.org/builds/zig-linux-x86_64-0.6.0+4b48fccad.tar.xz',
variantName: 'zig-linux-x86_64-0.6.0+4b48fccad', variantName: 'zig-linux-x86_64-0.6.0+4b48fccad',
version: '0.6.0+4b48fccad' version: '0.6.0+4b48fccad'
}) })
assert.deepEqual(resolveCommit('win32', '0.6.0+4b48fccad'), { assert.deepEqual(resolveCommit('x64', 'win32', '0.6.0+4b48fccad'), {
downloadUrl: 'https://ziglang.org/builds/zig-windows-x86_64-0.6.0+4b48fccad.zip', downloadUrl: 'https://ziglang.org/builds/zig-windows-x86_64-0.6.0+4b48fccad.zip',
variantName: 'zig-windows-x86_64-0.6.0+4b48fccad', variantName: 'zig-windows-x86_64-0.6.0+4b48fccad',
version: '0.6.0+4b48fccad' version: '0.6.0+4b48fccad'
}) })
assert.deepEqual(await resolveVersion('linux', '0.7.0'), { assert.deepEqual(await resolveVersion('x64', 'linux', '0.7.0'), {
downloadUrl: 'https://ziglang.org/download/0.7.0/zig-linux-x86_64-0.7.0.tar.xz', downloadUrl: 'https://ziglang.org/download/0.7.0/zig-linux-x86_64-0.7.0.tar.xz',
variantName: 'zig-linux-x86_64-0.7.0', variantName: 'zig-linux-x86_64-0.7.0',
version: '0.7.0' version: '0.7.0'
}) })
assert.deepEqual(await resolveVersion('win32', '0.4.0'), { assert.deepEqual(await resolveVersion('x64', 'win32', '0.4.0'), {
downloadUrl: 'https://ziglang.org/download/0.4.0/zig-windows-x86_64-0.4.0.zip', downloadUrl: 'https://ziglang.org/download/0.4.0/zig-windows-x86_64-0.4.0.zip',
variantName: 'zig-windows-x86_64-0.4.0', variantName: 'zig-windows-x86_64-0.4.0',
version: '0.4.0' version: '0.4.0'
}) })
await assert.doesNotReject(resolveVersion('linux', 'master')) assert.deepEqual(await resolveVersion('arm64', 'darwin', '0.11.0'), {
await assert.doesNotReject(resolveVersion('win32', 'master')) downloadUrl: 'https://ziglang.org/download/0.11.0/zig-macos-aarch64-0.11.0.tar.xz',
variantName: 'zig-macos-aarch64-0.11.0',
version: '0.11.0'
})
await assert.doesNotReject(resolveVersion('x64', 'linux', 'master'))
await assert.doesNotReject(resolveVersion('x64', 'win32', 'master'))
await assert.doesNotReject(resolveVersion('arm64', 'darwin', 'master'))
} }
test().catch((error) => { test().catch((error) => {

13
test/v0.11/build.zig Normal file
View File

@@ -0,0 +1,13 @@
const Build = @import("std").Build;
pub fn build(b: *Build) void {
const optimize = b.standardOptimizeOption(.{});
const test_build = b.addTest(.{
.root_source_file = .{ .path = "src/main.zig" },
.optimize = optimize,
});
const run_test = b.addRunArtifact(test_build);
const test_step = b.step("test", "Run the app");
test_step.dependOn(&run_test.step);
}

5
test/v0.11/src/main.zig Normal file
View File

@@ -0,0 +1,5 @@
const debug = @import("std").debug;
test "it works" {
debug.assert(1 == 1);
}

View File

@@ -10,16 +10,24 @@ function extForPlatform (platform) {
}[platform] }[platform]
} }
function resolveCommit (platform, version) { function resolveCommit (arch, platform, version) {
const ext = extForPlatform(platform) const ext = extForPlatform(platform)
const addrhost = { const resolvedOs = {
linux: 'linux-x86_64', linux: 'linux',
darwin: 'macos-x86_64', darwin: 'macos',
win32: 'windows-x86_64' win32: 'windows'
}[platform] }[platform]
const downloadUrl = `https://ziglang.org/builds/zig-${addrhost}-${version}.${ext}` const resolvedArch = {
const variantName = `zig-${addrhost}-${version}` arm: 'armv7a',
arm64: 'aarch64',
ppc64: 'powerpc64',
riscv64: 'riscv64',
x64: 'x86_64'
}[arch]
const downloadUrl = `https://ziglang.org/builds/zig-${resolvedOs}-${resolvedArch}-${version}.${ext}`
const variantName = `zig-${resolvedOs}-${resolvedArch}-${version}`
return { downloadUrl, variantName, version } return { downloadUrl, variantName, version }
} }
@@ -36,13 +44,23 @@ function getJSON (opts) {
}) })
} }
async function resolveVersion (platform, version) { async function resolveVersion (arch, platform, version) {
const ext = extForPlatform(platform) const ext = extForPlatform(platform)
const host = { const resolvedOs = {
linux: 'x86_64-linux', linux: 'linux',
darwin: 'x86_64-macos', darwin: 'macos',
win32: 'x86_64-windows' win32: 'windows'
}[platform] || platform }[platform]
const resolvedArch = {
arm: 'armv7a',
arm64: 'aarch64',
ppc64: 'powerpc64',
riscv64: 'riscv64',
x64: 'x86_64'
}[arch]
const host = `${resolvedArch}-${resolvedOs}`
const index = await getJSON({ url: 'https://ziglang.org/download/index.json' }) const index = await getJSON({ url: 'https://ziglang.org/download/index.json' })