7 Commits
v2.0.2 ... v1

Author SHA1 Message Date
Renée Kooi
222d316fd3 1.4.0 2023-06-25 18:02:46 +02:00
Renée
3d1ffe6553 backport caching to v1 (#54)
* deps: use esbuild

* deps: update tool-cache

* 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

* 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

* target node12

* changelog: add 1.4.0
2023-06-25 18:02:21 +02:00
Renée Kooi
03aebe4822 Merge tag 'v1.3.0' into v1 2020-11-11 12:45:17 +01:00
Renée Kooi
0ad672a98e Merge tag 'v1.2.5' into v1 2020-10-11 18:23:18 +02:00
Renée Kooi
d69d6d7322 Merge tag 'v1.2.4' into v1 2020-09-19 15:55:48 +02:00
Renée Kooi
6674bba866 1.2.4 2020-09-19 15:54:49 +02:00
Automated
6ebc72da8e Rebuild 2020-09-19 13:51:08 +00:00
8 changed files with 57899 additions and 1879 deletions

View File

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

View File

@@ -15,7 +15,6 @@ jobs:
smoke-test:
name: Build test
strategy:
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]
@@ -25,7 +24,7 @@ jobs:
runs-on: ${{matrix.os}}
steps:
- name: Checkout sources
uses: actions/checkout@v3
uses: actions/checkout@v2
- name: Install Zig
uses: goto-bus-stop/setup-zig@default
with:

View File

@@ -4,14 +4,9 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## 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.4.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/54)
## 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))

View File

@@ -17,28 +17,33 @@ jobs:
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v2
- uses: goto-bus-stop/setup-zig@v2
- uses: goto-bus-stop/setup-zig@v1
- run: zig build test
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: goto-bus-stop/setup-zig@v2
- uses: goto-bus-stop/setup-zig@v1
- run: zig fmt --check src/*.zig
```
Optionally set a Zig version:
```yaml
- uses: goto-bus-stop/setup-zig@v2
- uses: goto-bus-stop/setup-zig@v1
with:
version: 0.7.0
version: 0.7.0 # The default is 0.5.0
```
The default is to use the nightly `master` builds.
To use the nightly builds, set:
```yaml
- uses: goto-bus-stop/setup-zig@v1
with:
version: master
```
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@v2
- uses: goto-bus-stop/setup-zig@v1
with:
version: 0.6.0+4b48fccad
```
@@ -48,6 +53,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@v1
with:
cache: false
```
## License
[Apache-2.0](LICENSE.md)

View File

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

59671
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 version = actions.getInput('version') || '0.5.0'
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, Boolean(useCache))
// 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": "1.4.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.18.8",
"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=node12",
"test": "standard && node test"
},
"standard": {