21 Commits

Author SHA1 Message Date
Renée Kooi
9962fdf075 test 2024-04-26 09:31: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
15 changed files with 75840 additions and 2147 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
time: "04:00"
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:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- run: npm install
- uses: EndBug/add-and-commit@v4
- uses: EndBug/add-and-commit@v9
with:
add: dist
message: Rebuild
author_name: Automated
author_email: github@asdf.kooi.me
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
message: Rebuild (automated)

View File

@@ -6,7 +6,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install dependencies
run: npm install
- name: Run tests
@@ -18,18 +18,23 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
zig-version: [0.7.0, 0.8.0, 0.9.0, 0.10.0]
zig-version: [0.7.0, 0.8.0, 0.9.0, 0.10.0, 0.11.0]
include:
- os: ubuntu-latest
zig-version: 0.5.0
runs-on: ${{matrix.os}}
steps:
- name: Checkout sources
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install Zig
uses: goto-bus-stop/setup-zig@default
with:
version: ${{matrix.zig-version}}
- name: Run tests
- name: Run tests (zig up to v0.10.x)
if: ${{ !startsWith(matrix.zig-version, '0.11.') }}
run: zig build test
working-directory: test
working-directory: test/v0.10
- name: Run tests (zig v0.11.x)
if: ${{ startsWith(matrix.zig-version, '0.11.') }}
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,24 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## 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)

View File

@@ -24,7 +24,7 @@ jobs:
steps:
- uses: actions/checkout@v2
- uses: goto-bus-stop/setup-zig@v2
- run: zig fmt --check src/*.zig
- run: zig fmt --check .
```
Optionally set a Zig version:
@@ -48,6 +48,18 @@ If you are running Zig on Windows machines, you need to make sure that your .zig
*.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

@@ -9,6 +9,10 @@ inputs:
description: 'Version of the zig compiler to use (must be 0.3.0 or up)'
required: true
default: 'master'
cache:
description: 'Cache downloaded compilers for faster action runs. Strongly recommended.'
required: false
default: 'true'
runs:
using: 'node16'
using: 'node20'
main: 'dist/index.js'

77829
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 semver = require('semver')
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,
@@ -13,40 +14,60 @@ const {
const TOOL_NAME = 'zig'
async function downloadZig (platform, version) {
async function downloadZig (platform, version, useCache = true) {
const ext = extForPlatform(platform)
const { downloadUrl, variantName, version: useVersion } = version.includes('+')
? resolveCommit(platform, version)
: await resolveVersion(platform, version)
const cachedPath = cache.find(TOOL_NAME, useVersion)
const cachedPath = toolCache.find(TOOL_NAME, useVersion)
if (cachedPath) {
actions.info(`using cached zig install: ${cachedPath}`)
return cachedPath
}
const cacheKey = `${TOOL_NAME}-${variantName}`
if (useCache) {
const restorePath = path.join(process.env.RUNNER_TOOL_CACHE, TOOL_NAME, useVersion, os.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 cache.downloadTool(downloadUrl)
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)
const cachePath = await cache.cacheDir(binPath, TOOL_NAME, useVersion)
actions.info(`added zig ${useVersion} to the tool cache`)
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') || '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
}
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.platform(), version, useCache === 'true')
// Add the `zig` binary to the $PATH
actions.addPath(zigPath)

View File

@@ -1,19 +1,20 @@
{
"name": "setup-zig",
"description": "Use the zig compiler in your Github Action",
"version": "2.0.2",
"version": "2.2.0",
"author": "Renée Kooi <renee@kooi.me>",
"bugs": {
"url": "https://github.com/goto-bus-stop/setup-zig/issues"
},
"dependencies": {
"@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": {
"esbuild": "^0.17.19",
"esbuild": "^0.20.0",
"standard": "^17.0.0"
},
"homepage": "https://github.com/goto-bus-stop/setup-zig",
@@ -30,7 +31,7 @@
"url": "https://github.com/goto-bus-stop/setup-zig.git"
},
"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"
},
"standard": {

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