94 Commits
v1.2.0 ... main

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
Renée Kooi
e24fd328aa 2.0.2 2023-05-18 14:32:14 +02:00
Renée
d77db2eb23 Fix tool-cache usage (#45)
* cache log

* log

* log

* use resolved ver for cache

* build

* log cache

* log

* use version as key

* deps

* loggggggg

* method name

* improve log

* ci: tweak versions

* include version for commit deps

* trailing

* mistake
2023-05-18 13:30:28 +01:00
Automated
ddee6faec6 Rebuild 2023-01-16 09:27:32 +00:00
dependabot[bot]
dfa210dd0b Bump esbuild from 0.16.17 to 0.17.0 (#43)
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.16.17 to 0.17.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.16.17...v0.17.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 10:26:58 +01:00
Automated
a64a1dc5e1 Rebuild 2022-12-07 09:13:10 +00:00
dependabot[bot]
64c2ecb313 Bump esbuild from 0.15.18 to 0.16.0 (#42)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-07 10:12:43 +01:00
Renée Kooi
869a4299cf 2.0.1 2022-11-07 13:46:57 +01:00
Renée Kooi
75b5fc3918 ci: maybe fix matrix 2022-11-07 13:42:28 +01:00
Renée Kooi
7784e301e8 update readme to v2 2022-11-07 13:38:56 +01:00
Renée Kooi
9566bb3e87 2.0.0 2022-11-07 13:37:05 +01:00
Renée Kooi
2cffe3f4a2 ci: remove 0.5.0 on nonworking platforms 2022-11-07 13:28:28 +01:00
Renée Kooi
c2eddb6989 deps: use esbuild 2022-11-07 13:25:42 +01:00
Renée Kooi
8cf2a1296e deps: update standard 2022-11-07 13:21:01 +01:00
Renée Kooi
1ef867edef deps: update tool-cache 2022-11-07 13:20:38 +01:00
Renée Kooi
9f0698fd52 use master by default, fix #24 2022-11-07 13:19:37 +01:00
Renée Kooi
bf730ebe84 deps: update ncc 2022-11-07 13:19:10 +01:00
Automated
632586c725 Rebuild 2022-11-07 12:13:54 +00:00
Renée Kooi
66631fd873 ci: update node.js, closes #40 (#41)
* ci: update node.js, closes #40

* ci: update matrix
2022-11-07 13:13:23 +01:00
dependabot[bot]
0cee191d07 Bump @vercel/ncc from 0.29.2 to 0.30.0 (#27)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-30 10:15:46 +02:00
Automated
e2ed12d04c Rebuild 2021-08-20 15:14:33 +00:00
Renée Kooi
cfbd20032e ci: test with zig 0.8.0 2021-08-20 17:14:06 +02:00
Automated
55609d477b Rebuild 2021-07-19 06:52:05 +00:00
dependabot[bot]
d1113581f1 Bump @vercel/ncc from 0.28.6 to 0.29.0 (#23)
Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.28.6 to 0.29.0.
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](https://github.com/vercel/ncc/compare/0.28.6...0.29.0)

---
updated-dependencies:
- dependency-name: "@vercel/ncc"
  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>
2021-07-19 08:51:40 +02:00
Automated
8db8d637fe Rebuild 2021-05-01 11:10:35 +00:00
dependabot-preview[bot]
942865929d Upgrade to GitHub-native Dependabot (#22)
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-05-01 13:10:11 +02:00
Automated
8a2fb59d7a Rebuild 2021-04-06 09:59:19 +00:00
dependabot-preview[bot]
c34989108a Bump @vercel/ncc from 0.27.0 to 0.28.0 (#21)
Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.27.0 to 0.28.0.
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](https://github.com/vercel/ncc/compare/0.27.0...0.28.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-04-06 11:58:50 +02:00
Automated
8a99a7c9ad Rebuild 2021-01-12 08:11:31 +00:00
dependabot-preview[bot]
bcf8978f8e Bump @vercel/ncc from 0.26.2 to 0.27.0 (#20)
Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.26.2 to 0.27.0.
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](https://github.com/vercel/ncc/compare/0.26.2...0.27.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-01-12 09:11:06 +01:00
Automated
8c8dfa672b Rebuild 2020-12-18 10:15:11 +00:00
dependabot-preview[bot]
733ad9e5c7 Bump @vercel/ncc from 0.25.1 to 0.26.0 (#19)
Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.25.1 to 0.26.0.
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](https://github.com/vercel/ncc/compare/0.25.1...0.26.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-12-18 11:14:45 +01:00
Renée Kooi
41ae19e72e 1.3.0 2020-11-11 12:44:03 +01:00
Automated
d9392a17cf Rebuild 2020-11-11 11:40:36 +00:00
Renée Kooi
e3c946d422 try with newer zig 2020-11-11 12:40:03 +01:00
Renée Kooi
d485d46e15 add tests for version to URL resolution 2020-11-11 12:38:41 +01:00
Renée Kooi
ab441cce53 refactor 2020-11-11 12:27:49 +01:00
Renée Kooi
a43b52f8f8 add commit hash syntax to readme 2020-11-11 12:17:26 +01:00
Code Hz
96923a5a7f allow use exact commit hash (#13) (#14) 2020-11-11 12:15:17 +01:00
dependabot-preview[bot]
945e912039 Bump standard from 15.0.1 to 16.0.1 (#16)
Bumps [standard](https://github.com/standard/standard) from 15.0.1 to 16.0.1.
- [Release notes](https://github.com/standard/standard/releases)
- [Changelog](https://github.com/standard/standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/standard/standard/compare/v15.0.1...v16.0.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-06 13:44:49 +01:00
Automated
24b561a760 Rebuild 2020-11-06 12:41:24 +00:00
dependabot-preview[bot]
694a6a80cf Bump @vercel/ncc from 0.24.1 to 0.25.0 (#17)
Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.24.1 to 0.25.0.
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](https://github.com/vercel/ncc/compare/0.24.1...0.25.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-06 13:40:47 +01:00
Automated
5360ef6587 Rebuild 2020-10-22 16:03:35 +00:00
dependabot-preview[bot]
633f3dcdd7 Bump standard from 14.3.4 to 15.0.0 (#12)
Bumps [standard](https://github.com/standard/standard) from 14.3.4 to 15.0.0.
- [Release notes](https://github.com/standard/standard/releases)
- [Changelog](https://github.com/standard/standard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/standard/standard/compare/v14.3.4...v15.0.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-10-22 18:03:04 +02:00
Renée Kooi
7d7611829d 1.2.5 2020-10-11 18:21:10 +02:00
Automated
94c7f0924b Rebuild 2020-10-11 16:18:31 +00:00
Renée Kooi
1956e0fd25 trigger rebuild 2020-10-11 18:17:51 +02:00
Renée Kooi
3b3df5d7b4 1.2.4 2020-09-19 15:55:25 +02:00
Automated
5c615af1ba Rebuild 2020-09-19 13:52:14 +00:00
Renée Kooi
338494c8e7 @zeit/ncc → @vercel/ncc 2020-09-19 15:51:38 +02:00
Automated
0682612436 Rebuild 2020-05-18 07:46:44 +00:00
dependabot-preview[bot]
e0b50aeddc Bump simple-get from 3.1.0 to 4.0.0 (#10) 2020-05-18 09:46:18 +02:00
Automated
9e94a59e72 Rebuild 2020-03-24 10:38:05 +00:00
dependabot-preview[bot]
8a91458b3f Bump @zeit/ncc from 0.21.1 to 0.22.0 (#9)
Bumps [@zeit/ncc](https://github.com/zeit/ncc) from 0.21.1 to 0.22.0.
- [Release notes](https://github.com/zeit/ncc/releases)
- [Commits](https://github.com/zeit/ncc/compare/0.21.1...0.22.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-03-24 11:37:38 +01:00
Renée Kooi
964137ae91 1.2.3 2020-03-07 16:11:43 +01:00
Renée Kooi
7e9cfe8742 Fix branding. 2020-03-07 16:08:23 +01:00
Renée Kooi
23860f7d57 Auto-rebuild dist files using Github Actions (#8)
* ci: auto-build the dist files

* Rebuild

* ci: only rebuild on release branches

* ci: support any version branch

Co-authored-by: Automated <github@asdf.kooi.me>
2020-03-07 16:05:55 +01:00
Renée Kooi
09b0beda20 1.2.2 2020-02-17 15:18:38 +01:00
Renée Kooi
5f4f8a2949 ci: unpin standard-action 2020-02-17 15:16:07 +01:00
Renée Kooi
70f70cd73c Upgrade dependencies. 2020-02-17 15:06:21 +01:00
Renée Kooi
fd90c085ba doc: recommend using @v1 instead of pinning to a version 2020-02-17 15:03:25 +01:00
Renée Kooi
d17d924695 ci: use actions/checkout v2 2020-02-17 15:03:12 +01:00
Alexis Brodeur
996c042d7e Update the examples (#7)
The version of this action provided in examples was out of date compared
to the version of the most recent release.

This difference means that features like `version: master` will not
work.
2020-02-08 11:00:21 +01:00
Renée Kooi
59cbb946fb 1.2.1 2020-02-01 20:50:02 +01:00
Renée Kooi
917722556b ci: switch back to default 2020-02-01 19:11:05 +01:00
Renée Kooi
bd0d3f0ae3 Actually support downloading Zig version: master (#5)
* Fix extracted folder name

* ci: also test with zig master

* fix lint

* fail on error

* debug

* other debug 😂

* console.log

* lol apply the change

* yadda

* wtf

* fuck

* ????

* xauuaoethosnuhtnohqsn

* siiiiiigh

* just use stderr lol whatever

* ditch debugging

* use test
2020-02-01 19:01:44 +01:00
19 changed files with 70795 additions and 4729 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

14
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 10
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 10

17
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Build
on:
push:
branches:
- 'default'
- 'v[0-9]+'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install
- uses: EndBug/add-and-commit@v9
with:
add: dist
message: Rebuild (automated)

View File

@@ -1,25 +1,52 @@
name: CI
on: push
jobs:
lint:
test:
name: Unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: goto-bus-stop/standard-action@v1.0.0
with:
annotate: true
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
- name: Checkout sources
uses: actions/checkout@v4
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
smoke-test:
name: Build test
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, macos-12, macos-latest, windows-latest]
zig-version: [0.11.0, 0.12.0]
test-variant: [modern]
include:
- { os: ubuntu-latest, zig-version: 0.5.0, test-variant: legacy }
- { 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}}
steps:
- uses: actions/checkout@v1
- uses: goto-bus-stop/setup-zig@default
- name: Checkout sources
uses: actions/checkout@v4
- name: Install Zig
uses: goto-bus-stop/setup-zig@default
with:
version: 0.5.0
- run: zig run src/main.zig
working-directory: test
version: ${{matrix.zig-version}}
- name: Run tests (zig up to v0.10.x)
if: ${{ matrix.test-variant == 'legacy' }}
run: zig build 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
*.log

View File

@@ -4,6 +4,70 @@ All notable changes to this project will be documented in this file.
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
* 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)
## 2.0.1
* Update docs to v2
## 2.0.0
* Change `version` option default to `master`. See [#24](https://github.com/goto-bus-stop/setup-zig/issues/24)
## 1.3.0
* Support pinning to a specific commit of the zig compiler. ([@codehz](https://github.com/codehz) in [#14](https://github.com/goto-bus-stop/setup-zig/pull/14))
```yaml
uses: goto-bus-stop/setup-zig@v1
with:
version: 0.6.0+4b48fccad
```
* Add tests for the version -> URL resolution code.
## 1.2.5
* Update dependencies to fix #11.
## 1.2.4
* Update dependencies simple-get and ncc.
## 1.2.3
* Configure Actions to build releases automatically.
## 1.2.2
* Update examples. ([#7](https://github.com/goto-bus-stop/setup-zig/pull/7))
* Upgrade dependencies.
* Recommend using @v1 instead of pinning to a version.
## 1.2.1
* Make `version: master` actually work.
## 1.2.0
* Allow setting `version: master` to get the latest build from the development branch.

View File

@@ -1,6 +1,9 @@
# setup-zig
Use the zig compiler in your Github Action
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)
@@ -16,36 +19,50 @@ jobs:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v1
- uses: goto-bus-stop/setup-zig@v1.0.0
- uses: actions/checkout@v2
- uses: goto-bus-stop/setup-zig@v2
- run: zig build test
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: goto-bus-stop/setup-zig@v1.0.0
- run: zig fmt --check src/*.zig
- uses: actions/checkout@v2
- uses: goto-bus-stop/setup-zig@v2
- run: zig fmt --check .
```
Optionally set a Zig version:
```yaml
- uses: goto-bus-stop/setup-zig@v1.0.0
- uses: goto-bus-stop/setup-zig@v2
with:
version: 0.4.0 # The default is 0.5.0
version: 0.7.0
```
To use the nightly builds, set:
The default is to use the nightly `master` builds.
Or [pin to a specific commit](https://github.com/goto-bus-stop/setup-zig/issues/13) using `version+commithash` syntax:
```yaml
- uses: goto-bus-stop/setup-zig@v1.0.0
- uses: goto-bus-stop/setup-zig@v2
with:
version: master
version: 0.6.0+4b48fccad
```
If you are running Zig on Windows machines, you need to make sure that your .zig files use \n line endings and not \r\n. The `actions/checkout` action auto-converts line endings to \r\n, so add a `.gitattributes` file:
If you are running Zig on Windows machines, you need to make sure that your .zig files use \n line endings and not \r\n. The `actions/checkout` action auto-converts line endings to `\r\n` on Windows runners, so add a `.gitattributes` file:
```
*.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
[Apache-2.0](LICENSE.md)

View File

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

74988
dist/index.js vendored

File diff suppressed because one or more lines are too long

104
index.js
View File

@@ -1,75 +1,81 @@
'use strict'
const os = require('os')
const path = require('path')
const semver = require('semver')
const get = require('simple-get').concat
const actions = require('@actions/core')
const cache = require('@actions/tool-cache')
const cache = require('@actions/cache')
const toolCache = require('@actions/tool-cache')
const {
extForPlatform,
resolveCommit,
resolveVersion
} = require('./versions')
function getJSON (opts) {
return new Promise((resolve, reject) => {
get({ ...opts, json: true }, (err, req, data) => {
if (err) {
reject(err)
} else {
resolve(data)
}
})
})
}
const TOOL_NAME = 'zig'
async function downloadZig (version) {
const host = {
linux: 'x86_64-linux',
darwin: 'x86_64-macos',
win32: 'x86_64-windows'
}[os.platform()] || os.platform()
const ext = {
linux: 'tar.xz',
darwin: 'tar.xz',
win32: 'zip'
}[os.platform()]
async function downloadZig (arch, platform, version, useCache = true) {
const ext = extForPlatform(platform)
const index = await getJSON({ url: 'https://ziglang.org/download/index.json' })
const { downloadUrl, variantName, version: useVersion } = version.includes('+')
? resolveCommit(arch, platform, version)
: await resolveVersion(arch, platform, version)
const availableVersions = Object.keys(index)
const useVersion = semver.valid(version)
? semver.maxSatisfying(availableVersions.filter((v) => semver.valid(v)), version)
: null
const meta = index[useVersion || version]
if (!meta || !meta[host]) {
throw new Error(`Could not find version ${version} for platform ${host}`)
const cachedPath = toolCache.find(TOOL_NAME, useVersion)
if (cachedPath) {
actions.info(`using cached zig install: ${cachedPath}`)
return cachedPath
}
const hostVariantName = {
linux: 'linux-x86_64',
darwin: 'macos-x86_64',
win32: 'windows-x86_64'
}[os.platform()]
const variantName = `zig-${hostVariantName}-${version}`
const downloadPath = await cache.downloadTool(meta[host].tarball)
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}`)
const downloadPath = await toolCache.downloadTool(downloadUrl)
const zigPath = ext === 'zip'
? await cache.extractZip(downloadPath)
: await cache.extractTar(downloadPath, undefined, 'x')
? await toolCache.extractZip(downloadPath)
: await toolCache.extractTar(downloadPath, undefined, 'x')
const binPath = path.join(zigPath, variantName)
return cache.cacheDir(binPath, 'zig', version)
const cachePath = await toolCache.cacheDir(binPath, TOOL_NAME, useVersion)
if (useCache) {
actions.info(`adding zig ${useVersion} at ${cachePath} to local cache ${cacheKey}`)
await cache.saveCache([cachePath], cacheKey)
}
return cachePath
}
async function main () {
const version = actions.getInput('version') || '0.5.0'
const version = actions.getInput('version') || 'master'
const useCache = actions.getInput('cache') || 'true'
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')
return
}
let zigPath = cache.find('zig', version)
if (!zigPath) {
zigPath = await downloadZig(version)
if (useCache !== 'false' && useCache !== 'true') {
actions.setFailed('`with.cache` must be "true" or "false"')
return
}
const zigPath = await downloadZig(os.arch(), os.platform(), version, useCache === 'true')
// Add the `zig` binary to the $PATH
actions.addPath(zigPath)
actions.info(`zig installed at ${zigPath}`)
}
main()
main().catch((err) => {
console.error(err.stack)
actions.setFailed(err.message)
process.exit(1)
})

View File

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

42
test.js Normal file
View File

@@ -0,0 +1,42 @@
const assert = require('assert').strict
const {
resolveCommit,
resolveVersion
} = require('./versions')
async function test () {
assert.deepEqual(resolveCommit('x64', 'linux', '0.6.0+4b48fccad'), {
downloadUrl: 'https://ziglang.org/builds/zig-linux-x86_64-0.6.0+4b48fccad.tar.xz',
variantName: 'zig-linux-x86_64-0.6.0+4b48fccad',
version: '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',
variantName: 'zig-windows-x86_64-0.6.0+4b48fccad',
version: '0.6.0+4b48fccad'
})
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',
variantName: 'zig-linux-x86_64-0.7.0',
version: '0.7.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',
variantName: 'zig-windows-x86_64-0.4.0',
version: '0.4.0'
})
assert.deepEqual(await resolveVersion('arm64', 'darwin', '0.11.0'), {
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) => {
console.error(error.stack)
process.exit(1)
})

View File

@@ -1,14 +0,0 @@
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 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);
}

View File

@@ -1,6 +0,0 @@
const io = @import("std").io;
pub fn main() anyerror!void {
const stdout = try io.getStdOut();
try stdout.write("it works!\n");
}

10
test/v0.10/build.zig Normal file
View File

@@ -0,0 +1,10 @@
const Builder = @import("std").build.Builder;
pub fn build(b: *Builder) void {
const mode = b.standardReleaseOptions();
const test_build = b.addTest("src/main.zig");
test_build.setBuildMode(mode);
const test_step = b.step("test", "Run the app");
test_step.dependOn(&test_build.step);
}

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

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

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);
}

87
versions.js Normal file
View File

@@ -0,0 +1,87 @@
const path = require('path')
const get = require('simple-get').concat
const semver = require('semver')
function extForPlatform (platform) {
return {
linux: 'tar.xz',
darwin: 'tar.xz',
win32: 'zip'
}[platform]
}
function resolveCommit (arch, platform, version) {
const ext = extForPlatform(platform)
const resolvedOs = {
linux: 'linux',
darwin: 'macos',
win32: 'windows'
}[platform]
const resolvedArch = {
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 }
}
function getJSON (opts) {
return new Promise((resolve, reject) => {
get({ ...opts, json: true }, (err, req, data) => {
if (err) {
reject(err)
} else {
resolve(data)
}
})
})
}
async function resolveVersion (arch, platform, version) {
const ext = extForPlatform(platform)
const resolvedOs = {
linux: 'linux',
darwin: 'macos',
win32: 'windows'
}[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 availableVersions = Object.keys(index)
const useVersion = semver.valid(version)
? semver.maxSatisfying(availableVersions.filter((v) => semver.valid(v)), version)
: null
const meta = index[useVersion || version]
if (!meta || !meta[host]) {
throw new Error(`Could not find version ${useVersion || version} for platform ${host}`)
}
const downloadUrl = meta[host].tarball
const variantName = path.basename(meta[host].tarball).replace(`.${ext}`, '')
return { downloadUrl, variantName, version: useVersion || version }
}
module.exports = {
extForPlatform,
resolveCommit,
resolveVersion
}