Compare commits

...

92 Commits

Author SHA1 Message Date
Taiki Endo
bfecd3c66b Release 2.5.5 2023-03-08 11:45:13 +09:00
Taiki Endo
f1a94ab9f4 Update protoc@latest to 3.22.1 2023-03-08 11:44:25 +09:00
Taiki Endo
2e796d41df Update mdbook@latest to 0.4.28 2023-03-05 13:05:00 +09:00
Taiki Endo
ad40afb0c1 Release 2.5.4 2023-03-01 02:29:25 +09:00
Taiki Endo
83dc00c495 Update cargo-llvm-cov@latest to 0.5.11 2023-03-01 02:28:53 +09:00
Taiki Endo
f2466a4319 Update cargo-hack@latest to 0.5.28 2023-03-01 02:28:53 +09:00
Taiki Endo
29410ef0ac Release 2.5.3 2023-02-28 23:28:29 +09:00
Taiki Endo
e8c60492cd Update cargo-no-dev-deps@latest to 0.2.2 2023-02-28 23:28:10 +09:00
Taiki Endo
67aa8bcf8a Release 2.5.2 2023-02-27 13:22:20 +09:00
Taiki Endo
1bb76441d3 Update .clippy.toml 2023-02-27 13:21:44 +09:00
Taiki Endo
8c919c2041 Update cargo-tarpaulin@latest to 0.25.1 2023-02-27 11:32:05 +09:00
Taiki Endo
6dec0fcd4c Release 2.5.1 2023-02-25 19:18:03 +09:00
Taiki Endo
ef14bb365d Update zola@latest to 0.17.1 2023-02-25 12:05:39 +09:00
Taiki Endo
d3afca2ffc Release 2.5.0 2023-02-24 02:39:32 +09:00
Taiki Endo
11d418d698 Update changelog 2023-02-24 02:39:21 +09:00
Taiki Endo
93edea8666 Update shebang for bash scripts
In non-Linux systems such as BSDs, bash is not always in /bin.
2023-02-24 01:44:48 +09:00
Taiki Endo
af5165ce25 Update cargo-llvm-cov@latest to 0.5.10 2023-02-24 01:12:19 +09:00
Taiki Endo
2a60fd3151 Switch to composite action 2023-02-22 22:15:07 +09:00
Taiki Endo
0c4592b32a Release 2.4.4 2023-02-21 11:29:51 +09:00
Taiki Endo
005d3ec234 Update wasmtime@latest to 6.0.0 2023-02-21 11:27:28 +09:00
Taiki Endo
5d8239931a Release 2.4.3 2023-02-17 12:23:34 +09:00
Taiki Endo
43e49c2430 Update zola@latest to 0.17.0 2023-02-17 12:17:13 +09:00
Taiki Endo
70715d2909 Update protoc@latest to 3.22.0 2023-02-17 12:17:13 +09:00
Taiki Endo
396587837c Release 2.4.2 2023-02-14 12:11:39 +09:00
Taiki Endo
dac579fb5b Update mdbook@latest to 0.4.27 2023-02-14 12:07:02 +09:00
Taiki Endo
4dbb2933f9 Update dprint@latest to 0.34.5 2023-02-14 12:07:02 +09:00
Taiki Endo
7e43915f05 Release 2.4.1 2023-02-13 11:25:43 +09:00
Taiki Endo
fe6fb3761a Update cargo-binstall@latest to 0.20.1 2023-02-13 11:24:23 +09:00
Taiki Endo
05829426d5 Release 2.4.0 2023-02-11 21:07:55 +09:00
Taiki Endo
e27c460000 Update changelog 2023-02-11 21:07:41 +09:00
Marcin Puc
0184bd9177 Add support for zola (#71) 2023-02-11 20:30:05 +09:00
Taiki Endo
cb5553fad7 codegen: Handle prerelease 2023-02-11 04:08:40 +09:00
Taiki Endo
15af814db4 Use cargo-binstall fallback also if tool is available but specified version not available 2023-02-11 04:08:40 +09:00
Taiki Endo
d4ce367860 Update mdbook@latest to 0.4.26 2023-02-09 12:09:06 +09:00
Taiki Endo
416fcad992 Mark .github/.cspell/rust-dependencies.txt linguist-generated 2023-02-09 05:17:26 +09:00
Taiki Endo
9e1de916ab Fix install failures in edge cases 2023-02-08 15:28:23 +09:00
Taiki Endo
0340abb8d7 Update cspell dictionary 2023-02-08 02:05:43 +09:00
Orhun Parmaksız
b3c9f573b2 Add cargo-tarpaulin support (#65) 2023-02-08 02:03:46 +09:00
Taiki Endo
e1d5d01924 Pass --no-cache to apk even in CI 2023-02-07 22:16:25 +09:00
Taiki Endo
c5ba83b5c8 Exclude known words from "rust-dependencies" cspell dictionary 2023-02-07 21:53:59 +09:00
Taiki Endo
5737265abf Release 2.3.5 2023-02-05 02:43:48 +09:00
Taiki Endo
c889a9389c Update cross@latest to 0.2.5 2023-02-05 02:37:32 +09:00
Taiki Endo
979f068989 codegen: Tweak log message 2023-01-27 23:48:46 +09:00
Taiki Endo
d5486e05e3 Update cspell dictionary 2023-01-27 22:54:46 +09:00
Taiki Endo
5b93b202c8 Release 2.3.4 2023-01-26 11:13:25 +09:00
Taiki Endo
802862016d Update just@latest to 1.13.0 2023-01-26 11:12:06 +09:00
Taiki Endo
03a49bbd5a Update cargo-hack@latest to 0.5.27 2023-01-26 11:12:06 +09:00
Taiki Endo
52ecdcde33 Update cargo-no-dev-deps@latest to 0.2.1 2023-01-25 11:14:37 +09:00
Taiki Endo
e7e214ab4a Update cargo-minimal-versions@latest to 0.1.11 2023-01-25 11:14:37 +09:00
Taiki Endo
d1cb794dda Release 2.3.3 2023-01-21 12:06:39 +09:00
Taiki Endo
24a55875dc Update wasmtime@latest to 5.0.0 2023-01-21 11:03:50 +09:00
Taiki Endo
9fa9fafb73 Release 2.3.2 2023-01-20 10:27:59 +09:00
Taiki Endo
ad042ad7b1 Update just@latest to 1.12.0 2023-01-20 10:22:34 +09:00
Taiki Endo
a085553f57 Update cargo-no-dev-deps@latest to 0.2.0 2023-01-20 10:22:34 +09:00
Taiki Endo
06af96936d Update cspell dictionary 2023-01-19 01:57:13 +09:00
Taiki Endo
0b8b246f3d Set rust-related env vars for building codegen in CI 2023-01-18 22:10:38 +09:00
Taiki Endo
9b917368c2 clippy: Set avoid-breaking-exported-api = false 2023-01-18 21:59:47 +09:00
Taiki Endo
67f0979373 Release 2.3.1 2023-01-18 11:15:19 +09:00
Taiki Endo
e74b1e0d86 Update dprint@latest to 0.34.4 2023-01-18 11:14:22 +09:00
Taiki Endo
46d672f17d Update cargo-binstall@latest to 0.19.3 2023-01-18 11:14:22 +09:00
Taiki Endo
06dac1bb47 Release 2.3.0 2023-01-16 23:04:34 +09:00
Taiki Endo
a3609ab69a Tweak docs 2023-01-16 23:03:45 +09:00
Taiki Endo
8b9de1e094 Update changelog 2023-01-16 20:31:06 +09:00
Taiki Endo
2ed407fd17 codegen: Sort releases returned from GitHub API 2023-01-16 20:24:12 +09:00
Taiki Endo
ad8540ac77 Use cargo-binstall batching mode (#54) 2023-01-16 19:56:58 +09:00
Taiki Endo
b95ae1b223 Set CARGO_NET_RETRY and RUSTUP_MAX_RETRIES 2023-01-16 19:45:56 +09:00
Taiki Endo
c1300c3f7c Update cargo-binstall@latest to 0.19.2 2023-01-16 14:06:10 +09:00
Taiki Endo
bbd2d52c58 Update readme 2023-01-16 09:19:14 +09:00
Taiki Endo
ce26f7e3c8 Release 2.2.3 2023-01-16 09:14:31 +09:00
Taiki Endo
92ab599e22 Update cargo-llvm-cov@latest to 0.5.9 2023-01-16 09:13:46 +09:00
Taiki Endo
6a31ba8d6d Release 2.2.2 2023-01-15 23:53:06 +09:00
Taiki Endo
4b8b61e298 Fix info message 2023-01-15 21:38:36 +09:00
Taiki Endo
4269f7d620 codegen: Tweak retry 2023-01-15 21:05:37 +09:00
Taiki Endo
c92838b65e codegen: Format with rustfmt 2023-01-15 19:58:27 +09:00
Taiki Endo
f6e4dc6296 Improve retry on download failure 2023-01-15 19:55:57 +09:00
Taiki Endo
d538488fe5 Update cargo-llvm-cov@latest to 0.5.8 2023-01-15 19:48:54 +09:00
Taiki Endo
6e129b86d0 Add cache-cargo-install-action to related project list
https://github.com/taiki-e/cache-cargo-install-action
2023-01-15 18:38:24 +09:00
Taiki Endo
3b58ab42ed Tweak main.sh 2023-01-15 18:38:19 +09:00
Taiki Endo
38250d8ada Update CI config 2023-01-15 18:34:57 +09:00
Taiki Endo
d89f3d4042 Update tools/publish.sh 2023-01-15 18:33:24 +09:00
Taiki Endo
00f11cb267 Update cargo-nextest@latest to 0.9.49 2023-01-15 11:56:39 +09:00
Taiki Endo
8db8546a9c Add note about composite action 2023-01-14 00:02:59 +09:00
Taiki Endo
5fc2b23470 Tweak main.sh 2023-01-14 00:02:02 +09:00
Taiki Endo
aae39e2ce4 Set timeout-minutes in all jobs 2023-01-13 00:54:25 +09:00
Taiki Endo
54eee5470f Release 2.2.1 2023-01-12 23:35:47 +09:00
Taiki Endo
2411265c71 Tweak output 2023-01-12 23:13:17 +09:00
Taiki Endo
8066254c63 Update cargo-binstall@latest to 0.19.1 2023-01-12 23:13:10 +09:00
Taiki Endo
0feb352bd8 Update comments 2023-01-12 23:13:02 +09:00
Taiki Endo
9a9630c7b3 codegen: Fix retry on download 2023-01-12 23:12:45 +09:00
Taiki Endo
baf51dce12 codegen: Reject cases where any of binaries are missing 2023-01-12 23:12:20 +09:00
Taiki Endo
c096cea2cf codegen: Reject unknown fields in base manifest 2023-01-12 23:11:54 +09:00
Taiki Endo
cde5fb702d codegen: Fix handling of latest_only tool 2023-01-12 22:34:21 +09:00
35 changed files with 1394 additions and 315 deletions

5
.clippy.toml Normal file
View File

@@ -0,0 +1,5 @@
# Clippy configuration
# https://doc.rust-lang.org/nightly/clippy/lint_configuration.html
avoid-breaking-exported-api = false
disallowed-names = []

2
.gitattributes vendored
View File

@@ -1 +1,3 @@
* text=auto eol=lf
manifests/** linguist-generated
.github/.cspell/rust-dependencies.txt linguist-generated

View File

@@ -51,6 +51,7 @@ gnuspe
gnux
illumos
imac
loongarch
macabi
mipsel
mipsisa
@@ -78,38 +79,53 @@ watchos
xous
// Rust other
acqrel
alloc
bools
builtins
canonicalize
consts
deque
doctest
hasher
impls
inlateout
intrinsics
lateout
msrv
nand
nomem
nostack
peekable
punct
repr
rfind
rfold
rsplit
rustlib
seqcst
splitn
supertrait
supertraits
sysroot
toolchains
uninit
unsized
upcastable
// Other
connrefused
cygwin
dpkg
euxo
msys
noninteractive
noprofile
norc
nproc
objdump
pipefail
powerset
proto
readelf
tlsv

View File

@@ -3,7 +3,6 @@ bytecodealliance
coreutils
distro
doas
Dpkg
dprint
enablerepo
epel
@@ -19,6 +18,7 @@ nextest
protobuf
protoc
protocolbuffers
pwsh
quickinstall
rockylinux
rustwasm
@@ -26,4 +26,5 @@ shellcheck
shfmt
udeps
wasmtime
watchexec
xscale

View File

@@ -1,8 +1,4 @@
// This file is @generated by tidy.sh.
// It is not intended for manual editing.
anyhow
json
semver
serde
ureq

View File

@@ -13,13 +13,22 @@ on:
- cron: '0 1 * * *'
workflow_dispatch:
env:
CARGO_INCREMENTAL: 0
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_NET_RETRY: 10
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
RUSTFLAGS: -D warnings
RUSTUP_MAX_RETRIES: 10
defaults:
run:
shell: bash
jobs:
tidy:
uses: taiki-e/workflows/.github/workflows/tidy-rust.yml@main
uses: taiki-e/workflows/.github/workflows/tidy.yml@main
test:
strategy:
@@ -29,22 +38,23 @@ jobs:
- ubuntu-20.04
- ubuntu-22.04
tool:
# cargo-watch is supported by cargo-binstall (through quickinstall)
# cargo-watch/watchexec-cli is supported by cargo-binstall (through quickinstall)
# TODO: valgrind installation sometime hangs.
- cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov
- cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov,watchexec-cli,cargo-tarpaulin,zola
include:
# Note: Specifying the version of valgrind and cargo-binstall is not supported.
- os: ubuntu-20.04
tool: cargo-hack@0.5.24,cargo-llvm-cov@0.5.3,cargo-minimal-versions@0.1.8,cargo-no-dev-deps@0.1.0,parse-changelog@0.5.2,cargo-udeps@0.1.35,cargo-valgrind@2.1.0,cargo-deny@0.13.5,cross@0.2.4,dprint@0.34.1,just@1.9.0,nextest@0.9.11,protoc@3.21.12,shellcheck@0.9.0,shfmt@3.6.0,wasm-pack@0.10.3,wasmtime@4.0.0,mdbook@0.4.25,mdbook-linkcheck@0.7.7,cargo-watch@8.1.1,grcov@0.8.13
tool: cargo-hack@0.5.24,cargo-llvm-cov@0.5.3,cargo-minimal-versions@0.1.8,cargo-no-dev-deps@0.1.0,parse-changelog@0.5.2,cargo-udeps@0.1.35,cargo-valgrind@2.1.0,cargo-deny@0.13.5,cross@0.2.4,dprint@0.34.1,just@1.9.0,nextest@0.9.11,protoc@3.21.12,shellcheck@0.9.0,shfmt@3.6.0,wasm-pack@0.10.3,wasmtime@4.0.0,mdbook@0.4.25,mdbook-linkcheck@0.7.7,cargo-watch@8.1.1,grcov@0.8.13,watchexec-cli@1.20.5,cargo-tarpaulin@0.25.0,zola@0.16.1
- os: ubuntu-20.04
tool: cargo-hack@0.5,cargo-llvm-cov@0.5,cargo-minimal-versions@0.1,cargo-no-dev-deps@0.1,parse-changelog@0.5,cargo-udeps@0.1,cargo-valgrind@2.1,cargo-deny@0.13,cross@0.2,dprint@0.34,just@1.9,nextest@0.9,protoc@3.21,shellcheck@0.9,shfmt@3.5,wasm-pack@0.10,wasmtime@4.0,mdbook@0.4,mdbook-linkcheck@0.7,cargo-watch@8.1,grcov@0.8
tool: cargo-hack@0.5,cargo-llvm-cov@0.5,cargo-minimal-versions@0.1,cargo-no-dev-deps@0.1,parse-changelog@0.5,cargo-udeps@0.1,cargo-valgrind@2.1,cargo-deny@0.13,cross@0.2,dprint@0.34,just@1.9,nextest@0.9,protoc@3.21,shellcheck@0.9,shfmt@3.5,wasm-pack@0.10,wasmtime@4.0,mdbook@0.4,mdbook-linkcheck@0.7,cargo-watch@8.1,grcov@0.8,watchexec-cli@1.20,cargo-tarpaulin@0.25,zola@0.16
- os: ubuntu-20.04
tool: cargo-valgrind@2,just@1,protoc@3,shfmt@3,wasmtime@4,cargo-watch@8
tool: cargo-valgrind@2,just@1,protoc@3,shfmt@3,wasmtime@4,cargo-watch@8,watchexec-cli@1
- os: macos-11
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov,watchexec-cli,cargo-tarpaulin,zola
- os: windows-2019
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov,watchexec-cli,cargo-tarpaulin,zola
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps:
- uses: actions/checkout@v3
with:
@@ -54,6 +64,21 @@ jobs:
- uses: ./
with:
tool: ${{ matrix.tool }}
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
- name: Test bash
run: just --version; shfmt --version; protoc --version
shell: bash
- name: Test sh
run: just --version; shfmt --version; protoc --version
shell: sh
if: startsWith(matrix.os, 'ubuntu') || startsWith(matrix.os, 'macos')
- name: Test pwsh
run: just --version; shfmt --version; protoc --version
shell: pwsh
- name: Test powershell
run: just --version; shfmt --version; protoc --version
shell: powershell
if: startsWith(matrix.os, 'windows')
# We use the version output to check the version of binstall, but they
# several times change the version output format in the past so we need to
# check it with CI. (e.g., 0.14.0->0.16.0 update change it
@@ -76,21 +101,22 @@ jobs:
- rockylinux:8-minimal # glibc 2.28
tool:
# valgrind: installing snap to container is difficult...
- cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov
- cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov,watchexec-cli,cargo-tarpaulin
include:
- container: ubuntu:22.04 # glibc 2.35
# cargo-udeps depends on openssl 1.1
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov,watchexec-cli,cargo-tarpaulin,zola
- container: fedora:latest # glibc 2.36 (as of fedora 37)
# cargo-udeps depends on openssl 1.1
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov,watchexec-cli,cargo-tarpaulin,zola
- container: centos:7 # glibc 2.17
# cargo-udeps,protoc,valgrind,wasmtime,mdbook-linkcheck,cargo-watch don't provide prebuilt binaries for musl host.
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,shellcheck,shfmt,wasm-pack,mdbook,cargo-binstall,grcov
# cargo-udeps,protoc,valgrind,wasmtime,mdbook-linkcheck,cargo-watch,zola don't provide prebuilt binaries for musl or old glibc host.
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,shellcheck,shfmt,wasm-pack,mdbook,cargo-binstall,grcov,watchexec-cli,cargo-tarpaulin
- container: alpine:latest # musl 1.2.3 (as of alpine 3.17)
# cargo-udeps,protoc,valgrind,wasmtime,mdbook-linkcheck,cargo-watch don't provide prebuilt binaries for musl host.
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,shellcheck,shfmt,wasm-pack,mdbook,cargo-binstall,grcov
# cargo-udeps,protoc,valgrind,wasmtime,mdbook-linkcheck,cargo-watch,zola don't provide prebuilt binaries for musl host.
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,shellcheck,shfmt,wasm-pack,mdbook,cargo-binstall,grcov,watchexec-cli,cargo-tarpaulin
runs-on: ubuntu-latest
timeout-minutes: 60
container: ${{ matrix.container }}
steps:
- name: Install requirements (ubuntu/debian)
@@ -118,7 +144,7 @@ jobs:
- name: Install requirements (alpine)
run: |
set -eux
apk add bash cargo
apk --no-cache add bash cargo
shell: sh
if: startsWith(matrix.container, 'alpine')
- uses: actions/checkout@v3
@@ -132,6 +158,7 @@ jobs:
manifest:
runs-on: ubuntu-latest
timeout-minutes: 60
permissions:
contents: write # TODO test
pull-requests: write
@@ -142,6 +169,8 @@ jobs:
- name: Install Rust
run: rustup toolchain add nightly --no-self-update && rustup default nightly
- run: tools/manifest.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: git add -N . && git diff --exit-code
if: github.repository_owner != 'taiki-e' || github.event_name != 'schedule' && !(github.event_name == 'push' && github.ref == 'refs/heads/main')
- id: diff

View File

@@ -17,6 +17,7 @@ jobs:
create-release:
if: github.repository_owner == 'taiki-e'
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v3
with:

View File

@@ -10,6 +10,124 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased]
## [2.5.5] - 2023-03-08
- Update `protoc@latest` to 3.22.1.
- Update `mdbook@latest` to 0.4.28.
## [2.5.4] - 2023-02-28
- Update `cargo-llvm-cov@latest` to 0.5.11.
- Update `cargo-hack@latest` to 0.5.28.
## [2.5.3] - 2023-02-28
- Update `cargo-no-dev-deps@latest` to 0.2.2.
## [2.5.2] - 2023-02-27
- Update `cargo-tarpaulin@latest` to 0.25.1.
## [2.5.1] - 2023-02-25
- Update `zola@latest` to 0.17.1.
## [2.5.0] - 2023-02-23
- Update `cargo-llvm-cov@latest` to 0.5.10.
- Switch to composite action. ([#58](https://github.com/taiki-e/install-action/pull/58))
## [2.4.4] - 2023-02-21
- Update `wasmtime@latest` to 6.0.0.
## [2.4.3] - 2023-02-17
- Update `zola@latest` to 0.17.0.
- Update `protoc@latest` to 3.22.0.
## [2.4.2] - 2023-02-14
- Update `mdbook@latest` to 0.4.27.
- Update `dprint@latest` to 0.34.5.
## [2.4.1] - 2023-02-13
- Update `cargo-binstall@latest` to 0.20.1.
## [2.4.0] - 2023-02-11
- Support `cargo-tarpaulin`. ([#65](https://github.com/taiki-e/install-action/pull/65), thanks @orhun)
- Support `zola`. ([#71](https://github.com/taiki-e/install-action/pull/71), thanks @tranzystorek-io)
- Update `mdbook@latest` to 0.4.26.
- Allow installing cargo subcommands without `cargo`.
- Fix issue where installed non-Rust related binaries cannot be found from PowerShell on Windows. Rust-related binaries, Unix shells such as bash, and non-Windows OS are not affected by this issue.
- Fix install failure of Rust-related binaries when `$CARGO_HOME/bin` exists, but is not included in the `$PATH`. This failure occurred in slightly odd cases, such as multiple installations of rust in different directories.
- Use cargo-binstall fallback also if tool is available but the specified version not available. ([#68](https://github.com/taiki-e/install-action/pull/68))
## [2.3.5] - 2023-02-04
- Update `cross@latest` to 0.2.5.
## [2.3.4] - 2023-01-26
- Update `just@latest` to 1.13.0.
- Update `cargo-hack@latest` to 0.5.27.
- Update `cargo-no-dev-deps@latest` to 0.2.1.
- Update `cargo-minimal-versions@latest` to 0.1.11.
## [2.3.3] - 2023-01-21
- Update `wasmtime@latest` to 5.0.0.
## [2.3.2] - 2023-01-20
- Update `just@latest` to 1.12.0.
- Update `cargo-no-dev-deps@latest` to 0.2.0.
## [2.3.1] - 2023-01-18
- Update `dprint@latest` to 0.34.4.
- Update `cargo-binstall@latest` to 0.19.3.
## [2.3.0] - 2023-01-16
- Update `cargo-binstall@latest` to 0.19.2.
- Use `cargo-binstall` batching mode (#54)
## [2.2.3] - 2023-01-16
- Update `cargo-llvm-cov@latest` to 0.5.9.
## [2.2.2] - 2023-01-15
- Update `cargo-llvm-cov@latest` to 0.5.8.
- Update `cargo-nextest@latest` to 0.9.49.
## [2.2.1] - 2023-01-12
- Update `cargo-binstall@latest` to 0.19.1.
- Support `cargo-binstall` on aarch64 Windows.
## [2.2.0] - 2023-01-11
- Update `cargo-llvm-cov@latest` to 0.5.7.
@@ -543,7 +661,27 @@ Note: This release is considered a breaking change because installing on version
Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.2.0...HEAD
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.5.5...HEAD
[2.5.5]: https://github.com/taiki-e/install-action/compare/v2.5.4...v2.5.5
[2.5.4]: https://github.com/taiki-e/install-action/compare/v2.5.3...v2.5.4
[2.5.3]: https://github.com/taiki-e/install-action/compare/v2.5.2...v2.5.3
[2.5.2]: https://github.com/taiki-e/install-action/compare/v2.5.1...v2.5.2
[2.5.1]: https://github.com/taiki-e/install-action/compare/v2.5.0...v2.5.1
[2.5.0]: https://github.com/taiki-e/install-action/compare/v2.4.4...v2.5.0
[2.4.4]: https://github.com/taiki-e/install-action/compare/v2.4.3...v2.4.4
[2.4.3]: https://github.com/taiki-e/install-action/compare/v2.4.2...v2.4.3
[2.4.2]: https://github.com/taiki-e/install-action/compare/v2.4.1...v2.4.2
[2.4.1]: https://github.com/taiki-e/install-action/compare/v2.4.0...v2.4.1
[2.4.0]: https://github.com/taiki-e/install-action/compare/v2.3.5...v2.4.0
[2.3.5]: https://github.com/taiki-e/install-action/compare/v2.3.4...v2.3.5
[2.3.4]: https://github.com/taiki-e/install-action/compare/v2.3.3...v2.3.4
[2.3.3]: https://github.com/taiki-e/install-action/compare/v2.3.2...v2.3.3
[2.3.2]: https://github.com/taiki-e/install-action/compare/v2.3.1...v2.3.2
[2.3.1]: https://github.com/taiki-e/install-action/compare/v2.3.0...v2.3.1
[2.3.0]: https://github.com/taiki-e/install-action/compare/v2.2.3...v2.3.0
[2.2.3]: https://github.com/taiki-e/install-action/compare/v2.2.2...v2.2.3
[2.2.2]: https://github.com/taiki-e/install-action/compare/v2.2.1...v2.2.2
[2.2.1]: https://github.com/taiki-e/install-action/compare/v2.2.0...v2.2.1
[2.2.0]: https://github.com/taiki-e/install-action/compare/v2.1.4...v2.2.0
[2.1.4]: https://github.com/taiki-e/install-action/compare/v2.1.3...v2.1.4
[2.1.3]: https://github.com/taiki-e/install-action/compare/v2.1.2...v2.1.3

View File

@@ -25,6 +25,8 @@ GitHub Action for installing development tools (mainly from GitHub Releases).
### Example workflow
To install the latest version:
```yaml
- uses: taiki-e/install-action@v2
with:
@@ -83,6 +85,7 @@ https://spdx.org/licenses
| [**cargo-hack**](https://github.com/taiki-e/cargo-hack) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/taiki-e/cargo-hack/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/taiki-e/cargo-hack/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-hack/blob/HEAD/LICENSE-MIT) |
| [**cargo-llvm-cov**](https://github.com/taiki-e/cargo-llvm-cov) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/taiki-e/cargo-llvm-cov/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/taiki-e/cargo-llvm-cov/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-llvm-cov/blob/HEAD/LICENSE-MIT) |
| [**cargo-minimal-versions**](https://github.com/taiki-e/cargo-minimal-versions) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/taiki-e/cargo-minimal-versions/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/taiki-e/cargo-minimal-versions/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-minimal-versions/blob/HEAD/LICENSE-MIT) |
| [**cargo-tarpaulin**](https://github.com/xd009642/tarpaulin) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/xd009642/tarpaulin/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/xd009642/tarpaulin/blob/develop/LICENSE-APACHE) OR [MIT](https://github.com/xd009642/tarpaulin/blob/develop/LICENSE-MIT) |
| [**cargo-no-dev-deps**](https://github.com/taiki-e/cargo-no-dev-deps) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/taiki-e/cargo-no-dev-deps/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/taiki-e/cargo-no-dev-deps/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-no-dev-deps/blob/HEAD/LICENSE-MIT) |
| [**cargo-udeps**](https://github.com/est31/cargo-udeps) | `$CARGO_HOME/bin` | [GitHub Release](https://github.com/est31/cargo-udeps/releases) | Linux, macOS, Windows | [Apache-2.0 OR MIT](https://github.com/est31/cargo-udeps/blob/master/LICENSE) |
| [**cargo-valgrind**](https://github.com/jfrimmel/cargo-valgrind) | `$CARGO_HOME/bin` | [GitHub Release](https://github.com/jfrimmel/cargo-valgrind/releases) | Linux, macOS, Windows | [MIT](https://github.com/jfrimmel/cargo-valgrind/blob/master/LICENSE-MIT) or [Apache-2.0](https://github.com/jfrimmel/cargo-valgrind/blob/master/LICENSE-APACHE) |
@@ -100,6 +103,7 @@ https://spdx.org/licenses
| [**valgrind**](https://valgrind.org) | `/snap/bin` | [snap](https://snapcraft.io/install/valgrind/ubuntu) | Linux | [GPL-2.0-or-later](https://valgrind.org/docs/manual/license.gpl.html) |
| [**wasm-pack**](https://github.com/rustwasm/wasm-pack) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rustwasm/wasm-pack/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/rustwasm/wasm-pack/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/rustwasm/wasm-pack/blob/HEAD/LICENSE-MIT) |
| [**wasmtime**](https://github.com/bytecodealliance/wasmtime) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/bytecodealliance/wasmtime/releases) | Linux, macOS, Windows | [Apache-2.0 WITH LLVM-exception](https://github.com/bytecodealliance/wasmtime/blob/HEAD/LICENSE) |
| [**zola**](https://github.com/getzola/zola) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/getzola/zola/releases) | Linux, macOS, Windows | [MIT](https://github.com/getzola/zola/blob/master/LICENSE) |
If `$CARGO_HOME/bin` is not available, Rust-related binaries will be installed to `$HOME/.cargo/bin`.<br>
If `$HOME/.cargo/bin` is not available, Rust-related binaries will be installed to `/usr/local/bin`.<br>
@@ -118,17 +122,19 @@ See the linked documentation for information on security when installed using [s
## Compatibility
This action has been tested for GitHub-hosted runners (Ubuntu, macOS, Windows) and containers (Ubuntu, Debian, Alpine, Fedora, CentOS, Rocky).
To use this action in self-hosted runners or in containers, you will need to install at least the following:
To use this action in self-hosted runners or in containers, at least the following tools are required:
- bash
- cargo (if you install cargo subcommands or use cargo-binstall fallback)
- cargo (if you use cargo-binstall fallback)
## Related Projects
- [cache-cargo-install-action]: GitHub Action for `cargo install` with cache.
- [create-gh-release-action]: GitHub Action for creating GitHub Releases based on changelog.
- [upload-rust-binary-action]: GitHub Action for building and uploading Rust binary to GitHub Releases.
- [setup-cross-toolchain-action]: GitHub Action for setup toolchains for cross compilation and cross testing for Rust.
[cache-cargo-install-action]: https://github.com/taiki-e/cache-cargo-install-action
[cargo-binstall]: https://github.com/cargo-bins/cargo-binstall
[create-gh-release-action]: https://github.com/taiki-e/create-gh-release-action
[setup-cross-toolchain-action]: https://github.com/taiki-e/setup-cross-toolchain-action

View File

@@ -11,6 +11,14 @@ inputs:
required: false
default: 'true'
# Note:
# - inputs.* should be manually mapped to INPUT_* due to https://github.com/actions/runner/issues/665
# - Use GITHUB_*/RUNNER_* instead of github.*/runner.* due to https://github.com/actions/runner/issues/2185
runs:
using: node16
main: main.js
using: composite
steps:
- run: bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh"
shell: bash
env:
INPUT_TOOL: ${{ inputs.tool }}
INPUT_CHECKSUM: ${{ inputs.checksum }}

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -euxo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/..

16
main.js
View File

@@ -1,16 +0,0 @@
const { execFileSync } = require('child_process');
function main() {
try {
execFileSync(
'bash',
['--noprofile', '--norc', `${__dirname}/main.sh`],
{ stdio: 'inherit' }
);
} catch (e) {
console.log(`::error::${e.message}`);
process.exit(1);
}
}
main();

175
main.sh
View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
@@ -11,7 +11,7 @@ x() {
)
}
retry() {
for i in {1..5}; do
for i in {1..10}; do
if "$@"; then
return 0
else
@@ -62,7 +62,7 @@ download_and_extract() {
bin_dir="${HOME}/.install-action/bin"
if [[ ! -d "${bin_dir}" ]]; then
mkdir -p "${bin_dir}"
echo "${bin_dir}" >>"${GITHUB_PATH}"
canonicalize_windows_path "${bin_dir}" >>"${GITHUB_PATH}"
export PATH="${PATH}:${bin_dir}"
fi
fi
@@ -137,17 +137,15 @@ read_manifest() {
local manifest
manifest=$(jq -r ".\"${version}\"" "${manifest_dir}/${tool}.json")
if [[ "${manifest}" == "null" ]]; then
bail "version '${version}' for ${tool} is not supported"
download_info="null"
return 0
fi
local exact_version
exact_version=$(jq <<<"${manifest}" -r '.version')
if [[ "${exact_version}" == "null" ]]; then
exact_version="${version}"
else
manifest=$(jq -r ".\"${exact_version}\"" "${manifest_dir}/${tool}.json")
fi
local download_info
local host_platform
case "${host_os}" in
linux)
# Static-linked binaries compiled for linux-musl will also work on linux-gnu systems and are
@@ -191,6 +189,10 @@ read_manifest() {
;;
*) bail "unsupported OS type '${host_os}' for ${tool}" ;;
esac
}
read_download_info() {
local tool="$1"
local version="$2"
if [[ "${download_info}" == "null" ]]; then
bail "${tool}@${version} for '${host_os}' is not supported"
fi
@@ -218,6 +220,10 @@ read_manifest() {
}
download_from_manifest() {
read_manifest "$@"
download_from_download_info "$@"
}
download_from_download_info() {
read_download_info "$@"
download_and_extract "${url}" "${checksum}" "${bin_dir}" "${bin_in_archive}"
}
install_cargo_binstall() {
@@ -226,10 +232,10 @@ install_cargo_binstall() {
local install_binstall='1'
if [[ -f "${cargo_bin}/cargo-binstall${exe}" ]]; then
if [[ "$(cargo binstall -V)" == "${binstall_version}" ]]; then
info "cargo-binstall already installed on in ${cargo_bin}/cargo-binstall${exe}"
info "cargo-binstall already installed at ${cargo_bin}/cargo-binstall${exe}"
install_binstall=''
else
info "cargo-binstall already installed on in ${cargo_bin}/cargo-binstall${exe}, but is not compatible version with install-action, upgrading"
info "cargo-binstall already installed at ${cargo_bin}/cargo-binstall${exe}, but is not compatible version with install-action, upgrading"
rm "${cargo_bin}/cargo-binstall${exe}"
fi
fi
@@ -241,22 +247,6 @@ install_cargo_binstall() {
x cargo binstall -V
fi
}
cargo_binstall() {
local tool="$1"
local version="$2"
info "install-action does not support ${tool}, fallback to cargo-binstall"
install_cargo_binstall
# By default, cargo-binstall enforce downloads over secure transports only.
# As a result, http will be disabled, and it will also set
# min tls version to be 1.2
case "${version}" in
latest) cargo binstall --force --no-confirm "${tool}" ;;
*) cargo binstall --force --no-confirm --version "${version}" "${tool}" ;;
esac
}
apt_update() {
if type -P sudo &>/dev/null; then
retry sudo apt-get -o Acquire::Retries=10 -qq update
@@ -291,9 +281,9 @@ snap_install() {
}
apk_install() {
if type -P doas &>/dev/null; then
doas apk add "$@"
doas apk --no-cache add "$@"
else
apk add "$@"
apk --no-cache add "$@"
fi
}
dnf_install() {
@@ -310,6 +300,17 @@ sys_install() {
fedora) dnf_install "$@" ;;
esac
}
canonicalize_windows_path() {
case "${host_os}" in
windows) sed <<<"$1" 's/^\/c\//C:\\/' ;;
*) echo "$1" ;;
esac
}
# cargo-binstall may call `cargo install` on their fallback: https://github.com/taiki-e/install-action/pull/54#issuecomment-1383140833
# cross calls rustup on `cross --version` if the current directly is cargo workspace.
export CARGO_NET_RETRY=10
export RUSTUP_MAX_RETRIES=10
if [[ $# -gt 0 ]]; then
bail "invalid argument '$1'"
@@ -324,6 +325,11 @@ tools=()
if [[ -n "${tool}" ]]; then
while read -rd,; do tools+=("${REPLY}"); done <<<"${tool},"
fi
if [[ ${#tools[@]} -eq 0 ]]; then
warn "no tool specified; this could be caused by a dependabot bug where @<tool_name> tags on this action are replaced by @<version> tags"
# Exit with 0 for backward compatibility, we want to reject it in the next major release.
exit 0
fi
enable_checksum="${INPUT_CHECKSUM:-}"
case "${enable_checksum}" in
@@ -333,33 +339,16 @@ case "${enable_checksum}" in
esac
# Refs: https://github.com/rust-lang/rustup/blob/HEAD/rustup-init.sh
case "$(uname -m)" in
aarch64 | arm64) host_arch="aarch64" ;;
xscale | arm | armv6l | armv7l | armv8l)
# Ignore arm for now, as we need to consider the version and whether hard-float is supported.
# https://github.com/rust-lang/rustup/pull/593
# https://github.com/cross-rs/cross/pull/1018
# Does it seem only armv7l is supported?
# https://github.com/actions/runner/blob/6b9e8a6be411a6e63d5ccaf3c47e7b7622c5ec49/src/Misc/externals.sh#L174
bail "32-bit ARM runner is not supported yet by this action"
;;
# GitHub Actions Runner supports Linux (x86_64, aarch64, arm), Windows (x86_64, aarch64),
# and macOS (x86_64, aarch64).
# https://github.com/actions/runner
# https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#supported-architectures-and-operating-systems-for-self-hosted-runners
# So we can assume x86_64 unless it is aarch64 or arm.
*) host_arch="x86_64" ;;
esac
base_distro=""
exe=""
case "$(uname -s)" in
Linux)
host_os=linux
host_env="gnu"
ldd_version=$(ldd --version 2>&1 || true)
if grep <<<"${ldd_version}" -q 'musl'; then
host_env="musl"
else
host_env="gnu"
host_glibc_version=$(grep <<<"${ldd_version}" -E "GLIBC|GNU libc" | sed "s/.* //g")
fi
if grep -q '^ID_LIKE=' /etc/os-release; then
@@ -397,10 +386,31 @@ case "$(uname -s)" in
;;
*) bail "unrecognized OS type '$(uname -s)'" ;;
esac
case "$(uname -m)" in
aarch64 | arm64) host_arch="aarch64" ;;
xscale | arm | armv6l | armv7l | armv8l)
# Ignore arm for now, as we need to consider the version and whether hard-float is supported.
# https://github.com/rust-lang/rustup/pull/593
# https://github.com/cross-rs/cross/pull/1018
# Does it seem only armv7l is supported?
# https://github.com/actions/runner/blob/caec043085990710070108f375cd0aeab45e1017/src/Misc/externals.sh#L174
bail "32-bit ARM runner is not supported yet by this action"
;;
# GitHub Actions Runner supports Linux (x86_64, aarch64, arm), Windows (x86_64, aarch64),
# and macOS (x86_64, aarch64).
# https://github.com/actions/runner
# https://github.com/actions/runner/blob/caec043085990710070108f375cd0aeab45e1017/.github/workflows/build.yml#L21
# https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#supported-architectures-and-operating-systems-for-self-hosted-runners
# So we can assume x86_64 unless it is aarch64 or arm.
*) host_arch="x86_64" ;;
esac
tmp_dir="${HOME}/.install-action/tmp"
cargo_bin="${CARGO_HOME:-"${HOME}/.cargo"}/bin"
if [[ ! -d "${cargo_bin}" ]]; then
# If $CARGO_HOME does not exist, or cargo installed outside of $CARGO_HOME/bin
# is used ($CARGO_HOME/bin is most likely not included in the PATH), fallback to
# /usr/local/bin or $HOME/.install-action/bin.
if [[ ! -d "${cargo_bin}" ]] || [[ "${host_os}" != "windows" ]] && [[ "$(type -P cargo || true)" != "${cargo_bin}/cargo${exe}" ]]; then
cargo_bin=/usr/local/bin
fi
@@ -419,36 +429,32 @@ if ! type -P jq &>/dev/null || ! type -P curl &>/dev/null || ! type -P tar &>/de
esac
fi
if [[ ${#tools[@]} -eq 0 ]]; then
warn "no tool specified; this could be caused by a dependabot bug where @<tool_name> tags on this action are replaced by @<version> tags"
# Exit with 0 for backward compatibility, we want to reject it in the next major release.
exit 0
fi
unsupported_tools=()
for tool in "${tools[@]}"; do
if [[ "${tool}" == *"@"* ]]; then
version="${tool#*@}"
tool="${tool%@*}"
if [[ ! "${version}" =~ ^([1-9][0-9]*(\.[0-9]+(\.[0-9]+)?)?|0\.[1-9][0-9]*(\.[0-9]+)?|^0\.0\.[0-9]+)$|^latest$ ]]; then
if [[ ! "${version}" =~ ^([1-9][0-9]*(\.[0-9]+(\.[0-9]+)?)?|0\.[1-9][0-9]*(\.[0-9]+)?|^0\.0\.[0-9]+)(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$|^latest$ ]]; then
bail "install-action does not support semver operators"
bail "install-action does not support semver operators: '${version}'"
fi
bail "install-action v2 does not support semver pre-release and build-metadata; please submit an issue if you need these supports again"
bail "install-action v2 does not support semver pre-release and build-metadata; please submit an issue if you need these supports again: '${version}'"
fi
else
version="latest"
fi
tool="${tool%@*}"
info "installing ${tool}@${version}"
case "${tool}" in
protoc)
info "installing ${tool}@${version}"
read_manifest "protoc" "${version}"
read_download_info "protoc" "${version}"
# Copying files to /usr/local/include requires sudo, so do not use it.
bin_dir="${HOME}/.install-action/bin"
include_dir="${HOME}/.install-action/include"
if [[ ! -d "${bin_dir}" ]]; then
mkdir -p "${bin_dir}"
mkdir -p "${include_dir}"
echo "${bin_dir}" >>"${GITHUB_PATH}"
canonicalize_windows_path "${bin_dir}" >>"${GITHUB_PATH}"
export PATH="${PATH}:${bin_dir}"
fi
if ! type -P unzip &>/dev/null; then
@@ -464,9 +470,7 @@ for tool in "${tools[@]}"; do
mv "bin/protoc${exe}" "${bin_dir}/"
mkdir -p "${include_dir}/"
cp -r include/. "${include_dir}/"
case "${host_os}" in
windows) bin_dir=$(sed <<<"${bin_dir}" 's/^\/c\//C:\\/') ;;
esac
bin_dir=$(canonicalize_windows_path "${bin_dir}")
if [[ -z "${PROTOC:-}" ]]; then
info "setting PROTOC environment variable"
echo "PROTOC=${bin_dir}/protoc${exe}" >>"${GITHUB_ENV}"
@@ -475,6 +479,7 @@ for tool in "${tools[@]}"; do
rm -rf "${tmp_dir}"
;;
valgrind)
info "installing ${tool}@${version}"
case "${version}" in
latest) ;;
*) warn "specifying the version of ${tool} is not supported yet by this action" ;;
@@ -491,6 +496,7 @@ for tool in "${tools[@]}"; do
snap_install valgrind --classic
;;
cargo-binstall)
info "installing ${tool}@${version}"
case "${version}" in
latest) ;;
*) warn "specifying the version of ${tool} is not supported by this action" ;;
@@ -507,10 +513,26 @@ for tool in "${tools[@]}"; do
# Use cargo-binstall fallback if tool is not available.
if [[ ! -f "${manifest_dir}/${tool}.json" ]]; then
cargo_binstall "${tool}" "${version}"
case "${version}" in
latest) unsupported_tools+=("${tool}") ;;
*) unsupported_tools+=("${tool}@${version}") ;;
esac
continue
fi
# Use cargo-binstall fallback if tool is available but the specified version not available.
read_manifest "${tool}" "${version}"
if [[ "${download_info}" == "null" ]]; then
warn "${tool}@${version} for '${host_os}' is not supported; fallback to cargo-binstall"
case "${version}" in
latest) unsupported_tools+=("${tool}") ;;
*) unsupported_tools+=("${tool}@${version}") ;;
esac
continue
fi
info "installing ${tool}@${version}"
# Pre-install
case "${tool}" in
shellcheck)
@@ -524,16 +546,39 @@ for tool in "${tools[@]}"; do
;;
esac
download_from_manifest "${tool}" "${version}"
download_from_download_info "${tool}" "${version}"
;;
esac
info "${tool} installed at $(type -P "${tool}${exe}")"
case "${tool}" in
cargo-udeps) x cargo udeps --help | head -1 ;; # cargo-udeps v0.1.30 does not support --version option
cargo-valgrind) x cargo valgrind --help ;; # cargo-valgrind v2.1.0 does not support --version option
cargo-*) x cargo "${tool#cargo-}" --version ;;
cargo-*)
if type -P cargo &>/dev/null; then
case "${tool}" in
cargo-udeps) x cargo udeps --help | head -1 ;; # cargo-udeps v0.1.30 does not support --version option
cargo-valgrind) x cargo valgrind --help ;; # cargo-valgrind v2.1.0 does not support --version option
*) x cargo "${tool#cargo-}" --version ;;
esac
else
case "${tool}" in
cargo-udeps) x "${tool}" udeps --help | head -1 ;; # cargo-udeps v0.1.30 does not support --version option
cargo-valgrind) x "${tool}" valgrind --help ;; # cargo-valgrind v2.1.0 does not support --version option
*) x "${tool}" "${tool#cargo-}" --version ;;
esac
fi
;;
*) x "${tool}" --version ;;
esac
echo
done
if [[ ${#unsupported_tools[@]} -gt 0 ]]; then
IFS=$','
info "install-action does not support ${unsupported_tools[*]}; fallback to cargo-binstall"
IFS=$'\n\t'
install_cargo_binstall
# By default, cargo-binstall enforce downloads over secure transports only.
# As a result, http will be disabled, and it will also set
# min tls version to be 1.2
cargo binstall --force --no-confirm "${unsupported_tools[@]}"
fi

View File

@@ -14,26 +14,32 @@
},
"aarch64_macos": {
"url": "https://github.com/cargo-bins/cargo-binstall/releases/download/v${version}/cargo-binstall-aarch64-apple-darwin.zip"
},
"aarch64_windows": {
"url": "https://github.com/cargo-bins/cargo-binstall/releases/download/v${version}/cargo-binstall-aarch64-pc-windows-msvc.zip"
}
},
"latest": {
"version": "0.18.1"
"version": "0.20.1"
},
"0.18.1": {
"0.20.1": {
"x86_64_linux_musl": {
"checksum": "ef05f04e951665b617fe0796ec72e5dc51e8724ee0b09a0da129fa24162369a0"
"checksum": "4729eea4277f0cfb72dd983984ef7b3938f0af5f0e256ca6e6b90c6177decbb2"
},
"x86_64_macos": {
"checksum": "291ad8f69e3f31a620c17a68cb456f64ab736947a76c57ffcc6f8602a09b4cb5"
"checksum": "8b057687f4e367bd51c2feb7f9473d2fe50fa54273ec9ae61e4e0238044f4761"
},
"x86_64_windows": {
"checksum": "bfc078cb22626bb80e1bb23a3cc74f4362c1326ec3f3dfc1cc46e1bd13528906"
"checksum": "467b0abcabe9c0456f721d108c90b53ea050d121f7c9ae8b23a048d0f55bad16"
},
"aarch64_linux_musl": {
"checksum": "d26b5bbe14bbf7bd0f5fdd5b843f7f6df2c75d01168d42909932a422f17a4d5b"
"checksum": "8f7b6f899de74110bf7426ca9d579d4981c67a13ada64907e7095a0cd1b3f116"
},
"aarch64_macos": {
"checksum": "9ea261b7617bf6161447aa42b8e8979a7369aed3e5cef6b3774bec55fa4c70b6"
"checksum": "05a1cb0a1c779263f0173e351cc5e6aab0dfc49a7c1fa5152422c4e9d16b13c0"
},
"aarch64_windows": {
"checksum": "39e011c1e13b0f510c8c729de4bc4c93984f88c4d30cfa975e9672320ac7bd8a"
}
}
}

View File

@@ -1,10 +1,62 @@
{
"template": null,
"latest": {
"version": "0.5.26"
"version": "0.5.28"
},
"0.5": {
"version": "0.5.26"
"version": "0.5.28"
},
"0.5.28": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-x86_64-unknown-linux-musl.tar.gz",
"checksum": "87fb6dbb3e8272ec912f85b80366d0c4784fbcf0fe4e5981bf442efaf29dfe48"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-x86_64-apple-darwin.tar.gz",
"checksum": "e926dbb2921544835c5e38cd4e3ac3ef5be4b4ab752528f45d805b652df11ee4"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-x86_64-pc-windows-msvc.zip",
"checksum": "fb3df062d00fa8b7efa42e7a87ff997bd74fab2d83f1a476532b991b86065052"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-aarch64-unknown-linux-musl.tar.gz",
"checksum": "788308e4504a2676d97847fcc3993f47e8c93c4b43b46b8566b7b18cef01093f"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-aarch64-apple-darwin.tar.gz",
"checksum": "47c3390818b5f434a4697aeff0f71f4f69b7e7c2df946b74cce45e2bb0fc8dfd"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-aarch64-pc-windows-msvc.tar.gz",
"checksum": "c38da73a61a3600aed98d4ee00bce0c64bca4b4e2200112f55011872d420ead5"
}
},
"0.5.27": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.27/cargo-hack-x86_64-unknown-linux-musl.tar.gz",
"checksum": "a57248a36e5f95b88eda8fbbfd1f1170992abe7d126c7778aa2bd0508625592f"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.27/cargo-hack-x86_64-apple-darwin.tar.gz",
"checksum": "8c3f574813316c74f8f6871eea60af1e9f161ffe598e5ee49029929eb48dadd2"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.27/cargo-hack-x86_64-pc-windows-msvc.zip",
"checksum": "94c9f1e6c4d50fbf059f81e41c950583a108e78653ad0ec7a63fb7f1e213287b"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.27/cargo-hack-aarch64-unknown-linux-musl.tar.gz",
"checksum": "14deb7e0772fd0090ca3b04117f70cc10b20a370edf56b9255d24e84e755f7ac"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.27/cargo-hack-aarch64-apple-darwin.tar.gz",
"checksum": "c16b74d87ad26f5d8147bf3c0b17bd04c77b0bdeff836c7ae2c0a02959e761ed"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.27/cargo-hack-aarch64-pc-windows-msvc.tar.gz",
"checksum": "d2694b937d0c8fed71c1a0d3aabd9d9923a808d7196b15fd6d2eacde6755d57c"
}
},
"0.5.26": {
"x86_64_linux_musl": {

View File

@@ -17,10 +17,78 @@
}
},
"latest": {
"version": "0.5.7"
"version": "0.5.11"
},
"0.5": {
"version": "0.5.7"
"version": "0.5.11"
},
"0.5.11": {
"x86_64_linux_musl": {
"checksum": "3bd355e29b8e29d0b42f0c95ec487cd8e00ffa419ba65b83968740a641a46c1e"
},
"x86_64_macos": {
"checksum": "fe0e54836a367697a1b475440af2e7438e56caf6e548b88faa88edc221a515f7"
},
"x86_64_windows": {
"checksum": "528202a08b47ca579722db1949da2362a7f03fe0ea84a45d6679dc73d33603e9"
},
"aarch64_linux_musl": {
"checksum": "479f51fac713151f73ee0ab5d7cb1155646cde17903dfd7c526cd51253e99a4c"
},
"aarch64_macos": {
"checksum": "276d8fa70299ec9ae014cab905cdbd614d6bddfa6abcc414492091585dd55ab5"
}
},
"0.5.10": {
"x86_64_linux_musl": {
"checksum": "6ff31ac54aacc133c8d462c99b353dc31924aa9d0bc088ffdd8caa8cc7a14be4"
},
"x86_64_macos": {
"checksum": "a0924478bfd7a62711d8e9186470dfbb2a00ed22dba704bcd98f65dc41fd5ec7"
},
"x86_64_windows": {
"checksum": "3504347f7bdde8fa7c73e938c3cbce5397418799f9125ee3729e7168e387e5c0"
},
"aarch64_linux_musl": {
"checksum": "c395bb8834c779b1bb5a2e0d8302eeec1ef389ee980b47b21f4573181c769786"
},
"aarch64_macos": {
"checksum": "3935ac3f3e4af883f698d5e41dae9b3d248ce0a606b0520b739d5e967d78a10e"
}
},
"0.5.9": {
"x86_64_linux_musl": {
"checksum": "aadde3416c86403f72986f6c68001d2a46497ee8892f5affdb6b681213b586a2"
},
"x86_64_macos": {
"checksum": "7f7d17223237cc2ea65a4cd2d3ea0f0868711bd44dd56ee35839b41202b08685"
},
"x86_64_windows": {
"checksum": "efd986565868a0f1a255af9b913e77b95eb77b49940a93dde4e2c88874f2da39"
},
"aarch64_linux_musl": {
"checksum": "d6d539c038a07c12e04954af3357afadadf92ca3eacf5a155eb555b47d3b1ca4"
},
"aarch64_macos": {
"checksum": "4a023a922507d8a63424cb4b3d98c695fc2a66f8596b1e93b3a573afc2a384c5"
}
},
"0.5.8": {
"x86_64_linux_musl": {
"checksum": "78a2b85c54d2ecf76ad7309278901c2f4d6dcc611ef095844e8c6bd87b2d6a72"
},
"x86_64_macos": {
"checksum": "b1227359e4994f9ee96247bc2d47e36612f0b5344f9010f31ac965163a44e98c"
},
"x86_64_windows": {
"checksum": "d18f4da434596eb2c4aa2eaa95e00482130affa0a1710046c2d29c5c6edcb202"
},
"aarch64_linux_musl": {
"checksum": "11a3018bd91ff62806e7aa3413c5dc9af22ede870af4850866dbfe94cec0bd70"
},
"aarch64_macos": {
"checksum": "d4c67fac1dfa16cb130142bb572b310de856a8ec0494cc95351b5d82507793f2"
}
},
"0.5.7": {
"x86_64_linux_musl": {

View File

@@ -20,10 +20,30 @@
}
},
"latest": {
"version": "0.1.10"
"version": "0.1.11"
},
"0.1": {
"version": "0.1.10"
"version": "0.1.11"
},
"0.1.11": {
"x86_64_linux_musl": {
"checksum": "a7d3f6ba4cff8643b06e5a17f7967043f49a9144b7ae8d24d9542fc29ef1d4f2"
},
"x86_64_macos": {
"checksum": "466a1542dd5050009f11c976018738f38f4a5a481ff9b6b81f45d498eaa7efd0"
},
"x86_64_windows": {
"checksum": "59bd40b9562a7717b3746d1558de7f4751b8eac111d5850738ed1756e86cd414"
},
"aarch64_linux_musl": {
"checksum": "8e05290054d8554550c859f4f617245aa282d5c03c98b41ab00e19008a4cb081"
},
"aarch64_macos": {
"checksum": "181a142f2134775c9fb0fe9e465467a2f231893d26193972e312a968f0cf6588"
},
"aarch64_windows": {
"checksum": "d16116fc1a7472cef8ca2497c35559271653e76f6c8c2e8ff99e17dbab43fedf"
}
},
"0.1.10": {
"x86_64_linux_musl": {

View File

@@ -17,10 +17,27 @@
}
},
"latest": {
"version": "0.9.48"
"version": "0.9.49"
},
"0.9": {
"version": "0.9.48"
"version": "0.9.49"
},
"0.9.49": {
"x86_64_linux_gnu": {
"checksum": "5e19c5038c9940da4c47a9ae87f94b352dc98c2ab75b4b9aeae227cdff8440d2"
},
"x86_64_linux_musl": {
"checksum": "b09d7870bba824af1acfce505811951f0d81cf21b144490c6a3f34f59bcc182b"
},
"x86_64_macos": {
"checksum": "171bc696474667208587c74d9acce0250f3b2eac1faad39458e828a65c3f1c93"
},
"x86_64_windows": {
"checksum": "e9c532bb99c6e8e7edb65578f8c251fb3d87a3377bef1128763442dc7f088ebb"
},
"aarch64_linux_gnu": {
"checksum": "40ff81ed279e8a6d38ebe06ee75bba47785e8cb006267e35a15c157724e8e437"
}
},
"0.9.48": {
"x86_64_linux_gnu": {

View File

@@ -20,7 +20,70 @@
}
},
"latest": {
"version": "0.1.0"
"version": "0.2.2"
},
"0.2": {
"version": "0.2.2"
},
"0.2.2": {
"x86_64_linux_musl": {
"checksum": "06871d1243c12568ec1df16d1fe663413b86ac4b9993f208e8b683a9d6fb2c95"
},
"x86_64_macos": {
"checksum": "cd0570a4f415b30d31f48b12c8ccc1f3d197c9b552177a6402519cbcadde178b"
},
"x86_64_windows": {
"checksum": "88cd59cb5d1983778ade830346ab9901d1843ec9a3b098191f465cf31a9e6c47"
},
"aarch64_linux_musl": {
"checksum": "c9abe175390970139bf2afbc0fabab414c6b9549dee4216514513ce03643a8b7"
},
"aarch64_macos": {
"checksum": "10514a7ef5bfc29e6bfe2ffbb7130f80f30b7a2d63faadd2f5bddb36ec66d922"
},
"aarch64_windows": {
"checksum": "daa55434f81cc7711bef1f0f938540647bcde18458f429a0d03ccde617ff7144"
}
},
"0.2.1": {
"x86_64_linux_musl": {
"checksum": "decd3116739cb5bc956ea467864e18742b012e1b5368ef30e748bb23fba11d53"
},
"x86_64_macos": {
"checksum": "51972e477141bb41c88d1764ab8508611dec48cf8696377fcf934f65f10974bc"
},
"x86_64_windows": {
"checksum": "ab0292fd031d9b5c56c9a286164a142c3102c91c6ed60ad384d47179c79dc671"
},
"aarch64_linux_musl": {
"checksum": "3f79f885377e24d1adcb809fa1b134d9061ae84c6e8dd6541687fe24d508244b"
},
"aarch64_macos": {
"checksum": "8c1c7791a8aebe5250dc47a6a893ffcfef3e1f0248f78e82a5f072d49b6682c9"
},
"aarch64_windows": {
"checksum": "9325a564ff1db835449081feec4160d35e1c9793bebdb74b5175de6542988db8"
}
},
"0.2.0": {
"x86_64_linux_musl": {
"checksum": "446d7879e260d1a6170ee105c211255e0729d2db50d4d6378c60ebc19b26b056"
},
"x86_64_macos": {
"checksum": "7eb91033a29c16c02a67162858adcd592804b3f393b981a3f0e00c1c3ce7a29c"
},
"x86_64_windows": {
"checksum": "aa49deac93a3bf7d29809f5b687e1e39ad5dcb21d7f227c9690a400846dda144"
},
"aarch64_linux_musl": {
"checksum": "085738eb7b1377034c2f569bd6a6402499a1f2e71d5e89bccaa5d85303c32627"
},
"aarch64_macos": {
"checksum": "9854154d4f044807dd1ad06c9b2a94f93e0f8551f44c90cab1a955eb909457a2"
},
"aarch64_windows": {
"checksum": "8fafabd875be78457349ad2c860793d28a92efaf881de16fcda3e68bf9286baf"
}
},
"0.1": {
"version": "0.1.0"

79
manifests/cargo-tarpaulin.json generated Normal file
View File

@@ -0,0 +1,79 @@
{
"template": {
"x86_64_linux_musl": {
"url": "https://github.com/xd009642/tarpaulin/releases/download/${version}/cargo-tarpaulin-x86_64-unknown-linux-musl.tar.gz"
},
"x86_64_macos": {
"url": "https://github.com/xd009642/tarpaulin/releases/download/${version}/cargo-tarpaulin-x86_64-apple-darwin.tar.gz"
},
"x86_64_windows": {
"url": "https://github.com/xd009642/tarpaulin/releases/download/${version}/cargo-tarpaulin-x86_64-pc-windows-msvc.zip"
},
"aarch64_linux_musl": {
"url": "https://github.com/xd009642/tarpaulin/releases/download/${version}/cargo-tarpaulin-aarch64-unknown-linux-musl.tar.gz"
},
"aarch64_macos": {
"url": "https://github.com/xd009642/tarpaulin/releases/download/${version}/cargo-tarpaulin-aarch64-apple-darwin.tar.gz"
}
},
"latest": {
"version": "0.25.1"
},
"0.25": {
"version": "0.25.1"
},
"0.25.1": {
"x86_64_linux_musl": {
"checksum": "3af89e49bb98caf0ce01f87bbe4493dd4219e0e47aa577149fb3d9046b39965a"
},
"x86_64_macos": {
"checksum": "8db642f0bcc15e1ad76794addd4e82911b79c7721dbd01f6113aab6636a36d41"
},
"x86_64_windows": {
"checksum": "a82851fd9bb3520acfd33073b6a01363f80fb8fdcf5bb5334e288894d939d5b4"
},
"aarch64_linux_musl": {
"checksum": "87cd75d72a83009cb042e5a844f265e455ff8525dc77c0806a52a824702ba259"
},
"aarch64_macos": {
"checksum": "cf45f5f58432aaf861a7ea051e01d9f9f08d1548bcab331f3eeea29d0f82f060"
}
},
"0.25.0": {
"x86_64_linux_musl": {
"checksum": "e6ae2d11e684ee20f3860b1833de6fcb6ac44db5fc49a82a179bb969924870f3"
},
"x86_64_macos": {
"checksum": "94039bab671b054781df301191673c651bbe03cdf04d2f5cb4b7ff0055c0d08e"
},
"x86_64_windows": {
"checksum": "a3eb302b531a4b4efd3456e54b4a2f3c921aabcb9d54d81334fdef96f00170aa"
},
"aarch64_linux_musl": {
"checksum": "59d55dc3070ac2b297ad3695f9a73398392c2446678c616688635e0c4bec6574"
},
"aarch64_macos": {
"checksum": "65d03b2414b12f4fbfb1e1014ac42fa1deb9d91e69b29cd68952ae97722a1165"
}
},
"0.24": {
"version": "0.24.0"
},
"0.24.0": {
"x86_64_linux_musl": {
"checksum": "34969bccced3bdd7c34672011b7088beb3258bb27554294709171c394b04b40f"
},
"x86_64_macos": {
"checksum": "82f8dae075b18a2783616f35f03a999986ea6a7e0b581c7df97d74a68d172e76"
},
"x86_64_windows": {
"checksum": "26f639abbacf829a1e1c1ee966828c97c92606a132cd32b4e7e2c4406f6a5a36"
},
"aarch64_linux_musl": {
"checksum": "c06411dd38a095e3ce8f085aeaa6adc802094ea0a2c88fcf89a59e17f2a21597"
},
"aarch64_macos": {
"checksum": "e7ea6ff1c427ab262df5490eb15b49dfecf11ec557d90609de0898f94baba3b2"
}
}
}

18
manifests/cross.json generated
View File

@@ -1,10 +1,24 @@
{
"template": null,
"latest": {
"version": "0.2.4"
"version": "0.2.5"
},
"0.2": {
"version": "0.2.4"
"version": "0.2.5"
},
"0.2.5": {
"x86_64_linux_musl": {
"url": "https://github.com/cross-rs/cross/releases/download/v0.2.5/cross-x86_64-unknown-linux-musl.tar.gz",
"checksum": "a486cefa6cb486971b97be321ea9dfc2e90c1979550295314a368f53fab6d588"
},
"x86_64_macos": {
"url": "https://github.com/cross-rs/cross/releases/download/v0.2.5/cross-x86_64-apple-darwin.tar.gz",
"checksum": "84a664edbd5405efc985e9423804cc63d12e55691b9c7e9729355fdf7b9af015"
},
"x86_64_windows": {
"url": "https://github.com/cross-rs/cross/releases/download/v0.2.5/cross-x86_64-pc-windows-msvc.tar.gz",
"checksum": "3d4d6dbebf448b1f6856c662b2b342db0a7f6827e91ed88e2bf0e5ca00a30a81"
}
},
"0.2.4": {
"x86_64_linux_musl": {

55
manifests/dprint.json generated
View File

@@ -20,10 +20,61 @@
}
},
"latest": {
"version": "0.34.1"
"version": "0.34.5"
},
"0.34": {
"version": "0.34.1"
"version": "0.34.5"
},
"0.34.5": {
"x86_64_linux_musl": {
"checksum": "ad0296a8f4614a57e107df57e4f1f0f25ac32aeebdc201396160b5d046c26f55"
},
"x86_64_macos": {
"checksum": "1b23e31fe318115bfcecc4b8025b8146d2c1e160092629c930feeffd02d7e802"
},
"x86_64_windows": {
"checksum": "c98ecc413a40fd275d3d0aaaa245169926cdab27de17d732a9709dad9491fb3c"
},
"aarch64_linux_gnu": {
"checksum": "21dd3aa277e35184fb6c4ebca899b7c4ddbb2a25035edee75d0c927443d5f7e3"
},
"aarch64_macos": {
"checksum": "42bd63c2436bbcd058d7fb38bb540a4cdc576e109ce90f607103159dc5bbe1bf"
}
},
"0.34.4": {
"x86_64_linux_musl": {
"checksum": "088d41a1b13b4623148119af9a3c2f618794170484294c210d5acd64f94a5cc6"
},
"x86_64_macos": {
"checksum": "74a1751e335ffde8385fb415365290b81d26f3509007a0cead1f62f8bb6d0e37"
},
"x86_64_windows": {
"checksum": "209e751b693f1c076fbd3d204af01bcb5c10be3f9dd99106bd14145e98de01fc"
},
"aarch64_linux_gnu": {
"checksum": "80607da90a920448d4361ad4993f7c5e770f3e8b6062d492ac00dd2eb558f256"
},
"aarch64_macos": {
"checksum": "bb052fa8f0cc995c09563adb07fb554a5386c2ed1152ba97a76734ed6ac55c4e"
}
},
"0.34.2": {
"x86_64_linux_musl": {
"checksum": "aee0a7ee92e67b9cc3d8d215dce4e0985c1239a1e674fbb987ac9e719f969ac8"
},
"x86_64_macos": {
"checksum": "5127902352952d5d913aafa16b65a52d3dd7b10f2f0f8c984b2d177f427f6c73"
},
"x86_64_windows": {
"checksum": "fdcb3c85e11b90ad18f2a967af6a259c881adbd895582a675ab5fd87798d05b4"
},
"aarch64_linux_gnu": {
"checksum": "507541fb2580113e2933ea34c5afe28bfb82cfb61650fa05827dd8c9981242da"
},
"aarch64_macos": {
"checksum": "038f0d391fdcf33214f0cd2793377c5673a39ebf8ff3a19225afd320efb0f8a2"
}
},
"0.34.1": {
"x86_64_linux_musl": {

44
manifests/just.json generated
View File

@@ -17,10 +17,50 @@
}
},
"latest": {
"version": "1.11.0"
"version": "1.13.0"
},
"1": {
"version": "1.11.0"
"version": "1.13.0"
},
"1.13": {
"version": "1.13.0"
},
"1.13.0": {
"x86_64_linux_musl": {
"checksum": "f76fce93a71686f6aa6b2db1a39184e736f9ac8248c0489e003c617b49eb2676"
},
"x86_64_macos": {
"checksum": "fb14ec72f0900789b3452ec6bd90becef6de1420c8bb4abc0686e7e0efa99d83"
},
"x86_64_windows": {
"checksum": "cbb956c59b3b2d48011630fed626f13340b5692aba45833301bdf696dccb51c8"
},
"aarch64_linux_musl": {
"checksum": "1afff4cc864a31c0e167c8b4ea5f68c4f358c6d3a19d764276cbdaa2c1575a52"
},
"aarch64_macos": {
"checksum": "b6c7489f103e154f1ec99e648b70323aff7173e16f18ea2e22d3d21e52283851"
}
},
"1.12": {
"version": "1.12.0"
},
"1.12.0": {
"x86_64_linux_musl": {
"checksum": "a8e1278f3a2c81384f9a146e74fc40b5204f00776cccfb4da4d36e45716546d4"
},
"x86_64_macos": {
"checksum": "22eeed0bcff05f5cd280345b611a9950b81c3a5b4cabb925cf5c0c77475b2dfd"
},
"x86_64_windows": {
"checksum": "a19d34d8b08e08a2d5b6839db6ece5bfd05faefa45b8924ecbe93f07d3e86e76"
},
"aarch64_linux_musl": {
"checksum": "a8f990336308179103c7776b463f89d751d7c910b757765dd47713b4a32b93a1"
},
"aarch64_macos": {
"checksum": "d08bcc10a690fed8db84e7a64c8665e69d56ad601a85fa970f0a82bee23ec204"
}
},
"1.11": {
"version": "1.11.0"

64
manifests/mdbook.json generated
View File

@@ -17,10 +17,52 @@
}
},
"latest": {
"version": "0.4.25"
"version": "0.4.28"
},
"0.4": {
"version": "0.4.25"
"version": "0.4.28"
},
"0.4.28": {
"x86_64_linux_musl": {
"checksum": "84e3a4982c19e19b1d058af30b8835097109f520cb6c2e9e03413a896c9787aa"
},
"x86_64_macos": {
"checksum": "46605497fac2a379a02fa7287c0e4601a0cdfa2f913a4f1a06d820d91c0c310e"
},
"x86_64_windows": {
"checksum": "996bc212502e51da1d69090134d13cf51ff21e478be9b7e2aeb1d330c7865e35"
},
"aarch64_linux_musl": {
"checksum": "86b01509773e4011a9372de2932ceb0fdd52063153c7a673f63eeacf16c8426b"
}
},
"0.4.27": {
"x86_64_linux_musl": {
"checksum": "44ee34f8a6a1e0788f870c0bfd890dfce112c70f63e7254c5d8f20525600bc7b"
},
"x86_64_macos": {
"checksum": "107461b477c512c9c9deeed051abf9bbb25858867dc2f0f493fc7c2fadfc3532"
},
"x86_64_windows": {
"checksum": "18c7eea09bee53f539a11ec965547147afc2083c4cac22563b724aecf57b57bb"
},
"aarch64_linux_musl": {
"checksum": "4b7a489f1ba35b0b95dfb026b2e46d7e11fb593f2074afb2be10db0f56530dd2"
}
},
"0.4.26": {
"x86_64_linux_musl": {
"checksum": "8a6334a932f2adf05c2647e86e9ef028714717c0a8e57b1e2d9c85f251f1a734"
},
"x86_64_macos": {
"checksum": "14b9d933d5bbc7a4ef4ba476d7fb8ec5d3c4b42a33c0883e6d1ff3b2ef51738d"
},
"x86_64_windows": {
"checksum": "60c3fa5cd51383dd4e4bc22ded1cca92c5f9b97540ac458cad62b660f9c9a43c"
},
"aarch64_linux_musl": {
"checksum": "4461322990ab3b3e65005fdf3b28c4e083cd8504834babf2ad726701596197bf"
}
},
"0.4.25": {
"x86_64_linux_musl": {
@@ -425,23 +467,7 @@
}
},
"0.1": {
"version": "0.1.10"
},
"0.1.10": {
"x86_64_linux_gnu": {
"checksum": "b6b2bb3b95ab4ff02c2f1bbaa1b55c2e51805655432e35e4c3cdb30a2c4acdcf"
},
"x86_64_windows": {
"checksum": "a85dc3a8ad10dacf8d01f427e8935cb4247e45b31b98e2ac2fa5e0f49ff9ce97"
}
},
"0.1.9": {
"x86_64_linux_gnu": {
"checksum": "cfb1a52d0fa649529b0498600bd9b3d0aa8050bbc7847f8095dc9293b8fa2c4c"
},
"x86_64_windows": {
"checksum": "bf1a977de7dd5ff6da2985c3051d6e0f8d410fbd32c2095a00896db192c32cd8"
}
"version": "0.1.8"
},
"0.1.8": {
"x86_64_linux_gnu": {

51
manifests/protoc.json generated
View File

@@ -1,10 +1,57 @@
{
"template": null,
"latest": {
"version": "3.21.12"
"version": "3.22.1"
},
"3": {
"version": "3.21.12"
"version": "3.22.1"
},
"3.22": {
"version": "3.22.1"
},
"3.22.1": {
"x86_64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.1/protoc-22.1-linux-x86_64.zip",
"checksum": "3c830b09192a8c40c599856eb184c89ee5029d7dab9df8ec6d3d6741dcb94b93"
},
"x86_64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.1/protoc-22.1-osx-x86_64.zip",
"checksum": "3cc8d30d8bffc63bb2b8b0aea0d6a126acb4f69d4c720c142f7de6b9f4f562c6"
},
"x86_64_windows": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.1/protoc-22.1-win64.zip",
"checksum": "359a390f6124c067026e212995e402d2e6fcd525d07e3b69d1d81cb06b5690f2"
},
"aarch64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.1/protoc-22.1-linux-aarch_64.zip",
"checksum": "204e23069dc59bda1df5d66425c12373be39d71946fa378c3d7af44abbd651e9"
},
"aarch64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.1/protoc-22.1-osx-aarch_64.zip",
"checksum": "213e82e423baf44bad1eef99cf3e21d52ce1ac2942e3bbd25a63b1f737cf6ec6"
}
},
"3.22.0": {
"x86_64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.0/protoc-22.0-linux-x86_64.zip",
"checksum": "9ceff6c3945d521d1d0f42f9f57f6ef7cf3f581a9d303a027ba19b192045d1a2"
},
"x86_64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.0/protoc-22.0-osx-x86_64.zip",
"checksum": "1e0ad38fcf20a4b1cdeffe40f9188c4d1c30a9dd515cf92c8b57f629227f0eb3"
},
"x86_64_windows": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.0/protoc-22.0-win64.zip",
"checksum": "dd2a24c091f684ce9589fc76f9b5ed55dffdc0e0733bde20112f32b00771dbdb"
},
"aarch64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.0/protoc-22.0-linux-aarch_64.zip",
"checksum": "af403bd3009132b418b364e9df29cdbecff5f6ab560c392d48e9944f708d7778"
},
"aarch64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.0/protoc-22.0-osx-aarch_64.zip",
"checksum": "834f35b26082ff2dc372df17cae4a4b7cded944756f1c99bac8c624214b542cc"
}
},
"3.21": {
"version": "3.21.12"

84
manifests/shfmt.json generated
View File

@@ -562,89 +562,5 @@
"x86_64_windows": {
"checksum": "ee3361b6acf5c72ca82a917aeceacd06fdcd46c527ad9747408159afd9227a29"
}
},
"0.6": {
"version": "0.6.0"
},
"0.6.0": {
"x86_64_linux_gnu": {
"checksum": "7128d4740d90757582447c0b844734f90090ef25bc332627d40952dd06a069c2"
},
"x86_64_macos": {
"checksum": "74144cafbde2cbfd154750010b317e5c2c235c45378436f2d52706dc7b7031c6"
},
"x86_64_windows": {
"checksum": "9001f87e18da4d8b8bbb26a59a49d6680ce0e2622dc9da85bd952819352bef66"
}
},
"0.5": {
"version": "0.5.0"
},
"0.5.0": {
"x86_64_linux_gnu": {
"checksum": "10978caae768eb5d2fff232365d5e20bb0120e0ca158b9b3683f805c904453b6"
},
"x86_64_macos": {
"checksum": "28dbc9bf5f5e1b5ac335f3f0989cc6fd4eb75e22c8a399cde50b06ce2b499fd7"
},
"x86_64_windows": {
"checksum": "82fc820eeb35a0d46514fb780e13b6a21b841d7c13b8c8cede8bf20598a11f6f"
}
},
"0.4": {
"version": "0.4.0"
},
"0.4.0": {
"x86_64_linux_gnu": {
"checksum": "8b889ee066e52b6f85da7c2f435feec5f2d28c47c5465909ecd9b2075451b50c"
},
"x86_64_macos": {
"checksum": "e1c949d88e4bd2b56568195ed437d282d9112b02b32b9d6a11871d5a4b85c670"
},
"x86_64_windows": {
"checksum": "baa162439b5218c4fcf161e8ed366cf1327eff8919b73469410c77f3b20b07ea"
}
},
"0.3": {
"version": "0.3.0"
},
"0.3.0": {
"x86_64_linux_gnu": {
"checksum": "9a87d9580f9700c3d8add881a2786b122b83aa31fcf8342f8929c0a93934ba7b"
},
"x86_64_macos": {
"checksum": "45a05100ce9747281b028fddea59a29a42b9ddda075ec5f57558c1fd5fb732cc"
},
"x86_64_windows": {
"checksum": "af087f9f7b88290118e8d4595b6f663414f2af131996d4241929ee3c733961af"
}
},
"0.2": {
"version": "0.2.0"
},
"0.2.0": {
"x86_64_linux_gnu": {
"checksum": "224569dd672129ed52865783cd010a5f6e389bd006cce9343bf517506491358e"
},
"x86_64_macos": {
"checksum": "3d7e8f541ae882c2a78594f89124fb101e50e3b974b6d02b091b4ba901644e51"
},
"x86_64_windows": {
"checksum": "c9fa54aaf72bb08fa44981919e3d1e365a7528e5f393fb8679c4ac2292cfa583"
}
},
"0.1": {
"version": "0.1.0"
},
"0.1.0": {
"x86_64_linux_gnu": {
"checksum": "9275582a78ed270142ea9aa37cb28f7f274494c603a5db8d90792a2e06ccfaa0"
},
"x86_64_macos": {
"checksum": "715d64e1f918b8a17e04ee5ed9e392720f9fa9255a45c9fdbbee50c57ee7bafc"
},
"x86_64_windows": {
"checksum": "24f38f71a9d39e800a104b63b1b60b6b0bbd313bc01c15c218f8ff6fada90148"
}
}
}

