25 Commits

Author SHA1 Message Date
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
11 changed files with 2420 additions and 58548 deletions

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

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

View File

@@ -9,7 +9,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- run: npm install
- uses: EndBug/add-and-commit@v4
with:

View File

@@ -6,7 +6,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
uses: actions/checkout@v2
- name: Install dependencies
run: npm install
- name: Run tests
@@ -15,16 +15,17 @@ 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]
zig-version: [0.7.0, 0.8.0, 0.9.0, master]
include:
- os: ubuntu-latest
zig-version: 0.5.0
runs-on: ${{matrix.os}}
steps:
- name: Checkout sources
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Install Zig
uses: goto-bus-stop/setup-zig@default
with:

View File

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

View File

@@ -17,33 +17,28 @@ jobs:
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v2
- uses: goto-bus-stop/setup-zig@v1
- uses: goto-bus-stop/setup-zig@v2
- run: zig build test
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: goto-bus-stop/setup-zig@v1
- uses: goto-bus-stop/setup-zig@v2
- run: zig fmt --check src/*.zig
```
Optionally set a Zig version:
```yaml
- uses: goto-bus-stop/setup-zig@v1
- uses: goto-bus-stop/setup-zig@v2
with:
version: 0.7.0 # The default is 0.5.0
version: 0.7.0
```
To use the nightly builds, set:
```yaml
- uses: goto-bus-stop/setup-zig@v1
with:
version: master
```
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
- uses: goto-bus-stop/setup-zig@v2
with:
version: 0.6.0+4b48fccad
```
@@ -53,18 +48,6 @@ 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,11 +8,7 @@ inputs:
version:
description: 'Version of the zig compiler to use (must be 0.3.0 or up)'
required: true
default: '0.5.0'
cache:
description: 'Cache downloaded compilers for faster action runs. Strongly recommended.'
required: false
default: 'true'
default: 'master'
runs:
using: 'node12'
using: 'node16'
main: 'dist/index.js'

60828
dist/index.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,77 +1,46 @@
'use strict'
const os = require('os')
const path = require('path')
const semver = require('semver')
const actions = require('@actions/core')
const cache = require('@actions/cache')
const toolCache = require('@actions/tool-cache')
const cache = require('@actions/tool-cache')
const {
extForPlatform,
resolveCommit,
resolveVersion
} = require('./versions')
const TOOL_NAME = 'zig'
async function downloadZig (platform, version, useCache = true) {
async function downloadZig (platform, version) {
const ext = extForPlatform(platform)
const { downloadUrl, variantName, version: useVersion } = version.includes('+')
const { downloadUrl, variantName } = version.includes('+')
? resolveCommit(platform, version)
: await resolveVersion(platform, version)
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 toolCache.downloadTool(downloadUrl)
const downloadPath = await cache.downloadTool(downloadUrl)
const zigPath = ext === 'zip'
? await toolCache.extractZip(downloadPath)
: await toolCache.extractTar(downloadPath, undefined, 'x')
? await cache.extractZip(downloadPath)
: await cache.extractTar(downloadPath, undefined, 'x')
const binPath = path.join(zigPath, variantName)
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)
}
const cachePath = await cache.cacheDir(binPath, 'zig', variantName)
return cachePath
}
async function main () {
const version = actions.getInput('version') || '0.5.0'
const useCache = actions.getInput('cache') || 'true'
const version = actions.getInput('version') || 'master'
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, Boolean(useCache))
let zigPath = cache.find('zig', version)
if (!zigPath) {
zigPath = await downloadZig(os.platform(), version)
}
// Add the `zig` binary to the $PATH
actions.addPath(zigPath)
actions.info(`zig installed at ${zigPath}`)
}
main().catch((err) => {

View File

@@ -1,20 +1,19 @@
{
"name": "setup-zig",
"description": "Use the zig compiler in your Github Action",
"version": "1.4.0",
"version": "2.0.1",
"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.18.8",
"esbuild": "^0.15.13",
"standard": "^17.0.0"
},
"homepage": "https://github.com/goto-bus-stop/setup-zig",
@@ -31,7 +30,7 @@
"url": "https://github.com/goto-bus-stop/setup-zig.git"
},
"scripts": {
"prepare": "esbuild index.js --outdir=dist --keep-names --bundle --platform=node --target=node12",
"prepare": "esbuild index.js --outdir=dist --bundle --platform=node",
"test": "standard && node test"
},
"standard": {

12
test.js
View File

@@ -7,24 +7,20 @@ const {
async function test () {
assert.deepEqual(resolveCommit('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'
variantName: 'zig-linux-x86_64-0.6.0+4b48fccad'
})
assert.deepEqual(resolveCommit('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'
variantName: 'zig-windows-x86_64-0.6.0+4b48fccad'
})
assert.deepEqual(await resolveVersion('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'
variantName: 'zig-linux-x86_64-0.7.0'
})
assert.deepEqual(await resolveVersion('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'
variantName: 'zig-windows-x86_64-0.4.0'
})
await assert.doesNotReject(resolveVersion('linux', 'master'))
await assert.doesNotReject(resolveVersion('win32', 'master'))

View File

@@ -21,7 +21,7 @@ function resolveCommit (platform, version) {
const downloadUrl = `https://ziglang.org/builds/zig-${addrhost}-${version}.${ext}`
const variantName = `zig-${addrhost}-${version}`
return { downloadUrl, variantName, version }
return { downloadUrl, variantName }
}
function getJSON (opts) {
@@ -59,7 +59,7 @@ async function resolveVersion (platform, version) {
const downloadUrl = meta[host].tarball
const variantName = path.basename(meta[host].tarball).replace(`.${ext}`, '')
return { downloadUrl, variantName, version: useVersion || version }
return { downloadUrl, variantName }
}
module.exports = {