mirror of
https://github.com/taiki-e/install-action.git
synced 2026-04-28 18:10:26 +00:00
Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e834388ca | ||
|
|
70b3188323 | ||
|
|
f0c3e0a7c5 | ||
|
|
d4e8bc812c | ||
|
|
44ea076bf3 | ||
|
|
a27f7f16e6 | ||
|
|
7dd45f2345 | ||
|
|
b13dd10934 | ||
|
|
49577db638 | ||
|
|
cdc26401e5 | ||
|
|
ffbd316e0f | ||
|
|
405b1cf48c | ||
|
|
32827a2a5e | ||
|
|
ef9cd54530 | ||
|
|
e4052c038b | ||
|
|
2b5850d1e4 | ||
|
|
8030289dfd | ||
|
|
0cda7d9a26 | ||
|
|
4cb6490afd | ||
|
|
deab2bca07 | ||
|
|
6ffcb9d268 | ||
|
|
59ffd0e530 | ||
|
|
d8fe71594b | ||
|
|
1536ff4b2f |
3
.github/.cspell/organization-dictionary.txt
vendored
3
.github/.cspell/organization-dictionary.txt
vendored
@@ -24,7 +24,6 @@ rustsec
|
||||
rustup
|
||||
valgrind
|
||||
xcompile
|
||||
Zdoctest
|
||||
Zmiri
|
||||
|
||||
// Rust target triple
|
||||
@@ -152,12 +151,14 @@ endianness
|
||||
esac
|
||||
euxo
|
||||
gsub
|
||||
libc
|
||||
moreutils
|
||||
msys
|
||||
noninteractive
|
||||
noprofile
|
||||
norc
|
||||
nproc
|
||||
objcopy
|
||||
objdump
|
||||
pipefail
|
||||
powerset
|
||||
|
||||
3
.github/.cspell/project-dictionary.txt
vendored
3
.github/.cspell/project-dictionary.txt
vendored
@@ -4,9 +4,10 @@ distro
|
||||
doas
|
||||
dprint
|
||||
enablerepo
|
||||
endgroup
|
||||
epel
|
||||
grcov
|
||||
libc
|
||||
incompat
|
||||
linkcheck
|
||||
mdbook
|
||||
microdnf
|
||||
|
||||
64
.github/workflows/ci.yml
vendored
64
.github/workflows/ci.yml
vendored
@@ -10,7 +10,7 @@ on:
|
||||
- main
|
||||
- dev
|
||||
schedule:
|
||||
- cron: '0 1 * * *'
|
||||
- cron: '0 0,6,12,18 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
@@ -38,25 +38,19 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-20.04
|
||||
- ubuntu-22.04
|
||||
tool:
|
||||
# cargo-watch/watchexec-cli is supported by cargo-binstall (through quickinstall)
|
||||
# TODO: valgrind installation sometime hangs.
|
||||
- cargo-dinghy,cargo-hack,cargo-llvm-cov,cargo-make,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,syft
|
||||
include:
|
||||
# Note: Specifying the version of valgrind and cargo-binstall is not supported.
|
||||
- os: ubuntu-20.04
|
||||
tool: cargo-dinghy@0.6.4,cargo-hack@0.5.24,cargo-llvm-cov@0.5.3,cargo-make@0.36.11,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,syft@0.83.0
|
||||
- os: ubuntu-22.04
|
||||
- os: ubuntu-20.04
|
||||
tool: cargo-dinghy@0.6,cargo-hack@0.5,cargo-llvm-cov@0.5,cargo-make@0.36,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@6.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,syft@0.83
|
||||
tool: major.minor.patch
|
||||
- os: ubuntu-20.04
|
||||
tool: cargo-valgrind@2, just@1,protoc@3 , shfmt@3 ,wasmtime@7,cargo-watch@8,watchexec-cli@1
|
||||
tool: major.minor
|
||||
- os: ubuntu-20.04
|
||||
tool: major
|
||||
- os: macos-11
|
||||
tool: cargo-dinghy,cargo-hack,cargo-llvm-cov,cargo-make,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,syft
|
||||
- os: macos-12
|
||||
- os: windows-2019
|
||||
tool: cargo-hack,cargo-llvm-cov,cargo-make,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,syft
|
||||
- os: windows-2022
|
||||
runs-on: ${{ matrix.os }}
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
@@ -65,9 +59,12 @@ jobs:
|
||||
persist-credentials: false
|
||||
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
|
||||
- run: rm Cargo.toml
|
||||
- name: Generate tool list
|
||||
id: tool-list
|
||||
run: tools/ci/tool-list.sh "${{ matrix.tool }}" >>"${GITHUB_OUTPUT}"
|
||||
- uses: ./
|
||||
with:
|
||||
tool: ${{ matrix.tool }}
|
||||
tool: ${{ steps.tool-list.outputs.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
|
||||
@@ -97,33 +94,19 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
container:
|
||||
# glibc >= 2.31
|
||||
- ubuntu:18.04 # glibc 2.27
|
||||
- ubuntu:20.04 # glibc 2.31
|
||||
- ubuntu:22.04 # glibc 2.35
|
||||
- debian:10-slim # glibc 2.28
|
||||
- debian:11-slim # glibc 2.31
|
||||
- debian:12-slim # glibc 2.36
|
||||
- fedora:latest # glibc 2.37 (as of fedora 38)
|
||||
tool:
|
||||
# valgrind: installing snap to container is difficult...
|
||||
- cargo-dinghy,cargo-hack,cargo-llvm-cov,cargo-make,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,syft
|
||||
include:
|
||||
# glibc < 2.31
|
||||
# zola don't provide prebuilt binaries for musl or old glibc host.
|
||||
- container: ubuntu:18.04 # glibc 2.27
|
||||
tool: cargo-dinghy,cargo-hack,cargo-llvm-cov,cargo-make,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,syft
|
||||
- container: debian:10-slim # glibc 2.28
|
||||
tool: cargo-dinghy,cargo-hack,cargo-llvm-cov,cargo-make,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,syft
|
||||
- container: rockylinux:8 # glibc 2.28
|
||||
tool: cargo-dinghy,cargo-hack,cargo-llvm-cov,cargo-make,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,syft
|
||||
- container: rockylinux:8-minimal # glibc 2.28
|
||||
tool: cargo-dinghy,cargo-hack,cargo-llvm-cov,cargo-make,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,syft
|
||||
# glibc < 2.27 or musl
|
||||
- container: centos:7 # glibc 2.17
|
||||
# protoc,valgrind,wasmtime,mdbook-linkcheck,cargo-watch,zola don't provide prebuilt binaries for musl or old glibc host.
|
||||
tool: cargo-dinghy,cargo-hack,cargo-llvm-cov,cargo-make,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,shellcheck,shfmt,wasm-pack,mdbook,cargo-binstall,grcov,watchexec-cli,cargo-tarpaulin,syft
|
||||
- container: alpine:latest # musl 1.2.4 (as of alpine 3.18)
|
||||
# protoc,valgrind,wasmtime,mdbook-linkcheck,cargo-watch,zola don't provide prebuilt binaries for musl host.
|
||||
tool: cargo-dinghy,cargo-hack,cargo-llvm-cov,cargo-make,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,shellcheck,shfmt,wasm-pack,mdbook,cargo-binstall,grcov,watchexec-cli,cargo-tarpaulin,syft
|
||||
- rockylinux:8 # glibc 2.28
|
||||
- rockylinux:8-minimal # glibc 2.28
|
||||
- rockylinux:9 # glibc 2.34
|
||||
- rockylinux:9-minimal # glibc 2.34
|
||||
- centos:7 # glibc 2.17
|
||||
- alpine:latest # musl 1.2.4 (as of alpine 3.18)
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 60
|
||||
container: ${{ matrix.container }}
|
||||
@@ -132,7 +115,7 @@ jobs:
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
apt-get -o Acquire::Retries=10 -qq update
|
||||
apt-get -o Acquire::Retries=10 -qq -o Dpkg::Use-Pty=0 install -y --no-install-recommends cargo
|
||||
apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends cargo
|
||||
if: startsWith(matrix.container, 'ubuntu') || startsWith(matrix.container, 'debian')
|
||||
- name: Install requirements (fedora/rockylinux)
|
||||
run: |
|
||||
@@ -161,9 +144,12 @@ jobs:
|
||||
persist-credentials: false
|
||||
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
|
||||
- run: rm Cargo.toml
|
||||
- name: Generate tool list
|
||||
id: tool-list
|
||||
run: tools/ci/tool-list.sh >>"${GITHUB_OUTPUT}"
|
||||
- uses: ./
|
||||
with:
|
||||
tool: ${{ matrix.tool }}
|
||||
tool: ${{ steps.tool-list.outputs.tool }}
|
||||
|
||||
manifest:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
43
CHANGELOG.md
43
CHANGELOG.md
@@ -10,6 +10,40 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [2.13.2] - 2023-08-01
|
||||
|
||||
- Update `syft@latest` to 0.86.1.
|
||||
|
||||
## [2.13.1] - 2023-07-31
|
||||
|
||||
- Update `dprint@latest` to 0.40.1.
|
||||
|
||||
## [2.13.0] - 2023-07-31
|
||||
|
||||
- Support `cargo-careful`. ([#173](https://github.com/taiki-e/install-action/pull/173))
|
||||
|
||||
- Improve performance and robustness for cases where the host environment lacks the packages required for installation, such as containers or self-hosted runners.
|
||||
|
||||
## [2.12.23] - 2023-07-31
|
||||
|
||||
- Update `dprint@latest` to 0.40.0.
|
||||
|
||||
## [2.12.22] - 2023-07-30
|
||||
|
||||
- Update `cargo-nextest@latest` to 0.9.55.
|
||||
|
||||
## [2.12.21] - 2023-07-28
|
||||
|
||||
- Update `cargo-no-dev-deps@latest` to 0.2.3.
|
||||
|
||||
- Update `cargo-minimal-versions@latest` to 0.1.13.
|
||||
|
||||
- Update `cargo-llvm-cov@latest` to 0.5.24.
|
||||
|
||||
## [2.12.20] - 2023-07-28
|
||||
|
||||
- Update `cargo-deny@latest` to 0.14.0.
|
||||
|
||||
## [2.12.19] - 2023-07-27
|
||||
|
||||
- Update `cargo-tarpaulin@latest` to 0.26.1.
|
||||
@@ -979,7 +1013,14 @@ Note: This release is considered a breaking change because installing on version
|
||||
|
||||
Initial release
|
||||
|
||||
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.12.19...HEAD
|
||||
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.13.2...HEAD
|
||||
[2.13.2]: https://github.com/taiki-e/install-action/compare/v2.13.1...v2.13.2
|
||||
[2.13.1]: https://github.com/taiki-e/install-action/compare/v2.13.0...v2.13.1
|
||||
[2.13.0]: https://github.com/taiki-e/install-action/compare/v2.12.23...v2.13.0
|
||||
[2.12.23]: https://github.com/taiki-e/install-action/compare/v2.12.22...v2.12.23
|
||||
[2.12.22]: https://github.com/taiki-e/install-action/compare/v2.12.21...v2.12.22
|
||||
[2.12.21]: https://github.com/taiki-e/install-action/compare/v2.12.20...v2.12.21
|
||||
[2.12.20]: https://github.com/taiki-e/install-action/compare/v2.12.19...v2.12.20
|
||||
[2.12.19]: https://github.com/taiki-e/install-action/compare/v2.12.18...v2.12.19
|
||||
[2.12.18]: https://github.com/taiki-e/install-action/compare/v2.12.17...v2.12.18
|
||||
[2.12.17]: https://github.com/taiki-e/install-action/compare/v2.12.16...v2.12.17
|
||||
|
||||
@@ -2,13 +2,15 @@
|
||||
|
||||
## Add support for new tool
|
||||
|
||||
(Example: [2ba826d](https://github.com/taiki-e/install-action/commit/2ba826d3ded42d6fa480b6bb82810d1282aa3460))
|
||||
(Example: [ffbd316](https://github.com/taiki-e/install-action/commit/ffbd316e0fe98cb460dae3a66cd2ef9deb398bb1))
|
||||
|
||||
1\. Add base manifest to [`tools/codegen/base`](tools/codegen/base) directory.
|
||||
1\. Add tool name to the table in ["Supported tools" section in `README.md`](https://github.com/taiki-e/install-action#supported-tools).
|
||||
|
||||
2\. Add base manifest to [`tools/codegen/base`](tools/codegen/base) directory.
|
||||
|
||||
See JSON files in `tools/codegen/base` directory for examples of the manifest.
|
||||
|
||||
2\. Generate manifest with the following command (replace `<tool>` with the tool name).
|
||||
3\. Generate manifest with the following command (replace `<tool>` with the tool name).
|
||||
|
||||
```sh
|
||||
./tools/manifest.sh <tool>
|
||||
@@ -21,13 +23,12 @@ See JSON files in `tools/codegen/base` directory for examples of the manifest.
|
||||
> GITHUB_TOKEN=$(gh auth status --show-token 2>&1 | sed -n 's/^.*Token: \(.*\)$/\1/p') ./tools/manifest.sh <tool>
|
||||
> ```
|
||||
|
||||
3\. Add tool name to test matrix in `.github/workflows/ci.yml`.
|
||||
|
||||
4\. Add tool name to the table in ["Supported tools" section in `README.md`](https://github.com/taiki-e/install-action#supported-tools).
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If one of the CI builds fails due to an bin path or release asset_name, fix the problem in the base
|
||||
If one of the CI builds fails due to a bin path or release asset_name, fix the problem in the base
|
||||
manifest, and re-run the manifest tool `tools/manifest.sh` to regenerate the manifest json file. The
|
||||
base manifest supports overriding the bin path per platform by adding the `"bin"` / `"asset_name"`
|
||||
to the platform object.
|
||||
|
||||
If CI fails only for containers using older versions of glibc or musl, you may need to add the tool
|
||||
name to one of the `*_incompat` arrays in `tools/ci/tool-list.sh`.
|
||||
|
||||
@@ -83,6 +83,7 @@ https://spdx.org/licenses
|
||||
| ---- | -------------------------------- | ------------------------------- | ------------------ | ------- |
|
||||
| [**cargo-binstall**][cargo-binstall] | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/cargo-bins/cargo-binstall/releases) | Linux, macOS, Windows | [GPL-3.0](https://github.com/cargo-bins/cargo-binstall/blob/HEAD/crates/bin/LICENSE) |
|
||||
| [**cargo-deny**](https://github.com/EmbarkStudios/cargo-deny) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/EmbarkStudios/cargo-deny/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/EmbarkStudios/cargo-deny/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/EmbarkStudios/cargo-deny/blob/HEAD/LICENSE-MIT) |
|
||||
| [**cargo-careful**](https://github.com/RalfJung/cargo-careful) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/RalfJung/cargo-careful/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/RalfJung/cargo-careful/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/RalfJung/cargo-careful/blob/HEAD/LICENSE-MIT) |
|
||||
| [**cargo-dinghy**](https://github.com/sonos/dinghy) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/sonos/dinghy/releases) | Linux, macOS | [Apache-2.0](https://github.com/sonos/dinghy/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/sonos/dinghy/blob/HEAD/LICENSE-MIT) |
|
||||
| [**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) |
|
||||
|
||||
69
main.sh
69
main.sh
@@ -78,7 +78,11 @@ download_and_extract() {
|
||||
tar_args+=("xjf")
|
||||
if ! type -P bzip2 &>/dev/null; then
|
||||
case "${base_distro}" in
|
||||
debian | alpine | fedora) sys_install bzip2 ;;
|
||||
debian | alpine | fedora)
|
||||
echo "::group::Install packages required for installation (bzip2)"
|
||||
sys_install bzip2
|
||||
echo "::endgroup::"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
@@ -86,15 +90,27 @@ download_and_extract() {
|
||||
tar_args+=("xJf")
|
||||
if ! type -P xz &>/dev/null; then
|
||||
case "${base_distro}" in
|
||||
debian) sys_install xz-utils ;;
|
||||
alpine | fedora) sys_install xz ;;
|
||||
debian)
|
||||
echo "::group::Install packages required for installation (xz-utils)"
|
||||
sys_install xz-utils
|
||||
echo "::endgroup::"
|
||||
;;
|
||||
alpine | fedora)
|
||||
echo "::group::Install packages required for installation (xz)"
|
||||
sys_install xz
|
||||
echo "::endgroup::"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
*.zip)
|
||||
if ! type -P unzip &>/dev/null; then
|
||||
case "${base_distro}" in
|
||||
debian | alpine | fedora) sys_install unzip ;;
|
||||
debian | alpine | fedora)
|
||||
echo "::group::Install packages required for installation (unzip)"
|
||||
sys_install unzip
|
||||
echo "::endgroup::"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
@@ -261,9 +277,9 @@ apt_install() {
|
||||
apt_update
|
||||
fi
|
||||
if type -P sudo &>/dev/null; then
|
||||
retry sudo apt-get -o Acquire::Retries=10 -qq -o Dpkg::Use-Pty=0 install -y --no-install-recommends "$@"
|
||||
retry sudo apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends "$@"
|
||||
else
|
||||
retry apt-get -o Acquire::Retries=10 -qq -o Dpkg::Use-Pty=0 install -y --no-install-recommends "$@"
|
||||
retry apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends "$@"
|
||||
fi
|
||||
}
|
||||
apt_remove() {
|
||||
@@ -414,21 +430,37 @@ cargo_bin="${CARGO_HOME:-"${HOME}/.cargo"}/bin"
|
||||
# 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
|
||||
if [[ ! -d "${cargo_bin}" ]] || { [[ "${host_os}" != "windows" ]] && [[ "$(type -P cargo || true)" != "${cargo_bin}/cargo${exe}" ]]; }; then
|
||||
cargo_bin=/usr/local/bin
|
||||
fi
|
||||
|
||||
if ! type -P jq &>/dev/null || ! type -P curl &>/dev/null || ! type -P tar &>/dev/null; then
|
||||
case "${base_distro}" in
|
||||
debian | alpine) sys_install ca-certificates curl jq tar ;;
|
||||
fedora)
|
||||
if [[ "${dnf}" == "yum" ]]; then
|
||||
# On RHEL7-based distribution jq requires EPEL
|
||||
sys_install ca-certificates curl tar epel-release
|
||||
sys_install jq --enablerepo=epel
|
||||
else
|
||||
sys_install ca-certificates curl jq tar
|
||||
debian | fedora | alpine)
|
||||
echo "::group::Install packages required for installation (jq, curl, and/or tar)"
|
||||
sys_packages=()
|
||||
if ! type -P curl &>/dev/null; then
|
||||
sys_packages+=(ca-certificates curl)
|
||||
fi
|
||||
if ! type -P tar &>/dev/null; then
|
||||
sys_packages+=(tar)
|
||||
fi
|
||||
if [[ "${dnf:-}" == "yum" ]]; then
|
||||
# On RHEL7-based distribution jq requires EPEL
|
||||
if ! type -P jq &>/dev/null; then
|
||||
sys_packages+=(epel-release)
|
||||
sys_install "${sys_packages[@]}"
|
||||
sys_install jq --enablerepo=epel
|
||||
else
|
||||
sys_install "${sys_packages[@]}"
|
||||
fi
|
||||
else
|
||||
if ! type -P jq &>/dev/null; then
|
||||
sys_packages+=(jq)
|
||||
fi
|
||||
sys_install "${sys_packages[@]}"
|
||||
fi
|
||||
echo "::endgroup::"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
@@ -463,7 +495,11 @@ for tool in "${tools[@]}"; do
|
||||
fi
|
||||
if ! type -P unzip &>/dev/null; then
|
||||
case "${base_distro}" in
|
||||
debian | alpine | fedora) sys_install unzip ;;
|
||||
debian | alpine | fedora)
|
||||
echo "::group::Install packages required for installation (unzip)"
|
||||
sys_install unzip
|
||||
echo "::endgroup::"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
mkdir -p "${tmp_dir}"
|
||||
@@ -557,6 +593,7 @@ for tool in "${tools[@]}"; do
|
||||
info "${tool} installed at $(type -P "${tool}${exe}")"
|
||||
# At least cargo-udeps 0.1.30 and wasm-pack 0.12.0 do not support --version option.
|
||||
case "${tool}" in
|
||||
cargo-careful) ;; # cargo-careful 0.3.4 does not support neither --version nor --help option.
|
||||
cargo-*)
|
||||
if type -P cargo &>/dev/null; then
|
||||
case "${tool}" in
|
||||
|
||||
41
manifests/cargo-careful.json
generated
Normal file
41
manifests/cargo-careful.json
generated
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"template": {
|
||||
"x86_64_linux_musl": {
|
||||
"url": "https://github.com/RalfJung/cargo-careful/releases/download/v${version}/cargo-careful.x86_64-unknown-linux-musl"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/RalfJung/cargo-careful/releases/download/v${version}/cargo-careful.x86_64-apple-darwin"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/RalfJung/cargo-careful/releases/download/v${version}/cargo-careful.exe"
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.3.4"
|
||||
},
|
||||
"0.3": {
|
||||
"version": "0.3.4"
|
||||
},
|
||||
"0.3.4": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "a9cfc7775546bd646a9e9252527c5caa56c429d854c6d8664ab4d63ed87827bd"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "b29d263648fc287250a413ebf53ddb37310564ac44bfd71c5a35ca8eaddac22f"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "50cebcb95cda4fa3b4d5010ed6252be92de2748d3f5c00aff3bc6fe5f39c0906"
|
||||
}
|
||||
},
|
||||
"0.3.3": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "bb2b06f4df62110c8ae89a006b548a10a4da36d0f8f3ff67f7417fb51ed96b0a"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "c396bae85ad4b414976ea6943bdb6fb666e56735ad51255ab615399e40641fec"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "87b35993b38fc60c069c45d58e79bae6c8f5253ce2459dff6a6b0b629c7aeb4c"
|
||||
}
|
||||
}
|
||||
}
|
||||
19
manifests/cargo-deny.json
generated
19
manifests/cargo-deny.json
generated
@@ -18,7 +18,24 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.13.9"
|
||||
"version": "0.14.0"
|
||||
},
|
||||
"0.14": {
|
||||
"version": "0.14.0"
|
||||
},
|
||||
"0.14.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "85dee04c86104c84f83b344f29ba3f9e0b57b64da011c478e1e4a677cd59baa0"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "3d03a6a5764b81bd3e4f00bc70974f48bf44fe8346788397ff1a680d7304e755"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "4956fe0a296cee572b878512953f562bd5afdd568efe76131d8ecf72b1740cc3"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "2fc95e449d086694aa76c1306e9e5a1762491f99d14a1d46a6b524bed20a94b7"
|
||||
}
|
||||
},
|
||||
"0.13": {
|
||||
"version": "0.13.9"
|
||||
|
||||
21
manifests/cargo-llvm-cov.json
generated
21
manifests/cargo-llvm-cov.json
generated
@@ -17,10 +17,27 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.5.23"
|
||||
"version": "0.5.24"
|
||||
},
|
||||
"0.5": {
|
||||
"version": "0.5.23"
|
||||
"version": "0.5.24"
|
||||
},
|
||||
"0.5.24": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "e1c15ac5a583eeb4c478eed0222c3a3629aff3c9f151d8bdf7b50704ef9073c6"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "c12b25c44fd1b1b76ecfff7ca1ed4a29b2ec6f9c707f0d09a8716ea7513a557d"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "e4221c57b1cd759c0c659f66673f0fd5a03a1a8d2f3c95462b9af966273301c6"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "0f3edd524e10b30c26c6ef7ff069843e89a75441c5f281254c2e65e028ccf29e"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "0d90b623b4dfa4fe631aaff13b891096224346ce907f0dbd61ae9276717f1bec"
|
||||
}
|
||||
},
|
||||
"0.5.23": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
24
manifests/cargo-minimal-versions.json
generated
24
manifests/cargo-minimal-versions.json
generated
@@ -20,10 +20,30 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.1.12"
|
||||
"version": "0.1.13"
|
||||
},
|
||||
"0.1": {
|
||||
"version": "0.1.12"
|
||||
"version": "0.1.13"
|
||||
},
|
||||
"0.1.13": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "7bafe9e8c27207845edb3940e3a91f7cbae7a318472267610017fb6b10d8c7a2"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "79bf05f75f95e20641181d7c5576fa18a9b8eb11ad640a979a8916d8b6887831"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "ab7849653698babfc74dc865c87c3683594174e8f53201dc2bbcdc2100e9b4c8"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "c5a1b3d68fc25420806576bc3d947fbb71011f30153c29ff1de162c80dc167e9"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "e7ce17977d4fc48d7a240989edf0c88511cee8573133504f0af5b4f7070893cf"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "f0f501bb1026cb5e48db5ccff3a16dcc6832d5d2f9da353f17337f86fbceca38"
|
||||
}
|
||||
},
|
||||
"0.1.12": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
21
manifests/cargo-nextest.json
generated
21
manifests/cargo-nextest.json
generated
@@ -17,10 +17,27 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.9.54"
|
||||
"version": "0.9.55"
|
||||
},
|
||||
"0.9": {
|
||||
"version": "0.9.54"
|
||||
"version": "0.9.55"
|
||||
},
|
||||
"0.9.55": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "b5bab814d720561c002b5cbe899f997c20407689cfba23754b5a6c20ae3cac4a"
|
||||
},
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "2ae6cd6198a60c73e906ed99fcc7254ae6dae68076ea2c24f5acda83c5918ffd"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "adbcbd9c2c1634e90c0cc8f376633ff76242a722a81938ecda6fe9131cc90aa6"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "64280ff486b3af59a7c4e095f293f292211b334b9b17c7d4bd45445aabfe15e5"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "0dbd309e53c001a18afb5f3a3839d0427421bc06ba057b28506d08e7ae2fb20a"
|
||||
}
|
||||
},
|
||||
"0.9.54": {
|
||||
"x86_64_linux_gnu": {
|
||||
|
||||
24
manifests/cargo-no-dev-deps.json
generated
24
manifests/cargo-no-dev-deps.json
generated
@@ -20,10 +20,30 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.2.2"
|
||||
"version": "0.2.3"
|
||||
},
|
||||
"0.2": {
|
||||
"version": "0.2.2"
|
||||
"version": "0.2.3"
|
||||
},
|
||||
"0.2.3": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "ccd4ee0b1cbe122657d5968ad27712b9ecb291aa58e5ec6e1b2964e78f9f00ee"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "2b7670703e8daaf854f373da5eacd3c9ea26ab28f9ceac6b24351fdf8e2e98df"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "f745b034340885a721fcf7c2eb23e4ef57809cf7304d411b434173c0e7085457"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "2b012dabefa62da7e97e426f0dbf45bb38218b5570e32057aa732551fccad8d4"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "5af57c8f508d1fe04ec7ef74af6e6689c644ff2a0fa0ce36befe68920f819c52"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "a63f26daee3de974ecdb1cea8c3e0918000acd1098c0a63b34c73ae4362b043b"
|
||||
}
|
||||
},
|
||||
"0.2.2": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
39
manifests/dprint.json
generated
39
manifests/dprint.json
generated
@@ -20,7 +20,44 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.39.1"
|
||||
"version": "0.40.1"
|
||||
},
|
||||
"0.40": {
|
||||
"version": "0.40.1"
|
||||
},
|
||||
"0.40.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "0bc9cf7e191bd0c9a3e0ff84c77837da1a14f399220246d1955774135c0e40e6"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "a510053186e3cc9a802807cccf3e5eac3427fa1ceddd3e6f9ccb59dce7051ac0"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "a51788272cf3412f7cdaecde1c570e22f93f01f89ae14587712b0f8f321a47e2"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "53056d49e4c4394f52de95a3910a9d4a8986287f728886f0d768d2908975e92e"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "8b8826460309a6306a3bab9150bd84344eccb59ca0e8c38ca551dfea6c1efc9b"
|
||||
}
|
||||
},
|
||||
"0.40.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "4ca464e5d57d2fcffaa724a4fcecd4b75a8a264df8e673feda0ca94267d07416"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "7da589860a440717b7d1e6153394509fa2a2b74d1c0b24a669920da172c805ce"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "372c6cd7665f1526a821cc3676d36036a6137609c6dcbfaa2601a7da8b0d0bb4"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "693b5d943a0f705be6379c79135f7e9d9bcc590d2b237e6344196fed62d817c7"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "a0b67859e733330d99809c8307095f56723ba9c3af01b1ffb7a03f1290e19c92"
|
||||
}
|
||||
},
|
||||
"0.39": {
|
||||
"version": "0.39.1"
|
||||
|
||||
39
manifests/syft.json
generated
39
manifests/syft.json
generated
@@ -27,7 +27,44 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.85.0"
|
||||
"version": "0.86.1"
|
||||
},
|
||||
"0.86": {
|
||||
"version": "0.86.1"
|
||||
},
|
||||
"0.86.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "6316bff6b9a40c893422ec4df12c7da6a200f7ca08842cccc39bf94cd69f28c8"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "5e506e96ac2ae01e9d2598e66dcc9375d0d4018031e54725e25b26bc0ed9f177"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "b0a8141b46de13ccf82dd12fd8eddb77888aef770ef210ee35f9c68a61122b93"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "ed143b563c231ab3acdf805ff4b68d808d4ccf2ed35ec829aa5c377de0cc02ee"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "e538cc1881d9b2446d4d20ea19f650e567cb729c38ad05c268c712450bcf7ecf"
|
||||
}
|
||||
},
|
||||
"0.86.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "f05da10cbf60cb5f9edcd8da79762bc5b4a495d828bad23b301632ffc18ddfb1"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "d8c7169086347427bc1317ce484d21049331f34c516f209e01335b6c4ba89648"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "ffb447ca43ac4761796f9463b88b2bdca5f45169ac5ace86413c70394cefdc3e"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "c6aa2fe68101b349b8426c0fb119b98d24a361e3bdac0554f477c5a943bb288d"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "e083dbf018cfa5bffd2904a1c4c9277cface05bdfdd2ec6b46b171091c3e6a91"
|
||||
}
|
||||
},
|
||||
"0.85": {
|
||||
"version": "0.85.0"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
set -euxo pipefail
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
cd "$(dirname "$0")"/../..
|
||||
|
||||
@@ -16,6 +16,8 @@ fi
|
||||
git config user.name "Taiki Endo"
|
||||
git config user.email "te316e89@gmail.com"
|
||||
|
||||
set -x
|
||||
|
||||
for manifest in manifests/*.json; do
|
||||
git add -N "${manifest}"
|
||||
if ! git diff --exit-code -- "${manifest}"; then
|
||||
|
||||
132
tools/ci/tool-list.sh
Executable file
132
tools/ci/tool-list.sh
Executable file
@@ -0,0 +1,132 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
cd "$(dirname "$0")"/../..
|
||||
|
||||
# They don't provide prebuilt binaries for musl or old glibc host.
|
||||
glibc_pre_2_31_incompat=(
|
||||
zola
|
||||
)
|
||||
glibc_pre_2_27_incompat=(
|
||||
"${glibc_pre_2_31_incompat[@]}"
|
||||
cargo-watch
|
||||
mdbook-linkcheck
|
||||
protoc
|
||||
valgrind
|
||||
wasmtime
|
||||
)
|
||||
musl_incompat=(
|
||||
"${glibc_pre_2_27_incompat[@]}"
|
||||
)
|
||||
|
||||
incompat_tools=()
|
||||
case "${1:-}" in
|
||||
'') version=latest ;;
|
||||
major.minor.patch | major.minor | major)
|
||||
version="$1"
|
||||
# Specifying the version of valgrind and cargo-binstall is not supported.
|
||||
incompat_tools+=(valgrind cargo-binstall)
|
||||
;;
|
||||
*)
|
||||
echo "tool=$1"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
case "$(uname -s)" in
|
||||
Linux)
|
||||
host_os=linux
|
||||
ldd_version=$(ldd --version 2>&1 || true)
|
||||
if grep <<<"${ldd_version}" -q 'musl'; then
|
||||
incompat_tools+=("${musl_incompat[@]}")
|
||||
else
|
||||
host_glibc_version=$(grep <<<"${ldd_version}" -E "GLIBC|GNU libc" | sed "s/.* //g")
|
||||
higher_glibc_version=$(sort <<<"2.31"$'\n'"${host_glibc_version}" -Vu | tail -1)
|
||||
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
|
||||
higher_glibc_version=$(sort <<<"2.27"$'\n'"${host_glibc_version}" -Vu | tail -1)
|
||||
if [[ "${higher_glibc_version}" == "${host_glibc_version}" ]]; then
|
||||
incompat_tools+=("${glibc_pre_2_31_incompat[@]}")
|
||||
else
|
||||
incompat_tools+=("${glibc_pre_2_27_incompat[@]}")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if ! type -P snap &>/dev/null; then
|
||||
incompat_tools+=(valgrind)
|
||||
fi
|
||||
;;
|
||||
Darwin) host_os=macos ;;
|
||||
MINGW* | MSYS* | CYGWIN* | Windows_NT) host_os=windows ;;
|
||||
*) bail "unrecognized OS type '$(uname -s)'" ;;
|
||||
esac
|
||||
|
||||
tools=()
|
||||
for manifest in tools/codegen/base/*.json; do
|
||||
tool_name=$(basename "${manifest%.*}")
|
||||
case "${host_os}" in
|
||||
linux*)
|
||||
for incompat in ${incompat_tools[@]+"${incompat_tools[@]}"}; do
|
||||
if [[ "${incompat}" == "${tool_name}" ]]; then
|
||||
tool_name=''
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
*)
|
||||
if [[ "$(jq -r ".platform.x86_64_${host_os}" "${manifest}")" == "null" ]]; then
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [[ -n "${tool_name}" ]]; then
|
||||
if [[ "${version}" != "latest" ]]; then
|
||||
latest_version="$(jq -r ".latest.version" "manifests/${tool_name}.json")"
|
||||
case "${version}" in
|
||||
major.minor.patch) tool_name+="@${latest_version}" ;;
|
||||
major.minor) tool_name+="@${latest_version%.*}" ;;
|
||||
major) tool_name+="@${latest_version%%.*}" ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
fi
|
||||
if [[ "${tool_name}" != *"@0" ]] && [[ "${tool_name}" != *"@0.0" ]]; then
|
||||
tools+=("${tool_name}")
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if [[ "${version}" != "latest" ]]; then
|
||||
tools_tmp=()
|
||||
for tool in "${tools[@]}"; do
|
||||
tools_tmp+=("${tool}")
|
||||
done
|
||||
tools=("${tools_tmp[@]}")
|
||||
fi
|
||||
|
||||
# Not manifest-based
|
||||
case "${host_os}" in
|
||||
linux*)
|
||||
# Installing snap to container is difficult...
|
||||
# Specifying the version of valgrind is not supported.
|
||||
if type -P snap &>/dev/null && [[ "${version}" == "latest" ]]; then
|
||||
tools+=(valgrind)
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# cargo-watch/watchexec-cli is supported by cargo-binstall (through quickinstall)
|
||||
case "${version}" in
|
||||
latest) tools+=(cargo-watch watchexec-cli) ;;
|
||||
major.minor.patch) tools+=(cargo-watch@8.1.1 watchexec-cli@1.20.5) ;;
|
||||
major.minor) tools+=(cargo-watch@8.1 watchexec-cli@1.20) ;;
|
||||
major) tools+=(cargo-watch@8 watchexec-cli@1) ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
|
||||
# sort and dedup
|
||||
IFS=$'\n'
|
||||
# shellcheck disable=SC2207
|
||||
tools=($(LC_ALL=C sort -u <<<"${tools[*]}"))
|
||||
IFS=$'\n\t'
|
||||
|
||||
# TODO: inject random space before/after of tool name for testing https://github.com/taiki-e/install-action/issues/115.
|
||||
IFS=','
|
||||
echo "tool=${tools[*]}"
|
||||
IFS=$'\n\t'
|
||||
12
tools/codegen/base/cargo-careful.json
Normal file
12
tools/codegen/base/cargo-careful.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"repository": "https://github.com/RalfJung/cargo-careful",
|
||||
"tag_prefix": "v",
|
||||
"asset_name": "${package}.${rust_target}",
|
||||
"platform": {
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}.exe"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user