View File

@@ -22,7 +22,53 @@
}
},
"latest": {
"version": "4.0.0"
"version": "6.0.0"
},
"6": {
"version": "6.0.0"
},
"6.0": {
"version": "6.0.0"
},
"6.0.0": {
"x86_64_linux_gnu": {
"checksum": "19090d9f0b6320d69908c3a9d3915c1b8149555d971061eda462edc0e212e0d3"
},
"x86_64_macos": {
"checksum": "c5a817ed5b3e31301a74011459a8a4b887265fcaf32106f7455d1be44419b305"
},
"x86_64_windows": {
"checksum": "43ca5c47c396fbf1edbf6de06841be0be296b11d17e5753cb1266bd3c5653f28"
},
"aarch64_linux_gnu": {
"checksum": "465156922e11e423730f2884d3c5ecf781a27098d58c7b6b4388d739d30bb7f3"
},
"aarch64_macos": {
"checksum": "f6c128aaea4aa7a1bb74d1d3eb00a82ea083208419345176af22afb9634ec7ae"
}
},
"5": {
"version": "5.0.0"
},
"5.0": {
"version": "5.0.0"
},
"5.0.0": {
"x86_64_linux_gnu": {
"checksum": "a627a0391c52f3543bb48bb3052038291b4bd94e1dee8e520afb7ad2d7dabbbb"
},
"x86_64_macos": {
"checksum": "f504550ef67ae66472b301477fb6218c1b4e2c8bf6ed343c928f070cadd11609"
},
"x86_64_windows": {
"checksum": "0275aa5632e8714222e85b7b04e186c2c354df148c04d37fe41b13e15fbf4bed"
},
"aarch64_linux_gnu": {
"checksum": "ca319db21d252a7bdcb81bd3c1def5d57a0e3951e1b747661e68c86b562786ff"
},
"aarch64_macos": {
"checksum": "1dfe45ea469a790528a10ddc4251673ce167a4c845d71e248b37d425d8d706dc"
}
},
"4": {
"version": "4.0.0"
@@ -870,19 +916,5 @@
"x86_64_windows": {
"checksum": "1038ed20f40cdddd50144ee3ad7ab3fc9381f4eb32b48507e154458f14c1e702"
}
},
"0.3": {
"version": "0.3.0"
},
"0.3.0": {
"x86_64_linux_gnu": {
"checksum": "10055761c5d347d7307e829d4932b9b400318399a5b067d9b2d4ce9327575915"
},
"x86_64_macos": {
"checksum": "0b29e2132fcd57ba82fe231284861b6d0c3924454c7907474549450958b6664e"
},
"x86_64_windows": {
"checksum": "ed9f565ba2851a2eac6497bdb91933b426f936ce3b6e525fdacd5c6c1053167f"
}
}
}

