7 Commits
v2 ... 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
17 changed files with 31240 additions and 32563 deletions

View File

@@ -1,23 +0,0 @@
# 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

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

View File

@@ -9,9 +9,13 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v3
- run: npm install
- uses: EndBug/add-and-commit@v9
- uses: EndBug/add-and-commit@v4
with:
add: dist
message: Rebuild (automated)
message: Rebuild
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
steps:
- name: Checkout sources
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Run tests
@@ -15,38 +15,20 @@ jobs:
smoke-test:
name: Build test
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-12, macos-latest, windows-latest]
zig-version: [0.11.0, 0.12.0]
test-variant: [modern]
os: [ubuntu-latest, macos-latest, windows-latest]
zig-version: [0.7.0, 0.8.0, 0.9.0, 0.10.0]
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 }
- os: ubuntu-latest
zig-version: 0.5.0
runs-on: ${{matrix.os}}
steps:
- name: Checkout sources
uses: actions/checkout@v4
uses: actions/checkout@v2
- name: Install Zig
uses: goto-bus-stop/setup-zig@default
with:
version: ${{matrix.zig-version}}
- name: Run tests (zig up to v0.10.x)
if: ${{ matrix.test-variant == 'legacy' }}
- name: Run tests
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
working-directory: test

2
.gitignore vendored
View File

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

View File

@@ -4,43 +4,9 @@ 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
## 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/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)
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

@@ -2,9 +2,6 @@
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
@@ -20,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
- run: zig fmt --check .
- 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
```
@@ -58,7 +60,7 @@ 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
- uses: goto-bus-stop/setup-zig@v1
with:
cache: false
```

View File

@@ -1,5 +1,5 @@
name: 'Setup Zig (legacy)'
description: 'Please use mlugg/setup-zig instead'
name: 'Setup Zig'
description: 'Setup a Zig compiler and add it to the path'
branding:
icon: play
color: orange
@@ -8,11 +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: 'node20'
using: 'node12'
main: 'dist/index.js'

63552
dist/index.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -14,12 +14,12 @@ const {
const TOOL_NAME = 'zig'
async function downloadZig (arch, platform, version, useCache = true) {
async function downloadZig (platform, version, useCache = true) {
const ext = extForPlatform(platform)
const { downloadUrl, variantName, version: useVersion } = version.includes('+')
? resolveCommit(arch, platform, version)
: await resolveVersion(arch, platform, version)
? resolveCommit(platform, version)
: await resolveVersion(platform, version)
const cachedPath = toolCache.find(TOOL_NAME, useVersion)
if (cachedPath) {
@@ -29,7 +29,7 @@ async function downloadZig (arch, platform, version, useCache = true) {
const cacheKey = `${TOOL_NAME}-${variantName}`
if (useCache) {
const restorePath = path.join(process.env.RUNNER_TOOL_CACHE, TOOL_NAME, useVersion, arch)
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) {
@@ -56,7 +56,7 @@ async function downloadZig (arch, platform, version, useCache = true) {
}
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')
@@ -67,7 +67,7 @@ async function main () {
return
}
const zigPath = await downloadZig(os.arch(), os.platform(), version, useCache === 'true')
const zigPath = await downloadZig(os.platform(), version, Boolean(useCache))
// Add the `zig` binary to the $PATH
actions.addPath(zigPath)

View File

@@ -1,7 +1,7 @@
{
"name": "setup-zig",
"description": "Use the zig compiler in your Github Action",
"version": "2.2.1",
"version": "1.4.0",
"author": "Renée Kooi <renee@kooi.me>",
"bugs": {
"url": "https://github.com/goto-bus-stop/setup-zig/issues"
@@ -14,7 +14,7 @@
"simple-get": "^4.0.0"
},
"devDependencies": {
"esbuild": "^0.20.0",
"esbuild": "^0.18.8",
"standard": "^17.0.0"
},
"homepage": "https://github.com/goto-bus-stop/setup-zig",
@@ -31,7 +31,7 @@
"url": "https://github.com/goto-bus-stop/setup-zig.git"
},
"scripts": {
"prepare": "esbuild index.js --outdir=dist --keep-names --bundle --platform=node --target=node20",
"prepare": "esbuild index.js --outdir=dist --keep-names --bundle --platform=node --target=node12",
"test": "standard && node test"
},
"standard": {

18
test.js
View File

@@ -5,35 +5,29 @@ const {
} = require('./versions')
async function test () {
assert.deepEqual(resolveCommit('x64', 'linux', '0.6.0+4b48fccad'), {
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'
})
assert.deepEqual(resolveCommit('x64', 'win32', '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'
})
assert.deepEqual(await resolveVersion('x64', 'linux', '0.7.0'), {
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'
})
assert.deepEqual(await resolveVersion('x64', 'win32', '0.4.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'
})
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'))
await assert.doesNotReject(resolveVersion('linux', 'master'))
await assert.doesNotReject(resolveVersion('win32', 'master'))
}
test().catch((error) => {

View File

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

View File

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

View File

@@ -10,24 +10,16 @@ function extForPlatform (platform) {
}[platform]
}
function resolveCommit (arch, platform, version) {
function resolveCommit (platform, version) {
const ext = extForPlatform(platform)
const resolvedOs = {
linux: 'linux',
darwin: 'macos',
win32: 'windows'
const addrhost = {
linux: 'linux-x86_64',
darwin: 'macos-x86_64',
win32: 'windows-x86_64'
}[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}`
const downloadUrl = `https://ziglang.org/builds/zig-${addrhost}-${version}.${ext}`
const variantName = `zig-${addrhost}-${version}`
return { downloadUrl, variantName, version }
}
@@ -44,23 +36,13 @@ function getJSON (opts) {
})
}
async function resolveVersion (arch, platform, version) {
async function resolveVersion (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 host = {
linux: 'x86_64-linux',
darwin: 'x86_64-macos',
win32: 'x86_64-windows'
}[platform] || platform
const index = await getJSON({ url: 'https://ziglang.org/download/index.json' })