308
manifests/zola.json generated Normal file
View File

@@ -0,0 +1,308 @@
{
"template": {
"x86_64_linux_gnu": {
"url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-x86_64-unknown-linux-gnu.tar.gz"
},
"x86_64_macos": {
"url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-x86_64-apple-darwin.tar.gz"
},
"x86_64_windows": {
"url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-x86_64-pc-windows-msvc.zip"
}
},
"latest": {
"version": "0.17.1"
},
"0.17": {
"version": "0.17.1"
},
"0.17.1": {
"x86_64_linux_gnu": {
"checksum": "f1ddbe0c1b0672da6eeb959eeb3f311b915ecc18719963934bcbc0c62783b711"
},
"x86_64_macos": {
"checksum": "96eb9ce229bdfb34cdcc05f540c965e0ad4104a253729bb6e3d2b7b3a57044a7"
},
"x86_64_windows": {
"checksum": "be0ea09c178a01bc04c1444349676a59b31c7a97930a5461fc170b3947ea4553"
}
},
"0.17.0": {
"x86_64_linux_gnu": {
"checksum": "41f8a78b85d4a138581dff468fa5a01378c7f7afeaf2d81524c45a9fba8988ad"
},
"x86_64_macos": {
"checksum": "41d69c8995f6a77acc3d0a0389de06f42000e8362264f6bd2c8ac12a7124827b"
},
"x86_64_windows": {
"checksum": "6e92a4186e2a5ddd61bc388c2d28558060e352d39e7ddb0985463e14728523da"
}
},
"0.16": {
"version": "0.16.1"
},
"0.16.1": {
"x86_64_linux_gnu": {
"checksum": "a8a4205b7fdd817d9866d1a4b4b8d53c206177bd7e95b37e35cb5f830b0e6234"
},
"x86_64_macos": {
"checksum": "cb14676dfbfbf3252315196515ab386a63d3a336b18bdcc632d8e31c0a4c791b"
},
"x86_64_windows": {
"checksum": "b19b8317a9a0d53339df8a5d910af0682abad5c65f593d58fcc35c6d00ab8732"
}
},
"0.16.0": {
"x86_64_linux_gnu": {
"checksum": "88cde8f1edfe609a9ae8a7a95226d3ae9bb62279c5c5254d9f5984ab843529a1"
},
"x86_64_macos": {
"checksum": "e31e0fcce6da8777b8a3c2475d55fa98c513224dabefb4274da2cd0094f441fc"
},
"x86_64_windows": {
"checksum": "38a6b2ddeac3c32aff948ad4b07d7479d89115dce3f07adde6d5a53844f23c95"
}
},
"0.15": {
"version": "0.15.3"
},
"0.15.3": {
"x86_64_linux_gnu": {
"checksum": "7952bf166f29caeec595a299d94bc7da6ad5ba9ae71ea8bae142e2322faf821d"
},
"x86_64_macos": {
"checksum": "3a8a9b137b87fdee546ab5f12c9eb7b2e33a554349c95c4a9ae4c1599e06538f"
},
"x86_64_windows": {
"checksum": "d806e1e2e954369f350b6de9d755374fb57f8e820bf8e8df18e6c2db9daf9443"
}
},
"0.15.2": {
"x86_64_linux_gnu": {
"checksum": "d067e8261f0a9121ea0388616f74fcba4b1ed87df8ea78ca20a577424c15fa20"
},
"x86_64_macos": {
"checksum": "e39c94158bb8f0dd0af3c1fcf1b52845a49ed6ab87721f2dd3bf0ba05294327a"
},
"x86_64_windows": {
"checksum": "c265ac94c33caf89d900963994568440e200a0620e4d6a1092fc35a1fca17b33"
}
},
"0.15.1": {
"x86_64_linux_gnu": {
"checksum": "57c69a4f651567a9507b73ced6ec3c04f3ec20487877657502a04be93748f204"
},
"x86_64_macos": {
"checksum": "847a24fe21676aa4ded670dd6850444792bd98d4713677067c472450a72b3d9c"
},
"x86_64_windows": {
"checksum": "3da07da833704265e5751435fbafc64eb58326f3b9069f4bc1fed9dfb75f7226"
}
},
"0.15.0": {
"x86_64_linux_gnu": {
"checksum": "901a330100d5f265c7a00821bef564dd7353b2b0884b80996ba4592b635a7ad3"
},
"x86_64_macos": {
"checksum": "8461c39034c2606a9a7b65f6f1c964f322707d262ec83fd271cb468ae71389f9"
},
"x86_64_windows": {
"checksum": "eb248641acdb341d457c9a3d2560c7877f9d528a061582fa9636a69dea9d9dac"
}
},
"0.14": {
"version": "0.14.1"
},
"0.14.1": {
"x86_64_linux_gnu": {
"checksum": "4223f57d9b60ad7217c44a815fa975b2229f692b7ef3de4b7ce61f1634e8dc33"
},
"x86_64_macos": {
"checksum": "754d5e1b4ca67a13c6cb4741dbff5b248075f4f4a0353d6673aa4f5afb7ec0bf"
},
"x86_64_windows": {
"checksum": "62bf50a6e2b606faf80cdf9112deca945fe89f67863fb06f793c27a26c968a91"
}
},
"0.14.0": {
"x86_64_linux_gnu": {
"checksum": "4b68ec636b858178095873c038f21d24640220295f70b7a9f2e82109aa451926"
},
"x86_64_macos": {
"checksum": "23b91e138ca6d16ad7560ca2d13dcf80ecdf382bed1548297791f4920bfc10c4"
},
"x86_64_windows": {
"checksum": "fad6516c9b9ecf294d047dd24195f521a8ece662249bc937f380fa154a30a43d"
}
},
"0.13": {
"version": "0.13.0"
},
"0.13.0": {
"x86_64_linux_gnu": {
"checksum": "1a919e00cce61e30c31cd8d0979349ecd3f7c1666d32fa77314cbfbb89447adb"
},
"x86_64_macos": {
"checksum": "2b3f5f2d7b2368ba128344170e5ca0dc0e1e46f322baf1048d3e206c35258975"
},
"x86_64_windows": {
"checksum": "7e603c8b0da95a4f01f833d7d4664209b4ec3ad72fca5e59be99020f99086c12"
}
},
"0.12": {
"version": "0.12.2"
},
"0.12.2": {
"x86_64_linux_gnu": {
"checksum": "572e34c4c2b874f9704fb8512abea84532623f7567996bac456291a21c1b2595"
},
"x86_64_macos": {
"checksum": "f9e2018c5f4989ee38055c9c876438f83988e574e8acfe68780e13a1b466713a"
},
"x86_64_windows": {
"checksum": "b6d731a9abd2364bcf1d4e0d5390c3dbf4ac8044bf06df124806420115e2d74b"
}
},
"0.12.1": {
"x86_64_linux_gnu": {
"checksum": "fdca646be87e05213b7306d04247c4226c1d514aee96ef390935545aee84a074"
},
"x86_64_macos": {
"checksum": "095d6844af1fcda969ec656d44b0b21c2952472319c12285630883ce73633ca8"
},
"x86_64_windows": {
"checksum": "370871760201d29c7fd4f492b716dbf501aed9ba1992c282f3eedf672443b548"
}
},
"0.12.0": {
"x86_64_linux_gnu": {
"checksum": "c955228d468b9233bd66417b0f39c078f510f8adf1a6138bbe7e80423198224b"
},
"x86_64_macos": {
"checksum": "5c1d6dc3978970f33beea3ac252a9303ca5d179fce988de4e55a4cb99ee74237"
},
"x86_64_windows": {
"checksum": "ea07d70d62f573cf51f8f5ba89c9fab0cff15f2cbdd5e39d897f6ee3d9855897"
}
},
"0.11": {
"version": "0.11.0"
},
"0.11.0": {
"x86_64_linux_gnu": {
"checksum": "8afe40edff5e995afdc132e02442d24eb633ef4b6e81913d69cf97f17905b9c3"
},
"x86_64_macos": {
"checksum": "346d14a914de0d33adc25e7fb70abc02aca9e2cf808283538d4bb5b3cebfcb56"
},
"x86_64_windows": {
"checksum": "d95ed0d652e8ce2d904eaafc369c796bea9b593d5808e10b033e14edea93534a"
}
},
"0.10": {
"version": "0.10.1"
},
"0.10.1": {
"x86_64_linux_gnu": {
"checksum": "7bce21ad56d0cab213b5b9188076b93d9d130b9b046cd118305dc2b9b43b84b8"
},
"x86_64_macos": {
"checksum": "b1a5583421bb370a2e345ebef9a549fe44d58aecfbb67b1e619f5dd6990fcd44"
},
"x86_64_windows": {
"checksum": "459f358b4210a8d53a440f957a4c69b12c663dd4c4939c02d0d91ebc685ade2a"
}
},
"0.10.0": {
"x86_64_linux_gnu": {
"checksum": "5ae166ff105359c87f3d6c57ef6f1a3dd14b266b68dc8059dee88f8916818d6c"
},
"x86_64_macos": {
"checksum": "aeabf5b6477fa2884d21e6c6ccf30269ac98c33680510752786876dac0e85ed0"
},
"x86_64_windows": {
"checksum": "bff5de453883a429cef8ea4823f8dccead21d97f38a287841a073c7c97a2fefb"
}
},
"0.9": {
"version": "0.9.0"
},
"0.9.0": {
"x86_64_linux_gnu": {
"checksum": "c06b5406fd6cddf346fac448e95780e5b161f3d560a7df86a202d7f6c20d3f72"
},
"x86_64_macos": {
"checksum": "e961f3cde3a9b995dc0227fb7de8c01a4c6618cdd196e2622f3ba1e7c8370035"
},
"x86_64_windows": {
"checksum": "1a69861f6602579ac0391e63cdd14f143b1f1e373b34ca8a3a4bd98c22151df5"
}
},
"0.8": {
"version": "0.8.0"
},
"0.8.0": {
"x86_64_linux_gnu": {
"checksum": "bcdb334b47c34b0b35ffbba8400ca29df0d85377020c6468d2657a74dbef117e"
},
"x86_64_macos": {
"checksum": "1afb06d2187c039c750821cb2bc682af97f71ff3d7853e00b8298a54b7a695bd"
},
"x86_64_windows": {
"checksum": "71563aefdc28d6094891d9d2860f8dfe6e4685581b4bf7216342b84e07648a07"
}
},
"0.7": {
"version": "0.7.0"
},
"0.7.0": {
"x86_64_linux_gnu": {
"checksum": "fd9bb11a80a4246bc3415d2ce7e09029f4b1a609f89ba82d23d61971f54d1c2d"
},
"x86_64_macos": {
"checksum": "becbb39f28e65af72186ba11d476dcaf4ab22153ce7c4f267278dc3958575850"
},
"x86_64_windows": {
"checksum": "173da6285aa9e2fedc4fe7a64c0c930f5306d8a95ff31625a71659ddfd3c819f"
}
},
"0.6": {
"version": "0.6.0"
},
"0.6.0": {
"x86_64_linux_gnu": {
"checksum": "7f8837cd354aa16a334d3877fe0dfb6e0d063e5a268f6e6c21422f4ce6566ec5"
},
"x86_64_macos": {
"checksum": "57ddf70519f69f3d7bfa6761aa416154d1b5afc14444c25d516d3f82519dcf52"
},
"x86_64_windows": {
"checksum": "7312197b8dc6f6c6b5413e3dbccf5cb8a3061e5da3b1451ff17980c59a972601"
}
},
"0.5": {
"version": "0.5.1"
},
"0.5.1": {
"x86_64_linux_gnu": {
"checksum": "f0c6a433f217d123da7d89b744c0cdf277a3ef5c3973f424c784f33a74c535a9"
},
"x86_64_macos": {
"checksum": "a945d371fd5266ae1b50e9abc9837df780d94c2f5262f1cccfa381ae833a011e"
},
"x86_64_windows": {
"checksum": "9f36cdd62bec6e16a7dd0bfaf89addc9362bd9280e26971f45b8c141ecf195f9"
}
},
"0.5.0": {
"x86_64_linux_gnu": {
"checksum": "f7ab37b542461357862b6e91459a211a8cbeb872f84c6de227076e3d6db7eff7"
},
"x86_64_macos": {
"checksum": "86ce9babce8c7398c00c21383eda59895ede6be5e7ab688cfef6b5a11050fcc8"
},
"x86_64_windows": {
"checksum": "492ccea9c52cf8026352488b6064b02ca91ae93a9e70f34d09928868b2f0f011"
}
}
}

View File

@@ -14,6 +14,9 @@
"aarch64_linux_musl": {},
"aarch64_macos": {
"asset_name": "${package}-${rust_target}.zip"
},
"aarch64_windows": {
"asset_name": "${package}-${rust_target}.zip"
}
}
}

View File

@@ -0,0 +1,17 @@
{
"repository": "https://github.com/xd009642/tarpaulin",
"tag_prefix": "",
"asset_name": "${package}-${rust_target}.tar.gz",
"version_range": "> 0.22.0",
"platform": {
"x86_64_linux_gnu": {},
"x86_64_linux_musl": {},
"aarch64_linux_gnu": {},
"aarch64_linux_musl": {},
"x86_64_macos": {},
"aarch64_macos": {},
"x86_64_windows": {
"asset_name": "${package}-${rust_target}.zip"
}
}
}

View File

@@ -0,0 +1,12 @@
{
"repository": "https://github.com/getzola/zola",
"tag_prefix": "v",
"asset_name": "${package}-v${version}-${rust_target}.tar.gz",
"platform": {
"x86_64_linux_gnu": {},
"x86_64_macos": {},
"x86_64_windows": {
"asset_name": "${package}-v${version}-${rust_target}.zip"
}
}
}

View File

@@ -28,7 +28,9 @@ fn main() -> Result<()> {
.join("manifests")
.join(format!("{package}.json"));
let download_cache_dir = &workspace_root.join("tools/codegen/tmp/cache").join(package);
fs::create_dir_all(manifest_path.parent().unwrap())?;
fs::create_dir_all(download_cache_dir)?;
let base_info: BaseManifest = serde_json::from_slice(&fs::read(
workspace_root
.join("tools/codegen/base")
@@ -39,8 +41,10 @@ fn main() -> Result<()> {
.strip_prefix("https://github.com/")
.context("repository must be starts with https://github.com/")?;
eprintln!("downloading releases of https://github.com/{repo}");
eprintln!("downloading releases of https://github.com/{repo} from https://api.github.com/repos/{repo}/releases");
let mut releases: github::Releases = vec![];
// GitHub API returns up to 100 results at a time. If the number of releases
// is greater than 100, multiple fetches are needed.
for page in 1.. {
let per_page = 100;
let mut r: github::Releases = download(&format!(
@@ -53,13 +57,20 @@ fn main() -> Result<()> {
}
releases.append(&mut r);
}
let releases: Vec<_> = releases
let releases: BTreeMap<_, _> = releases
.iter()
.filter_map(|release| {
release
.tag_name
.strip_prefix(&base_info.tag_prefix)
.map(|version| (version, release))
if release.prerelease {
return None;
}
let version = release.tag_name.strip_prefix(&base_info.tag_prefix)?;
let mut semver_version = version.parse::<semver::Version>();
if semver_version.is_err() {
if let Some(default_major_version) = &base_info.default_major_version {
semver_version = format!("{default_major_version}.{version}").parse();
}
}
Some((Reverse(semver_version.ok()?), (version, release)))
})
.collect();
@@ -109,13 +120,15 @@ fn main() -> Result<()> {
ManifestRef::Real(_) => &m.0 .0,
};
if !manifests.map.is_empty()
&& *version == releases.first().unwrap().0.parse()?
&& *version >= releases.first_key_value().unwrap().0 .0.clone().into()
{
return Ok(());
}
}
}
Some(format!("={}", releases.first().unwrap().0).parse()?)
let req = format!("={}", releases.first_key_value().unwrap().0 .0).parse()?;
eprintln!("update manifest for versions '{req}'");
Some(req)
}
None => match base_info.version_range {
Some(version_range) => Some(version_range.parse()?),
@@ -134,7 +147,7 @@ fn main() -> Result<()> {
let req = if version_req == "latest" {
if manifests.map.is_empty() {
format!("={}", releases.first().unwrap().0).parse()?
format!("={}", releases.first_key_value().unwrap().0 .0).parse()?
} else {
format!(">{}", semver_versions.last().unwrap()).parse()?
}
@@ -147,18 +160,9 @@ fn main() -> Result<()> {
};
let mut buf = vec![];
for &(version, release) in &releases {
let mut semver_version = version.parse::<semver::Version>();
if semver_version.is_err() {
if let Some(default_major_version) = &base_info.default_major_version {
semver_version = format!("{default_major_version}.{version}").parse();
}
}
let Ok(semver_version) = semver_version else {
continue;
};
for (Reverse(semver_version), (version, release)) in &releases {
if let Some(version_req) = &version_req {
if !version_req.matches(&semver_version) {
if !version_req.matches(semver_version) {
continue;
}
}
@@ -189,17 +193,17 @@ fn main() -> Result<()> {
}
};
eprintln!("downloading {url} for checksum");
eprintln!("downloading {url} for checksum...");
let download_cache = download_cache_dir.join(format!(
"{version}-{platform:?}-{}",
Path::new(&url).file_name().unwrap().to_str().unwrap()
));
if download_cache.is_file() {
eprintln!("{url} is already downloaded");
eprintln!(" already downloaded");
fs::File::open(download_cache)?.read_to_end(&mut buf)?;
} else {
download(&url)?.into_reader().read_to_end(&mut buf)?;
eprintln!("downloaded complete");
eprintln!(" downloaded complete");
fs::write(download_cache, &buf)?;
}
eprintln!("getting sha256 hash for {url}");
@@ -286,10 +290,37 @@ fn main() -> Result<()> {
);
}
let ManifestRef::Ref { version: latest_version } = manifests.map.first_key_value().unwrap().1.clone() else { unreachable!() };
if latest_only {
manifests
.map
.retain(|k, m| k.0 == Version::latest() || matches!(m, ManifestRef::Real(..)));
.retain(|k, _| k.0 == Version::latest() || k.0 == latest_version);
}
let ManifestRef::Real(latest_manifest) = &manifests.map[&Reverse(latest_version.clone())] else { unreachable!() };
for &p in base_info.platform.keys() {
if latest_manifest.download_info.contains_key(&p) {
continue;
}
if !base_info.prefer_linux_gnu {
if p == HostPlatform::x86_64_linux_gnu
&& latest_manifest
.download_info
.contains_key(&HostPlatform::x86_64_linux_musl)
{
continue;
}
if p == HostPlatform::aarch64_linux_gnu
&& latest_manifest
.download_info
.contains_key(&HostPlatform::aarch64_linux_musl)
{
continue;
}
}
bail!(
"platform list in base manifest for {package} contains {p:?}, \
but latest release ({latest_version}) doesn't contain it"
);
}
let original_manifests = manifests.clone();
@@ -355,21 +386,36 @@ fn replace_vars(s: &str, package: &str, version: &str, platform: HostPlatform) -
}
fn download(url: &str) -> Result<ureq::Response> {
let token = env::var("INTERNAL_CODEGEN_GH_PAT").ok();
let mut token1 = env::var("INTERNAL_CODEGEN_GH_PAT")
.ok()
.filter(|v| !v.is_empty());
let mut token2 = env::var("GITHUB_TOKEN").ok().filter(|v| !v.is_empty());
let mut retry = 0;
let mut last_error = None;
while retry < 5 {
let mut last_error;
loop {
let mut req = ureq::get(url);
if let Some(token) = &token {
if let Some(token) = &token1 {
req = req.set("Authorization", token);
} else if let Some(token) = &token2 {
req = req.set("Authorization", token);
}
match req.call() {
Ok(res) => return Ok(res),
Err(e) => last_error = Some(e),
}
if retry == 3 || retry == 6 {
if token1.is_some() {
token1 = None;
} else if token2.is_some() {
token2 = None;
}
}
retry += 1;
eprintln!("download failed; retrying ({retry}/5)");
std::thread::sleep(Duration::from_secs(retry));
if retry > 10 {
break;
}
eprintln!("download failed; retrying ({retry}/10)");
std::thread::sleep(Duration::from_secs(retry * 2));
}
Err(last_error.unwrap().into())
}
@@ -562,6 +608,7 @@ struct ManifestTemplateDownloadInfo {
}
#[derive(Debug, Deserialize)]
#[serde(deny_unknown_fields)]
struct BaseManifest {
/// Link to the GitHub repository.
repository: String,
@@ -582,6 +629,7 @@ struct BaseManifest {
}
#[derive(Debug, Deserialize)]
#[serde(deny_unknown_fields)]
struct BaseManifestPlatformInfo {
/// Asset name patterns. Default to the value at `BaseManifest::asset_name`.
asset_name: Option<StringOrArray>,
@@ -610,6 +658,7 @@ impl StringOrArray {
/// GitHub Actions Runner supports Linux (x86_64, aarch64, arm), Windows (x86_64, aarch64),
/// and macOS (x86_64, aarch64).
/// https://github.com/actions/runner
/// https://github.com/actions/runner/blob/caec043085990710070108f375cd0aeab45e1017/.github/workflows/build.yml#L21
/// https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#supported-architectures-and-operating-systems-for-self-hosted-runners
///
/// Note:
@@ -622,7 +671,7 @@ impl StringOrArray {
/// https://github.com/rust-lang/rustup/pull/593
/// https://github.com/cross-rs/cross/pull/1018
/// Does it seem only armv7l is supported?
/// https://github.com/actions/runner/blob/6b9e8a6be411a6e63d5ccaf3c47e7b7622c5ec49/src/Misc/externals.sh#L174
/// https://github.com/actions/runner/blob/caec043085990710070108f375cd0aeab45e1017/src/Misc/externals.sh#L174
#[allow(non_camel_case_types)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
enum HostPlatform {

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/..

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/..
@@ -21,7 +21,9 @@ bail() {
version="${1:?}"
version="${version#v}"
tag="v${version}"
tag_prefix="v"
tag="${tag_prefix}${version}"
changelog="CHANGELOG.md"
if [[ ! "${version}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$ ]]; then
bail "invalid version format '${version}'"
fi
@@ -38,44 +40,55 @@ if gh release view "${tag}" &>/dev/null; then
bail "tag '${tag}' has already been created and pushed"
fi
if ! git branch | grep -q '\* main'; then
if ! git branch | grep -q '\* main$'; then
bail "current branch is not 'main'"
fi
tags=$(git --no-pager tag)
release_date=$(date -u '+%Y-%m-%d')
tags=$(git --no-pager tag | (grep -E "^${tag_prefix}[0-9]+" || true))
if [[ -n "${tags}" ]]; then
# Make sure the same release does not exist in CHANGELOG.md.
release_date=$(date -u '+%Y-%m-%d')
if grep -Eq "^## \\[${version//./\\.}\\] - ${release_date}$" CHANGELOG.md; then
bail "release ${version} already exist in CHANGELOG.md"
# Make sure the same release does not exist in changelog.
if grep -Eq "^## \\[${version//./\\.}\\]" "${changelog}"; then
bail "release ${version} already exist in ${changelog}"
fi
if grep -Eq "^\\[${version//./\\.}\\]: " CHANGELOG.md; then
bail "link to ${version} already exist in CHANGELOG.md"
if grep -Eq "^\\[${version//./\\.}\\]: " "${changelog}"; then
bail "link to ${version} already exist in ${changelog}"
fi
# Update changelog.
remote_url=$(grep -E '^\[Unreleased\]: https://' CHANGELOG.md | sed 's/^\[Unreleased\]: //; s/\.\.\.HEAD$//')
remote_url=$(grep -E '^\[Unreleased\]: https://' "${changelog}" | sed 's/^\[Unreleased\]: //; s/\.\.\.HEAD$//')
before_tag="${remote_url#*/compare/}"
remote_url="${remote_url%/compare/*}"
sed -i "s/^## \\[Unreleased\\]/## [Unreleased]\\n\\n## [${version}] - ${release_date}/" CHANGELOG.md
sed -i "s#^\[Unreleased\]: https://.*#[Unreleased]: ${remote_url}/compare/v${version}...HEAD\\n[${version}]: ${remote_url}/compare/${before_tag}...v${version}#" CHANGELOG.md
if ! grep -Eq "^## \\[${version//./\\.}\\] - ${release_date}$" CHANGELOG.md; then
bail "failed to update CHANGELOG.md"
sed -i "s/^## \\[Unreleased\\]/## [Unreleased]\\n\\n## [${version}] - ${release_date}/" "${changelog}"
sed -i "s#^\[Unreleased\]: https://.*#[Unreleased]: ${remote_url}/compare/${tag}...HEAD\\n[${version}]: ${remote_url}/compare/${before_tag}...${tag}#" "${changelog}"
if ! grep -Eq "^## \\[${version//./\\.}\\] - ${release_date}$" "${changelog}"; then
bail "failed to update ${changelog}"
fi
if ! grep -Eq "^\\[${version//./\\.}\\]: " CHANGELOG.md; then
bail "failed to update CHANGELOG.md"
if ! grep -Eq "^\\[${version//./\\.}\\]: " "${changelog}"; then
bail "failed to update ${changelog}"
fi
else
# Make sure the release exists in changelog.
if ! grep -Eq "^## \\[${version//./\\.}\\] - ${release_date}$" "${changelog}"; then
bail "release ${version} does not exist in ${changelog} or has wrong release date"
fi
if ! grep -Eq "^\\[${version//./\\.}\\]: " "${changelog}"; then
bail "link to ${version} does not exist in ${changelog}"
fi
fi
# Make sure that a valid release note for this version exists.
# https://github.com/taiki-e/parse-changelog
changes=$(parse-changelog "${changelog}" "${version}")
if [[ -z "${changes}" ]]; then
bail "changelog for ${version} has no body"
fi
echo "============== CHANGELOG =============="
parse-changelog CHANGELOG.md "${version}"
echo "${changes}"
echo "======================================="
if [[ -n "${tags}" ]]; then
# Create a release commit.
git add CHANGELOG.md
git add "${changelog}"
git commit -m "Release ${version}"
fi

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# shellcheck disable=SC2046
set -euo pipefail
IFS=$'\n\t'
@@ -145,23 +145,38 @@ fi
# Spell check (if config exists)
if [[ -f .cspell.json ]]; then
if type -P npm &>/dev/null; then
if [[ -f Cargo.toml ]]; then
metadata=$(cargo metadata --format-version=1 --all-features --no-deps)
if [[ -n "$(git ls-files '*Cargo.toml')" ]]; then
dependencies=''
for id in $(jq <<<"${metadata}" '.workspace_members[]'); do
dependencies+=$'\n'
dependencies+=$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})" | jq -r '.dependencies[].name')
for manifest_path in $(git ls-files '*Cargo.toml'); do
if [[ "${manifest_path}" != "Cargo.toml" ]] && ! grep -Eq '\[workspace\]' "${manifest_path}"; then
continue
fi
metadata=$(cargo metadata --format-version=1 --all-features --no-deps --manifest-path "${manifest_path}")
for id in $(jq <<<"${metadata}" '.workspace_members[]'); do
dependencies+=$'\n'
dependencies+=$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})" | jq -r '.dependencies[].name')
done
done
cat >.github/.cspell/rust-dependencies.txt <<EOF
words=''
# shellcheck disable=SC2001
for word in $(sed <<<"${dependencies}" 's/[0-9_-]/\n/g' | LC_ALL=C sort -f -u | (grep -E '.{4,}' || true)); do
# Skip if the word is contained in other dictionaries.
if ! npx cspell trace "${word}" 2>/dev/null | (grep -v -E '/(project-dictionary|rust-dependencies)\.txt' || true) | grep -Eq "^${word} \* [0-9A-Za-z_-]+\* "; then
words+=$'\n'
words+="${word}"
fi
done
fi
cat >.github/.cspell/rust-dependencies.txt <<EOF
// This file is @generated by $(basename "$0").
// It is not intended for manual editing.
EOF
# shellcheck disable=SC2001
sed <<<"${dependencies}" 's/[0-9_-]/\n/g' | LC_ALL=C sort -f -u | (grep -E '.{4,}' || true) >>.github/.cspell/rust-dependencies.txt
check_diff .github/.cspell/rust-dependencies.txt
else
touch .github/.cspell/rust-dependencies.txt
if [[ -n "${words:-}" ]]; then
echo "${words}" >>.github/.cspell/rust-dependencies.txt
fi
check_diff .github/.cspell/rust-dependencies.txt
if ! grep -Eq "^\.github/\.cspell/rust-dependencies.txt linguist-generated" .gitattributes; then
echo "warning: you may want to mark .github/.cspell/rust-dependencies.txt linguist-generated"
fi
echo "+ npx cspell --no-progress \$(git ls-files)"