mirror of
https://github.com/taiki-e/install-action.git
synced 2026-04-27 01:20:28 +00:00
Compare commits
65 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
100e23f1d0 | ||
|
|
ee46a3debe | ||
|
|
5729c89463 | ||
|
|
b572a9de6f | ||
|
|
abf895aa42 | ||
|
|
f3e04cf24a | ||
|
|
bcdb46af7d | ||
|
|
a5ddc5a290 | ||
|
|
e2ceb8a503 | ||
|
|
4222c00e29 | ||
|
|
dd4a3046d3 | ||
|
|
e02c98b988 | ||
|
|
881201d335 | ||
|
|
68f6e9af1b | ||
|
|
d86eb37abb | ||
|
|
0ed897e40f | ||
|
|
f6d557a493 | ||
|
|
47943d5b8d | ||
|
|
5b20f8136e | ||
|
|
6a5e5c2027 | ||
|
|
69538e2103 | ||
|
|
a8a128c2d2 | ||
|
|
2bc1761887 | ||
|
|
8a60518f4e | ||
|
|
30a11dbd9e | ||
|
|
3e3b268956 | ||
|
|
19a89ed24b | ||
|
|
309ee82715 | ||
|
|
d5ce3a6de4 | ||
|
|
9531aeedc3 | ||
|
|
07a34f8347 | ||
|
|
e626313db4 | ||
|
|
01c63d291f | ||
|
|
43f5aa7172 | ||
|
|
1330af6455 | ||
|
|
01ad6befc0 | ||
|
|
0a18e2472c | ||
|
|
ca13ba3e0d | ||
|
|
fa446e93ef | ||
|
|
3c1a9d610d | ||
|
|
5ee12b2568 | ||
|
|
02185b5b43 | ||
|
|
56182455cc | ||
|
|
b67c820ac3 | ||
|
|
d0c2bb4cff | ||
|
|
a36362bfc6 | ||
|
|
2d1ca68f02 | ||
|
|
f6578d890d | ||
|
|
e7b91e1d2b | ||
|
|
5a6e4c785f | ||
|
|
762078b2b9 | ||
|
|
feb3c20d8e | ||
|
|
4306070abe | ||
|
|
23b90ae71a | ||
|
|
f9c15f1341 | ||
|
|
61977646cd | ||
|
|
a6bc18a46c | ||
|
|
df5666f536 | ||
|
|
8d078757e8 | ||
|
|
a0060a7f49 | ||
|
|
66c4dcc03d | ||
|
|
16647abe1b | ||
|
|
3eb90b20bc | ||
|
|
c2a32441ec | ||
|
|
45b6915b2c |
6
.github/.cspell/project-dictionary.txt
vendored
6
.github/.cspell/project-dictionary.txt
vendored
@@ -2,8 +2,11 @@ almalinux
|
||||
archlinux
|
||||
bindgen
|
||||
binstall
|
||||
choco
|
||||
coreutils
|
||||
cyclonedx
|
||||
cygdrive
|
||||
deepsource
|
||||
distro
|
||||
doas
|
||||
dprint
|
||||
@@ -20,7 +23,9 @@ protoc
|
||||
pubkey
|
||||
pwsh
|
||||
quickinstall
|
||||
rclone
|
||||
rdme
|
||||
requirechecksums
|
||||
sccache
|
||||
syft
|
||||
udeps
|
||||
@@ -28,3 +33,4 @@ wasmtime
|
||||
watchexec
|
||||
xbuild
|
||||
xscale
|
||||
zigbuild
|
||||
|
||||
22
.github/workflows/ci.yml
vendored
22
.github/workflows/ci.yml
vendored
@@ -9,6 +9,7 @@ on:
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
- ci-*
|
||||
schedule:
|
||||
- cron: '0 0,3,6,9,12,15,18,21 * * *'
|
||||
workflow_dispatch:
|
||||
@@ -41,6 +42,7 @@ jobs:
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
- os: ubuntu-22.04
|
||||
- os: ubuntu-24.04
|
||||
- os: ubuntu-22.04
|
||||
tool: major.minor.patch
|
||||
- os: ubuntu-22.04
|
||||
@@ -52,6 +54,11 @@ jobs:
|
||||
- os: macos-14
|
||||
- os: windows-2019
|
||||
- os: windows-2022
|
||||
# https://github.com/taiki-e/install-action/pull/518#issuecomment-2160736760
|
||||
- os: windows-2022
|
||||
bash: msys64
|
||||
- os: windows-2022
|
||||
bash: cygwin
|
||||
runs-on: ${{ matrix.os }}
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
@@ -61,6 +68,18 @@ jobs:
|
||||
- name: Generate tool list
|
||||
id: tool-list
|
||||
run: tools/ci/tool-list.sh "${{ matrix.tool }}" >>"${GITHUB_OUTPUT}"
|
||||
- run: |
|
||||
set -eEuxo pipefail
|
||||
echo "C:\msys64\mingw32\bin" >> $GITHUB_PATH
|
||||
echo "C:\msys64\usr\bin" >> $GITHUB_PATH
|
||||
if: matrix.bash == 'msys64'
|
||||
- run: |
|
||||
set -eEuxo pipefail
|
||||
choco install --no-progress --requirechecksums cygwin
|
||||
echo "C:\tools\cygwin\bin" >> $GITHUB_PATH
|
||||
echo "C:\tools\cygwin\usr\bin" >> $GITHUB_PATH
|
||||
if: matrix.bash == 'cygwin'
|
||||
- run: env
|
||||
- uses: ./
|
||||
with:
|
||||
tool: ${{ steps.tool-list.outputs.tool }}
|
||||
@@ -83,7 +102,7 @@ jobs:
|
||||
run: just --version & shfmt --version & protoc --version
|
||||
shell: cmd
|
||||
if: startsWith(matrix.os, 'windows')
|
||||
# We use the version output to check the version of binstall, but they
|
||||
# We use the version output to check the version of cargo-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
|
||||
# from "cargo-binstall <version>" to "<version>")
|
||||
@@ -91,6 +110,7 @@ jobs:
|
||||
if [[ "$(cargo binstall -V)" != "$(jq -r '.latest.version' manifests/cargo-binstall.json)" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
if: matrix.bash != 'cygwin'
|
||||
|
||||
test-container:
|
||||
strategy:
|
||||
|
||||
135
CHANGELOG.md
135
CHANGELOG.md
@@ -10,9 +10,124 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [2.40.2] - 2024-06-21
|
||||
|
||||
- Update `zola@latest` to 0.19.0.
|
||||
|
||||
- Update `wasmtime@latest` to 22.0.0.
|
||||
|
||||
## [2.40.1] - 2024-06-20
|
||||
|
||||
- Update `cargo-zigbuild@latest` to 0.19.0.
|
||||
|
||||
- Update `cargo-binstall@latest` to 1.7.2.
|
||||
|
||||
- Update `biome@latest` to 1.8.2.
|
||||
|
||||
## [2.40.0] - 2024-06-19
|
||||
|
||||
- Fix an installation issue on some container environments. ([#545](https://github.com/taiki-e/install-action/pull/545))
|
||||
|
||||
## [2.39.2] - 2024-06-18
|
||||
|
||||
- Update `dprint@latest` to 0.46.3.
|
||||
|
||||
- Update `cargo-semver-checks@latest` to 0.32.0.
|
||||
|
||||
- Update `cargo-dinghy@latest` to 0.7.2.
|
||||
|
||||
## [2.39.1] - 2024-06-15
|
||||
|
||||
- Update `cargo-binstall@latest` to 1.7.1.
|
||||
|
||||
## [2.39.0] - 2024-06-15
|
||||
|
||||
- Update `cargo-binstall@latest` to 1.7.0.
|
||||
|
||||
## [2.38.7] - 2024-06-15
|
||||
|
||||
- Update `syft@latest` to 1.7.0.
|
||||
|
||||
- Update `just@latest` to 1.29.1.
|
||||
|
||||
- Update `rclone@latest` to 1.67.0.
|
||||
|
||||
## [2.38.6] - 2024-06-14
|
||||
|
||||
- Update `just@latest` to 1.29.0.
|
||||
|
||||
## [2.38.5] - 2024-06-13
|
||||
|
||||
- Update `typos@latest` to 1.22.7.
|
||||
|
||||
- Update `espup@latest` to 0.12.0.
|
||||
|
||||
## [2.38.4] - 2024-06-11
|
||||
|
||||
- Workaround Cygwin bash's buggy behavior. ([#534](https://github.com/taiki-e/install-action/pull/534))
|
||||
This fixes an installation issue when default bash was overridden like the following:
|
||||
|
||||
```sh
|
||||
echo "C:\tools\cygwin\bin" >> $GITHUB_PATH
|
||||
```
|
||||
|
||||
## [2.38.3] - 2024-06-11
|
||||
|
||||
- Workaround MSYS64 bash's buggy behavior. ([#533](https://github.com/taiki-e/install-action/pull/533))
|
||||
This fixes an installation issue when default bash was overridden like the following:
|
||||
|
||||
```sh
|
||||
echo "C:\msys64\usr\bin" >> $GITHUB_PATH
|
||||
```
|
||||
|
||||
- Update `typos@latest` to 1.22.4.
|
||||
|
||||
- Update `earthly@latest` to 0.8.14.
|
||||
|
||||
## [2.38.2] - 2024-06-10
|
||||
|
||||
- Update `syft@latest` to 1.6.0.
|
||||
|
||||
## [2.38.1] - 2024-06-10
|
||||
|
||||
- Update `biome@latest` to 1.8.1.
|
||||
|
||||
## [2.38.0] - 2024-06-09
|
||||
|
||||
- Support `earthly`. ([#520](https://github.com/taiki-e/install-action/pull/520), thanks @jayvdb)
|
||||
|
||||
- Support `deepsource`. ([#522](https://github.com/taiki-e/install-action/pull/522), thanks @jayvdb)
|
||||
|
||||
- Add `fallback: none` input option to ensure that fallback is not used. ([#517](https://github.com/taiki-e/install-action/pull/517))
|
||||
|
||||
- `cargo-nextest` installation no longer use `cargo-binstall`. ([#518](https://github.com/taiki-e/install-action/pull/518))
|
||||
This improves security, performance, robustness of installation. See [#487](https://github.com/taiki-e/install-action/issues/487) for more.
|
||||
|
||||
- Update `dprint@latest` to 0.46.2.
|
||||
|
||||
- Workaround glibc compatibility issue on archlinux. ([#525](https://github.com/taiki-e/install-action/pull/525), thanks @jayvdb)
|
||||
|
||||
## [2.37.0] - 2024-06-08
|
||||
|
||||
- Support `rclone`. ([#511](https://github.com/taiki-e/install-action/pull/511), thanks @jayvdb)
|
||||
|
||||
- Support `xh`. ([#512](https://github.com/taiki-e/install-action/pull/512), thanks @jayvdb)
|
||||
|
||||
- Support `jaq`. ([#513](https://github.com/taiki-e/install-action/pull/513), thanks @jayvdb)
|
||||
|
||||
- Support `wait-for-them`. ([#514](https://github.com/taiki-e/install-action/pull/514), thanks @jayvdb)
|
||||
|
||||
- Update `cargo-binstall@latest` to 1.6.9.
|
||||
|
||||
- Update `typos@latest` to 1.22.3.
|
||||
|
||||
## [2.36.0] - 2024-06-07
|
||||
|
||||
- Support `cargo-zigbuild`. ([#508](https://github.com/taiki-e/install-action/pull/508), thanks @jayvdb)
|
||||
|
||||
## [2.35.0] - 2024-06-05
|
||||
|
||||
- Support `cargo-semver-checks` ([#507](https://github.com/taiki-e/install-action/pull/507), thanks @jayvdb)
|
||||
- Support `cargo-semver-checks`. ([#507](https://github.com/taiki-e/install-action/pull/507), thanks @jayvdb)
|
||||
|
||||
- Update `osv-scanner@latest` to 1.7.4. ([#506](https://github.com/taiki-e/install-action/pull/506), thanks @nmcdaines)
|
||||
|
||||
@@ -2255,7 +2370,23 @@ Note: This release is considered a breaking change because installing on version
|
||||
|
||||
Initial release
|
||||
|
||||
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.35.0...HEAD
|
||||
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.40.2...HEAD
|
||||
[2.40.2]: https://github.com/taiki-e/install-action/compare/v2.40.1...v2.40.2
|
||||
[2.40.1]: https://github.com/taiki-e/install-action/compare/v2.40.0...v2.40.1
|
||||
[2.40.0]: https://github.com/taiki-e/install-action/compare/v2.39.2...v2.40.0
|
||||
[2.39.2]: https://github.com/taiki-e/install-action/compare/v2.39.1...v2.39.2
|
||||
[2.39.1]: https://github.com/taiki-e/install-action/compare/v2.39.0...v2.39.1
|
||||
[2.39.0]: https://github.com/taiki-e/install-action/compare/v2.38.7...v2.39.0
|
||||
[2.38.7]: https://github.com/taiki-e/install-action/compare/v2.38.6...v2.38.7
|
||||
[2.38.6]: https://github.com/taiki-e/install-action/compare/v2.38.5...v2.38.6
|
||||
[2.38.5]: https://github.com/taiki-e/install-action/compare/v2.38.4...v2.38.5
|
||||
[2.38.4]: https://github.com/taiki-e/install-action/compare/v2.38.3...v2.38.4
|
||||
[2.38.3]: https://github.com/taiki-e/install-action/compare/v2.38.2...v2.38.3
|
||||
[2.38.2]: https://github.com/taiki-e/install-action/compare/v2.38.1...v2.38.2
|
||||
[2.38.1]: https://github.com/taiki-e/install-action/compare/v2.38.0...v2.38.1
|
||||
[2.38.0]: https://github.com/taiki-e/install-action/compare/v2.37.0...v2.38.0
|
||||
[2.37.0]: https://github.com/taiki-e/install-action/compare/v2.36.0...v2.37.0
|
||||
[2.36.0]: https://github.com/taiki-e/install-action/compare/v2.35.0...v2.36.0
|
||||
[2.35.0]: https://github.com/taiki-e/install-action/compare/v2.34.3...v2.35.0
|
||||
[2.34.3]: https://github.com/taiki-e/install-action/compare/v2.34.2...v2.34.3
|
||||
[2.34.2]: https://github.com/taiki-e/install-action/compare/v2.34.1...v2.34.2
|
||||
|
||||
14
README.md
14
README.md
@@ -79,6 +79,18 @@ See [TOOLS.md](TOOLS.md) for the list of tools that are installed from manifests
|
||||
|
||||
If a tool not included in the list above is specified, this action uses [cargo-binstall] as a fallback.
|
||||
|
||||
If you want to ensure that fallback is not used, use `fallback: none`.
|
||||
|
||||
```yaml
|
||||
- uses: taiki-e/install-action@v2
|
||||
with:
|
||||
tool: cargo-hack
|
||||
# Possible values:
|
||||
# - none: disable all fallback
|
||||
# - cargo-binstall (default): cargo-binstall (includes quickinstall)
|
||||
fallback: none
|
||||
```
|
||||
|
||||
### Add support for new tool
|
||||
|
||||
See the [development guide](DEVELOPMENT.md) for how to add support for new tool.
|
||||
@@ -93,6 +105,8 @@ Additionally, we also verify signature if the tool distributes signed archives.
|
||||
|
||||
See the linked documentation for information on security when installed using [snap](https://snapcraft.io/docs) or [cargo-binstall](https://github.com/cargo-bins/cargo-binstall#faq).
|
||||
|
||||
See the [Supported tools section](#supported-tools) for how to ensure that fallback is not used.
|
||||
|
||||
## Compatibility
|
||||
|
||||
This action has been tested for GitHub-hosted runners (Ubuntu, macOS, Windows) and containers (Ubuntu, Debian, Fedora, CentOS, Alma, openSUSE, Arch, Alpine).
|
||||
|
||||
32
TOOLS.md
32
TOOLS.md
@@ -4,13 +4,14 @@ This is a list of tools that are installed from manifests managed in this action
|
||||
|
||||
If a tool not included in the list below is specified, this action uses [cargo-binstall] as a fallback.
|
||||
|
||||
See the [Supported tools section in README.md](README.md#supported-tools) for how to ensure that fallback is not used.
|
||||
|
||||
> 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>
|
||||
> If `/usr/local/bin` is not available, binaries will be installed to `$HOME/.install-action/bin`.<br>
|
||||
> If `$HOME/.cargo/bin` is not available, Rust-related binaries will be installed to `$HOME/.install-action/bin`.<br>
|
||||
|
||||
| Name | Where binaries will be installed | Where will it be installed from | Supported platform | License |
|
||||
| ---- | -------------------------------- | ------------------------------- | ------------------ | ------- |
|
||||
| [**biome**](https://biomejs.dev) | `/usr/local/bin` | [GitHub Releases](https://github.com/biomejs/biome/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/biomejs/biome/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/biomejs/biome/blob/main/LICENSE-MIT) |
|
||||
| [**biome**](https://biomejs.dev) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/biomejs/biome/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/biomejs/biome/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/biomejs/biome/blob/main/LICENSE-MIT) |
|
||||
| [**cargo-audit**](https://github.com/rustsec/rustsec/tree/HEAD/cargo-audit) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rustsec/rustsec/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/rustsec/rustsec/blob/HEAD/cargo-audit/LICENSE-APACHE) OR [MIT](https://github.com/rustsec/rustsec/blob/HEAD/cargo-audit/LICENSE-MIT) |
|
||||
| [**cargo-binstall**](https://github.com/cargo-bins/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-careful**](https://github.com/RalfJung/cargo-careful) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/RalfJung/cargo-careful/releases) | Linux, macOS, Windows | [MIT](https://github.com/RalfJung/cargo-careful/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/RalfJung/cargo-careful/blob/master/LICENSE-APACHE) |
|
||||
@@ -23,38 +24,45 @@ If a tool not included in the list below is specified, this action uses [cargo-b
|
||||
| [**cargo-machete**](https://github.com/bnjbvr/cargo-machete) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/bnjbvr/cargo-machete/releases) | Linux, macOS, Windows | [MIT](https://github.com/bnjbvr/cargo-machete/blob/main/LICENSE.md) |
|
||||
| [**cargo-make**](https://github.com/sagiegurari/cargo-make) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/sagiegurari/cargo-make/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/sagiegurari/cargo-make/blob/master/LICENSE) |
|
||||
| [**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/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-minimal-versions/blob/main/LICENSE-MIT) |
|
||||
| [**cargo-nextest**](https://github.com/nextest-rs/nextest) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/nextest-rs/nextest/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/nextest-rs/nextest/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/nextest-rs/nextest/blob/main/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/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-no-dev-deps/blob/main/LICENSE-MIT) |
|
||||
| [**cargo-rdme**](https://github.com/orium/cargo-rdme) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/orium/cargo-rdme/releases) | Linux, macOS, Windows | [MPL-2.0](https://github.com/orium/cargo-rdme/blob/main/LICENSE.md) |
|
||||
| [**cargo-semver-checks**](https://github.com/obi1kenobi/cargo-semver-checks) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/obi1kenobi/cargo-semver-checks/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/obi1kenobi/cargo-semver-checks/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/obi1kenobi/cargo-semver-checks/blob/main/LICENSE-MIT) |
|
||||
| [**cargo-sort**](https://github.com/DevinR528/cargo-sort) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/DevinR528/cargo-sort/releases) | Linux, macOS, Windows | [Apache-2.0 OR MIT](https://github.com/DevinR528/cargo-sort/blob/55ec89082466f6bb246d870a8d56d166a8e1f08b/Cargo.toml#L5) |
|
||||
| [**cargo-sort**](https://github.com/DevinR528/cargo-sort) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/DevinR528/cargo-sort/releases) | Linux, macOS, Windows | [Apache-2.0 OR MIT](https://github.com/DevinR528/cargo-sort/blob/v1.0.9/Cargo.toml#L5) |
|
||||
| [**cargo-spellcheck**](https://github.com/drahnr/cargo-spellcheck) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/drahnr/cargo-spellcheck/releases) | Linux, Windows | [LGPLv2.1](https://github.com/drahnr/cargo-spellcheck/blob/master/LICENSE-LGPL) |
|
||||
| [**cargo-tarpaulin**](https://github.com/xd009642/tarpaulin) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/xd009642/tarpaulin/releases) | Linux, macOS, Windows | [MIT](https://github.com/xd009642/tarpaulin/blob/develop/LICENSE-MIT) OR [Apache-2.0](https://github.com/xd009642/tarpaulin/blob/develop/LICENSE-APACHE) |
|
||||
| [**cargo-udeps**](https://github.com/est31/cargo-udeps) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/est31/cargo-udeps/releases) | Linux, macOS, Windows | [Apache-2.0 OR MIT](https://github.com/est31/cargo-udeps/blob/HEAD/LICENSE) |
|
||||
| [**cargo-valgrind**](https://github.com/jfrimmel/cargo-valgrind) | `$CARGO_HOME/bin` | [GitHub Releases](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) |
|
||||
| [**cargo-zigbuild**](https://github.com/rust-cross/cargo-zigbuild) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rust-cross/cargo-zigbuild/releases) | Linux, macOS, Windows | [MIT](https://github.com/rust-cross/cargo-zigbuild/blob/main/LICENSE) |
|
||||
| [**cross**](https://github.com/cross-rs/cross) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/cross-rs/cross/releases) | Linux, macOS, Windows | [MIT](https://github.com/cross-rs/cross/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/cross-rs/cross/blob/main/LICENSE-APACHE) |
|
||||
| [**deepsource**](https://github.com/DeepSourceCorp/cli) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/DeepSourceCorp/cli/releases) | Linux, macOS, Windows | [BSD-2-Clause](https://github.com/DeepSourceCorp/cli/blob/master/LICENSE) |
|
||||
| [**dprint**](https://github.com/dprint/dprint) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/dprint/dprint/releases) | Linux, macOS, Windows | [MIT](https://github.com/dprint/dprint/blob/main/LICENSE) |
|
||||
| [**editorconfig-checker**](https://github.com/editorconfig-checker/editorconfig-checker) | `/usr/local/bin` | [GitHub Releases](https://github.com/editorconfig-checker/editorconfig-checker/releases) | Linux, macOS, Windows | [MIT](https://github.com/editorconfig-checker/editorconfig-checker/blob/main/LICENSE) |
|
||||
| [**earthly**](https://github.com/earthly/earthly) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/earthly/earthly/releases) | Linux, macOS, Windows | [MPL-2.0](https://github.com/earthly/earthly/blob/main/LICENSE) |
|
||||
| [**editorconfig-checker**](https://github.com/editorconfig-checker/editorconfig-checker) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/editorconfig-checker/editorconfig-checker/releases) | Linux, macOS, Windows | [MIT](https://github.com/editorconfig-checker/editorconfig-checker/blob/main/LICENSE) |
|
||||
| [**espup**](https://github.com/esp-rs/espup) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/esp-rs/espup/releases) | Linux, macOS, Windows | [MIT](https://github.com/esp-rs/espup/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/esp-rs/espup/blob/main/LICENSE-APACHE) |
|
||||
| [**git-cliff**](https://github.com/orhun/git-cliff) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/orhun/git-cliff/releases) | Linux, macOS, Windows | [MIT](https://github.com/orhun/git-cliff/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/orhun/git-cliff/blob/main/LICENSE-APACHE) |
|
||||
| [**grcov**](https://github.com/mozilla/grcov) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/mozilla/grcov/releases) | Linux, macOS, Windows | [MPL-2.0](https://github.com/mozilla/grcov/blob/HEAD/LICENSE-MPL-2.0) |
|
||||
| [**hyperfine**](https://github.com/sharkdp/hyperfine) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/sharkdp/hyperfine/releases) | Linux, macOS, Windows | [MIT](https://github.com/sharkdp/hyperfine/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/sharkdp/hyperfine/blob/master/LICENSE-APACHE) |
|
||||
| [**jaq**](https://github.com/01mf02/jaq) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/01mf02/jaq/releases) | Linux, macOS, Windows | [MIT](https://github.com/01mf02/jaq/blob/main/LICENSE-MIT) |
|
||||
| [**just**](https://github.com/casey/just) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/casey/just/releases) | Linux, macOS, Windows | [CC0-1.0](https://github.com/casey/just/blob/master/LICENSE) |
|
||||
| [**mdbook**](https://github.com/rust-lang/mdBook) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rust-lang/mdBook/releases) | Linux, macOS, Windows | [MPL-2.0](https://github.com/rust-lang/mdBook/blob/master/LICENSE) |
|
||||
| [**mdbook-linkcheck**](https://github.com/Michael-F-Bryan/mdbook-linkcheck) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases) | Linux, macOS, Windows | [MIT](https://github.com/Michael-F-Bryan/mdbook-linkcheck/blob/master/LICENSE) |
|
||||
| [**nextest**](https://nexte.st/) (alias: `cargo-nextest`)| `$CARGO_HOME/bin` | `cargo-binstall` | Linux, macOS, Windows | [Apache-2.0](https://github.com/nextest-rs/nextest/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/nextest-rs/nextest/blob/HEAD/LICENSE-MIT) |
|
||||
| [**osv-scanner**](https://github.com/google/osv-scanner) | `/usr/local/bin` | [GitHub Releases](https://github.com/google/osv-scanner/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/google/osv-scanner/blob/main/LICENSE) |
|
||||
| [**osv-scanner**](https://github.com/google/osv-scanner) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/google/osv-scanner/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/google/osv-scanner/blob/main/LICENSE) |
|
||||
| [**parse-changelog**](https://github.com/taiki-e/parse-changelog) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/taiki-e/parse-changelog/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-MIT) |
|
||||
| [**protoc**](https://github.com/protocolbuffers/protobuf) | `/usr/local/bin` | [GitHub Releases](https://github.com/protocolbuffers/protobuf/releases) | Linux, macOS, Windows | [BSD-3-Clause](https://github.com/protocolbuffers/protobuf/blob/HEAD/LICENSE) |
|
||||
| [**protoc**](https://github.com/protocolbuffers/protobuf) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/protocolbuffers/protobuf/releases) | Linux, macOS, Windows | [BSD-3-Clause](https://github.com/protocolbuffers/protobuf/blob/HEAD/LICENSE) |
|
||||
| [**rclone**](https://github.com/rclone/rclone) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/rclone/rclone/releases) | Linux, macOS, Windows | [MIT](https://github.com/rclone/rclone/blob/master/COPYING) |
|
||||
| [**sccache**](https://github.com/mozilla/sccache) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/mozilla/sccache/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/mozilla/sccache/blob/main/LICENSE) |
|
||||
| [**shellcheck**](https://www.shellcheck.net) | `/usr/local/bin` | [GitHub Releases](https://github.com/koalaman/shellcheck/releases) | Linux, macOS, Windows | [GPL-3.0](https://github.com/koalaman/shellcheck/blob/master/LICENSE) |
|
||||
| [**shfmt**](https://github.com/mvdan/sh) | `/usr/local/bin` | [GitHub Releases](https://github.com/mvdan/sh/releases) | Linux, macOS, Windows | [BSD-3-Clause](https://github.com/mvdan/sh/blob/master/LICENSE) |
|
||||
| [**syft**](https://github.com/anchore/syft) | `/usr/local/bin` | [GitHub Releases](https://github.com/anchore/syft/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/anchore/syft/blob/main/LICENSE) |
|
||||
| [**shellcheck**](https://www.shellcheck.net) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/koalaman/shellcheck/releases) | Linux, macOS, Windows | [GPL-3.0](https://github.com/koalaman/shellcheck/blob/master/LICENSE) |
|
||||
| [**shfmt**](https://github.com/mvdan/sh) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/mvdan/sh/releases) | Linux, macOS, Windows | [BSD-3-Clause](https://github.com/mvdan/sh/blob/master/LICENSE) |
|
||||
| [**syft**](https://github.com/anchore/syft) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/anchore/syft/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/anchore/syft/blob/main/LICENSE) |
|
||||
| [**typos**](https://github.com/crate-ci/typos) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/crate-ci/typos/releases) | Linux, macOS, Windows | [MIT](https://github.com/crate-ci/typos/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/crate-ci/typos/blob/master/LICENSE-APACHE) |
|
||||
| [**valgrind**](https://valgrind.org/) | `/snap/bin` | [snap](https://snapcraft.io/install/valgrind/ubuntu) | Linux | [GPL-2.0](https://sourceware.org/git/?p=valgrind.git;a=blob;f=COPYING;hb=HEAD) |
|
||||
| [**wait-for-them**](https://github.com/shenek/wait-for-them) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/shenek/wait-for-them/releases) | Linux, macOS, Windows | [GPL-3.0](https://github.com/shenek/wait-for-them/blob/v0.4.0/Cargo.toml#L7) |
|
||||
| [**wasm-bindgen**](https://github.com/rustwasm/wasm-bindgen) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rustwasm/wasm-bindgen/releases) | Linux, macOS, Windows | [MIT](https://github.com/rustwasm/wasm-bindgen/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/rustwasm/wasm-bindgen/blob/main/LICENSE-APACHE) |
|
||||
| [**wasm-pack**](https://github.com/rustwasm/wasm-pack) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rustwasm/wasm-pack/releases) | Linux, macOS, Windows | [MIT](https://github.com/rustwasm/wasm-pack/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/rustwasm/wasm-pack/blob/master/LICENSE-APACHE) |
|
||||
| [**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/main/LICENSE) |
|
||||
| [**xbuild**](https://github.com/rust-mobile/xbuild) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rust-mobile/xbuild/releases) | Linux, macOS, Windows | [Apache-2.0 OR MIT](https://github.com/rust-mobile/xbuild/blob/268939a99a50d7927bce3e343e5d2ed32eb8b30e/xbuild/Cargo.toml#L7) |
|
||||
| [**xbuild**](https://github.com/rust-mobile/xbuild) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rust-mobile/xbuild/releases) | Linux, macOS, Windows | [Apache-2.0 OR MIT](https://github.com/rust-mobile/xbuild/blob/v0.2.0/xbuild/Cargo.toml#L7) |
|
||||
| [**xh**](https://github.com/ducaale/xh) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/ducaale/xh/releases) | Linux, macOS, Windows | [MIT](https://github.com/ducaale/xh/blob/master/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) |
|
||||
|
||||
[cargo-binstall]: https://github.com/cargo-bins/cargo-binstall
|
||||
|
||||
@@ -10,6 +10,10 @@ inputs:
|
||||
description: Whether to enable checksums
|
||||
required: false
|
||||
default: 'true'
|
||||
fallback:
|
||||
description: Whether to use fallback (none or cargo-binstall)
|
||||
required: false
|
||||
default: 'cargo-binstall'
|
||||
|
||||
# Note:
|
||||
# - inputs.* should be manually mapped to INPUT_* due to https://github.com/actions/runner/issues/665
|
||||
@@ -22,3 +26,4 @@ runs:
|
||||
env:
|
||||
INPUT_TOOL: ${{ inputs.tool }}
|
||||
INPUT_CHECKSUM: ${{ inputs.checksum }}
|
||||
INPUT_FALLBACK: ${{ inputs.fallback }}
|
||||
|
||||
107
main.sh
107
main.sh
@@ -197,7 +197,29 @@ read_manifest() {
|
||||
exact_version="${version}"
|
||||
else
|
||||
manifest=$(call_jq -r ".\"${exact_version}\"" "${manifest_dir}/${tool}.json")
|
||||
if [[ "${rust_crate}" != "null" ]]; then
|
||||
# TODO: don't hardcode tool name and use 'immediate_yank_reflection' field in base manifest.
|
||||
case "${tool}" in
|
||||
cargo-nextest | nextest)
|
||||
crate_info=$(retry curl --proto '=https' --tlsv1.2 -fsSL --retry 10 "https://crates.io/api/v1/crates/${rust_crate}")
|
||||
while true; do
|
||||
yanked=$(jq <<<"${crate_info}" -r ".versions[] | select(.num == \"${exact_version}\") | .yanked")
|
||||
if [[ "${yanked}" != "true" ]]; then
|
||||
break
|
||||
fi
|
||||
previous_stable_version=$(jq <<<"${manifest}" -r '.previous_stable_version')
|
||||
if [[ "${previous_stable_version}" == "null" ]]; then
|
||||
break
|
||||
fi
|
||||
info "${tool}@${exact_version} is yanked; downgrade to ${previous_stable_version}"
|
||||
exact_version="${previous_stable_version}"
|
||||
manifest=$(jq -r ".\"${exact_version}\"" "${manifest_dir}/${tool}.json")
|
||||
done
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
case "${host_os}" in
|
||||
linux)
|
||||
# Static-linked binaries compiled for linux-musl will also work on linux-gnu systems and are
|
||||
@@ -212,6 +234,21 @@ read_manifest() {
|
||||
# TODO: However, a warning may make sense.
|
||||
host_platform="${host_arch}_linux_gnu"
|
||||
download_info=$(call_jq <<<"${manifest}" -r ".${host_platform}")
|
||||
elif [[ "${host_env}" == "gnu" ]]; then
|
||||
# TODO: don't hardcode tool name and use 'prefer_linux_gnu' field in base manifest.
|
||||
case "${tool}" in
|
||||
cargo-nextest | nextest)
|
||||
# TODO: don't hardcode required glibc version
|
||||
required_glibc_version=2.27
|
||||
higher_glibc_version=$(sort <<<"${required_glibc_version}"$'\n'"${host_glibc_version}" -Vu | tail -1)
|
||||
if [[ "${higher_glibc_version}" == "${host_glibc_version}" ]]; then
|
||||
# musl build of nextest is slow, so use glibc build if host_env is gnu.
|
||||
# https://github.com/taiki-e/install-action/issues/13
|
||||
host_platform="${host_arch}_linux_gnu"
|
||||
download_info=$(jq <<<"${manifest}" -r ".${host_platform}")
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
macos | windows)
|
||||
@@ -262,11 +299,8 @@ read_download_info() {
|
||||
fi
|
||||
fi
|
||||
if [[ "${rust_crate}" == "null" ]]; then
|
||||
if [[ "${host_os}" == "windows" ]] || [[ ! -e /usr/local/bin ]]; then
|
||||
bin_dir="${install_action_dir}/bin"
|
||||
else
|
||||
bin_dir=/usr/local/bin
|
||||
fi
|
||||
# Moving files to /usr/local/bin requires sudo in some environments, so do not use it: https://github.com/taiki-e/install-action/issues/543
|
||||
bin_dir="${install_action_dir}/bin"
|
||||
else
|
||||
bin_dir="${cargo_bin}"
|
||||
fi
|
||||
@@ -363,7 +397,7 @@ init_install_action_bin_dir() {
|
||||
}
|
||||
canonicalize_windows_path() {
|
||||
case "${host_os}" in
|
||||
windows) sed <<<"$1" 's/^\/c\//C:\\/; s/\//\\/g' ;;
|
||||
windows) sed <<<"$1" 's/^\/cygdrive\//\//; s/^\/c\//C:\\/; s/\//\\/g' ;;
|
||||
*) echo "$1" ;;
|
||||
esac
|
||||
}
|
||||
@@ -402,12 +436,25 @@ case "${enable_checksum}" in
|
||||
*) bail "'checksum' input option must be 'true' or 'false': '${enable_checksum}'" ;;
|
||||
esac
|
||||
|
||||
fallback="${INPUT_FALLBACK:-}"
|
||||
case "${fallback}" in
|
||||
none | cargo-binstall) ;;
|
||||
*) bail "'fallback' input option must be 'none' or 'cargo-binstall': '${fallback}'" ;;
|
||||
esac
|
||||
|
||||
# Refs: https://github.com/rust-lang/rustup/blob/HEAD/rustup-init.sh
|
||||
base_distro=""
|
||||
exe=""
|
||||
case "$(uname -s)" in
|
||||
Linux)
|
||||
host_os=linux
|
||||
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
|
||||
base_distro=$(grep '^ID_LIKE=' /etc/os-release | cut -d= -f2)
|
||||
case "${base_distro}" in
|
||||
@@ -465,21 +512,39 @@ case "$(uname -m)" in
|
||||
esac
|
||||
info "host platform: ${host_arch}_${host_os}"
|
||||
|
||||
install_action_dir="${HOME}/.install-action"
|
||||
home="${HOME}"
|
||||
if [[ "${host_os}" == "windows" ]]; then
|
||||
if [[ "${home}" == "/home/"* ]]; then
|
||||
if [[ -d "${home/\/home\//\/c\/Users\/}" ]]; then
|
||||
# MSYS2 https://github.com/taiki-e/install-action/pull/518#issuecomment-2160736760
|
||||
home="${home/\/home\//\/c\/Users\/}"
|
||||
elif [[ -d "${home/\/home\//\/cygdrive\/c\/Users\/}" ]]; then
|
||||
# Cygwin https://github.com/taiki-e/install-action/issues/224#issuecomment-1720196288
|
||||
home="${home/\/home\//\/cygdrive\/c\/Users\/}"
|
||||
else
|
||||
warn "\$HOME starting /home/ (${home}) on Windows bash is usually fake path, this may cause installation issue"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
install_action_dir="${home}/.install-action"
|
||||
tmp_dir="${install_action_dir}/tmp"
|
||||
cargo_bin="${CARGO_HOME:-"${HOME}/.cargo"}/bin"
|
||||
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 $install_action_dir/bin.
|
||||
if [[ ! -e "${cargo_bin}" ]] || [[ "$(type -P cargo || true)" != "${cargo_bin}/cargo"* ]]; then
|
||||
# $install_action_dir/bin.
|
||||
if [[ "${host_os}" == "windows" ]]; then
|
||||
if type -P cargo &>/dev/null; then
|
||||
info "cargo is located at $(type -P cargo)"
|
||||
cargo_bin=$(dirname "$(type -P cargo)")
|
||||
else
|
||||
cargo_bin="${install_action_dir}/bin"
|
||||
fi
|
||||
elif [[ ! -e "${cargo_bin}" ]] || [[ "$(type -P cargo || true)" != "${cargo_bin}/cargo"* ]]; then
|
||||
if type -P cargo &>/dev/null; then
|
||||
info "cargo is located at $(type -P cargo)"
|
||||
fi
|
||||
if [[ "${host_os}" == "windows" ]] || [[ ! -e /usr/local/bin ]]; then
|
||||
cargo_bin="${install_action_dir}/bin"
|
||||
else
|
||||
cargo_bin=/usr/local/bin
|
||||
fi
|
||||
# Moving files to /usr/local/bin requires sudo in some environments, so do not use it: https://github.com/taiki-e/install-action/issues/543
|
||||
cargo_bin="${install_action_dir}/bin"
|
||||
fi
|
||||
|
||||
jq_use_b=''
|
||||
@@ -507,6 +572,10 @@ case "${host_os}" in
|
||||
fi
|
||||
else
|
||||
if ! type -P jq &>/dev/null; then
|
||||
# https://github.com/taiki-e/install-action/issues/521
|
||||
if [[ "${base_distro}" == "arch" ]]; then
|
||||
sys_packages+=(glibc)
|
||||
fi
|
||||
sys_packages+=(jq)
|
||||
fi
|
||||
sys_install "${sys_packages[@]}"
|
||||
@@ -714,7 +783,8 @@ for tool in "${tools[@]}"; do
|
||||
case "${tool_bin_stem}" in
|
||||
# biome up to 1.2.2 exits with 1 on both --version and --help flags.
|
||||
# cargo-machete up to 0.6.0 does not support --version flag.
|
||||
biome | cargo-machete) rx "${tool_bin_stem}" --version || true ;;
|
||||
# wait-for-them 0.4.0 exits with 1 on both --version and --help flags.
|
||||
biome | cargo-machete | wait-for-them) rx "${tool_bin_stem}" --version || true ;;
|
||||
# these packages support neither --version nor --help flag.
|
||||
cargo-careful | wasm-bindgen-test-runner) ;;
|
||||
# wasm2es6js does not support --version flag and --help flag doesn't contains version info.
|
||||
@@ -742,6 +812,9 @@ done
|
||||
|
||||
if [[ ${#unsupported_tools[@]} -gt 0 ]]; then
|
||||
IFS=','
|
||||
case "${fallback}" in
|
||||
none) bail "install-action does not support ${unsupported_tools[*]} (fallback is disabled by 'fallback: none' input option)" ;;
|
||||
esac
|
||||
info "install-action does not support ${unsupported_tools[*]}; fallback to cargo-binstall"
|
||||
IFS=$'\n\t'
|
||||
install_cargo_binstall
|
||||
@@ -750,7 +823,7 @@ if [[ ${#unsupported_tools[@]} -gt 0 ]]; then
|
||||
# min tls version to be 1.2
|
||||
cargo-binstall binstall --force --no-confirm --locked "${unsupported_tools[@]}"
|
||||
if ! type -P cargo >/dev/null; then
|
||||
_bin_dir=$(canonicalize_windows_path "${HOME}/.cargo/bin")
|
||||
_bin_dir=$(canonicalize_windows_path "${home}/.cargo/bin")
|
||||
# TODO: avoid this when already added
|
||||
info "adding '${_bin_dir}' to PATH"
|
||||
echo "${_bin_dir}" >>"${GITHUB_PATH}"
|
||||
|
||||
46
manifests/biome.json
generated
46
manifests/biome.json
generated
@@ -36,13 +36,53 @@
|
||||
},
|
||||
"license_markdown": "[Apache-2.0](https://github.com/biomejs/biome/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/biomejs/biome/blob/main/LICENSE-MIT)",
|
||||
"latest": {
|
||||
"version": "1.8.0"
|
||||
"version": "1.8.2"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.8.0"
|
||||
"version": "1.8.2"
|
||||
},
|
||||
"1.8": {
|
||||
"version": "1.8.0"
|
||||
"version": "1.8.2"
|
||||
},
|
||||
"1.8.2": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "0971bc636e1abc6d06ea03b219f6c78488b209f8a623de081a04ce610ae47f10"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "17b1ecae7751c4519135fd4f6d9b7d8cdcf5dbdaa7d586da8776e05ad05209d3"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "cffd0c862eb02b0c574a550ac47c213e0d48121fee23ffcaee4098de08cbdab8"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "4467475395c09442c23efca6bc800f8db14f21791ffc77594f71c11ec9c85aa3"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "659db94f30b4a5ef80995d494c7e7ec9a7fe820d4ef5b07b0684f2a44fe22140"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "ea3c0de73e3f7aa1b95cf5e26694a5427914771e2f47f7b5e5742a16c19088e1"
|
||||
}
|
||||
},
|
||||
"1.8.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "344a08e4300074612dbf71d417e54816234175e7095f58ce7f10559349d9bc82"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "777cf17639d33ee9a4272176dfec3aa74a0860b46a33f1b8e7e2a4f2266027a0"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "ae12100af43da3c188b59889baf2f7a9748dc62fb3eff15f48feb082351e288c"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "c0dfd1bb4cef5ca36c9aec8b4c7ae478ba81331f013a74f23807f20232988008"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "2433998fcf918069b217d7f379e7adbaa5a758a8aec0a1cdbf626778f3f873e7"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "e865748ffeee8c81f4556a60d389c631eb6c93d29875006524f422024f3a174a"
|
||||
}
|
||||
},
|
||||
"1.8.0": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
16
manifests/cargo-binstall.json
generated
16
manifests/cargo-binstall.json
generated
@@ -22,26 +22,26 @@
|
||||
},
|
||||
"license_markdown": "[GPL-3.0](https://github.com/cargo-bins/cargo-binstall/blob/HEAD/crates/bin/LICENSE)",
|
||||
"latest": {
|
||||
"version": "1.6.8"
|
||||
"version": "1.7.2"
|
||||
},
|
||||
"1.6.8": {
|
||||
"1.7.2": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "581eb7c97b2767a468afb0505c416eb727b469c029b36470288fc30b26517101"
|
||||
"checksum": "08b6969c86471ecd1b9b6fbbd6508014d22dadda29fdd47ffb871d297ac49a8b"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "590ff2a4b50d67ce52b35895e4cb8d75fefdc591988dafb2687c6461b50e3885"
|
||||
"checksum": "7fa85fd3fda3c9e4962f16f8b9400e97ff2773e0481fc63a9cb882fe80115b7f"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "0c1cd165f4460a9d5c1f5c2a67e5faf53913694ba207ddc18b44f6c5de6ba6c5"
|
||||
"checksum": "ee4da8bfaf25c84f0b67d5fd8e96f1243df4379f8dad64ffe2f82416198b7b35"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "2433118983ade85388be17d442b430c4932eb2dad834143f9a6a25646563281f"
|
||||
"checksum": "4342cfa8dc1033d2942270e8c4f7a63ef6953632ec3dbfacd7bebd4894e2ece8"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "1b0ea154b639dc7d8b49c6a2fa300964357a67a1b2441e9f29b61c7b7b79d23d"
|
||||
"checksum": "68157004ca95c2c3d4fae16246751317d2d6be32911cbdb04a06580d0c3aa43e"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "f440401a77b284a8b52ba0052fe26628e8658d4febc91108c28542a0843d341a"
|
||||
"checksum": "baf1c6d5729b629015e199e7739a4f76bd40d9c4a90883ecb1d2c33c16240190"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
12
manifests/cargo-dinghy.json
generated
12
manifests/cargo-dinghy.json
generated
@@ -12,10 +12,18 @@
|
||||
},
|
||||
"license_markdown": "[MIT](https://github.com/sonos/dinghy/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/sonos/dinghy/blob/main/LICENSE-APACHE)",
|
||||
"latest": {
|
||||
"version": "0.7.1"
|
||||
"version": "0.7.2"
|
||||
},
|
||||
"0.7": {
|
||||
"version": "0.7.1"
|
||||
"version": "0.7.2"
|
||||
},
|
||||
"0.7.2": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "c4c4a912b358729f88ee26b10b8de36bab06d42742539bcc3e98d0533c5f4cec"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "0a4389eee9619a8afdde156eaefbae6652532549c348e1d37a1146ff3096a889"
|
||||
}
|
||||
},
|
||||
"0.7.1": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
1022
manifests/cargo-nextest.json
generated
Normal file
1022
manifests/cargo-nextest.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
5
manifests/cargo-rdme.json
generated
5
manifests/cargo-rdme.json
generated
@@ -21,6 +21,11 @@
|
||||
"1.4": {
|
||||
"version": "1.4.2"
|
||||
},
|
||||
"1.4.4": {
|
||||
"x86_64_windows": {
|
||||
"checksum": "ff9b7a4d56a89451e8e0ae40716d47534fb08c5723a08fd560a66227b49e2694"
|
||||
}
|
||||
},
|
||||
"1.4.3": {
|
||||
"x86_64_windows": {
|
||||
"checksum": "408ffb657c99bf4142521632306edc4ed130dd991a0cd4b62cf370c28b307daf"
|
||||
|
||||
19
manifests/cargo-semver-checks.json
generated
19
manifests/cargo-semver-checks.json
generated
@@ -16,7 +16,24 @@
|
||||
},
|
||||
"license_markdown": "[Apache-2.0](https://github.com/obi1kenobi/cargo-semver-checks/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/obi1kenobi/cargo-semver-checks/blob/main/LICENSE-MIT)",
|
||||
"latest": {
|
||||
"version": "0.31.0"
|
||||
"version": "0.32.0"
|
||||
},
|
||||
"0.32": {
|
||||
"version": "0.32.0"
|
||||
},
|
||||
"0.32.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "c8202b26e84b06e9d6a40e8b28d04d72fed10a178403f323644c0af6b5c37c24"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "0540e6ef4f3f8f42e2e4db0e9efb49d4e4c32bc7becb16379e85c38aac500105"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "cecbbab97c8c0b47070038ba4f585fce79dd397b47e0bca0247bfa2967cc8017"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "59a9bbf1ae898725085854d4f618a3c958f6fa67a0573f393a42c2ee3990497e"
|
||||
}
|
||||
},
|
||||
"0.31": {
|
||||
"version": "0.31.0"
|
||||
|
||||
2
manifests/cargo-sort.json
generated
2
manifests/cargo-sort.json
generated
@@ -11,7 +11,7 @@
|
||||
"url": "https://github.com/DevinR528/cargo-sort/releases/download/v${version}/cargo-sort-x86_64-pc-windows-msvc.zip"
|
||||
}
|
||||
},
|
||||
"license_markdown": "[Apache-2.0 OR MIT](https://github.com/DevinR528/cargo-sort/blob/55ec89082466f6bb246d870a8d56d166a8e1f08b/Cargo.toml#L5)",
|
||||
"license_markdown": "[Apache-2.0 OR MIT](https://github.com/DevinR528/cargo-sort/blob/v1.0.9/Cargo.toml#L5)",
|
||||
"latest": {
|
||||
"version": "1.0.9"
|
||||
},
|
||||
|
||||
64
manifests/cargo-zigbuild.json
generated
Normal file
64
manifests/cargo-zigbuild.json
generated
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"rust_crate": "cargo-zigbuild",
|
||||
"template": {
|
||||
"x86_64_linux_musl": {
|
||||
"url": "https://github.com/rust-cross/cargo-zigbuild/releases/download/v${version}/cargo-zigbuild-v${version}.x86_64-unknown-linux-musl.tar.gz"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/rust-cross/cargo-zigbuild/releases/download/v${version}/cargo-zigbuild-v${version}.windows-x64.zip"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"url": "https://github.com/rust-cross/cargo-zigbuild/releases/download/v${version}/cargo-zigbuild-v${version}.aarch64-unknown-linux-musl.tar.gz"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/rust-cross/cargo-zigbuild/releases/download/v${version}/cargo-zigbuild-v${version}.apple-darwin.tar.gz"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"url": "https://github.com/rust-cross/cargo-zigbuild/releases/download/v${version}/cargo-zigbuild-v${version}.windows-arm64.zip"
|
||||
}
|
||||
},
|
||||
"license_markdown": "[MIT](https://github.com/rust-cross/cargo-zigbuild/blob/main/LICENSE)",
|
||||
"latest": {
|
||||
"version": "0.19.0"
|
||||
},
|
||||
"0.19": {
|
||||
"version": "0.19.0"
|
||||
},
|
||||
"0.19.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "ab2e2f3a22409470ec7d71badc22ab89351a6ddaba5c4785a39689856809404c"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "640b03357f568deb976cd0e0732db04f723498a0d4706d71ebaec05f8fc35db2"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "edc3d0966ed8c80056d36ace8998eb75ed2f3a71342e0825960d98c9eb3398a0"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "9173594204eaacadd62e2f26a3c2365887ec24a4fa15f309023b8d4bbbc09dec"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "6affe535f6d37768cc20be30b8b65a1bcc196ae1efdad71d2a5c44049a081b7e"
|
||||
}
|
||||
},
|
||||
"0.18": {
|
||||
"version": "0.18.4"
|
||||
},
|
||||
"0.18.4": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "bfcef631fe5ec5c0381d0028d47765dd4cef54ece10ebf2d76e62de6e7941d4e"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "5a5ea2b4d2dcd6d9196d5ca72e76c0d0714dae1ad287d313b89b1d78bcdc8364"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "8271acf32a08fc6073153fffeca5d9289dce7ae13a3a9d64cacf0600904fa7f5"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "b04e989f6df22d46be292af8c4f799467d6e60305fe6ab55f9bdf1c795a0c70f"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "f5166b64a037508c4698e03bde3a57a53fde530fe604866050e1fef43cd5df6d"
|
||||
}
|
||||
}
|
||||
}
|
||||
44
manifests/deepsource.json
generated
Normal file
44
manifests/deepsource.json
generated
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"rust_crate": null,
|
||||
"template": {
|
||||
"x86_64_linux_gnu": {
|
||||
"url": "https://github.com/DeepSourceCorp/cli/releases/download/v${version}/deepsource_${version}_linux_amd64.tar.gz"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/DeepSourceCorp/cli/releases/download/v${version}/deepsource_${version}_darwin_amd64.tar.gz"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/DeepSourceCorp/cli/releases/download/v${version}/deepsource_${version}_windows_amd64.tar.gz"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"url": "https://github.com/DeepSourceCorp/cli/releases/download/v${version}/deepsource_${version}_linux_arm64.tar.gz"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/DeepSourceCorp/cli/releases/download/v${version}/deepsource_${version}_darwin_arm64.tar.gz"
|
||||
}
|
||||
},
|
||||
"license_markdown": "[BSD-2-Clause](https://github.com/DeepSourceCorp/cli/blob/master/LICENSE)",
|
||||
"latest": {
|
||||
"version": "0.8.6"
|
||||
},
|
||||
"0.8": {
|
||||
"version": "0.8.6"
|
||||
},
|
||||
"0.8.6": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "40490fa8403496d354ac5e69ba4a71c287bee579d4413b62ee54c5c3038792ca"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "0970061b4755ecce8736f1d9bc8932cdafb452528432267ce33a0d566a3ecdeb"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "10d7bf2d6d8073a20f47982fd1db4f285666c1a6be2d89f555b097676da106d2"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "9f4f2a22ec412ed826e011afca3bb49979e4ee89434abbf8086324c5b9ccc074"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "b4223a8a03f16853cdbc4d5d40a586fa9291167e55d21f051ae3bf0c359f693a"
|
||||
}
|
||||
}
|
||||
}
|
||||
38
manifests/dprint.json
generated
38
manifests/dprint.json
generated
@@ -25,10 +25,44 @@
|
||||
},
|
||||
"license_markdown": "[MIT](https://github.com/dprint/dprint/blob/main/LICENSE)",
|
||||
"latest": {
|
||||
"version": "0.46.1"
|
||||
"version": "0.46.3"
|
||||
},
|
||||
"0.46": {
|
||||
"version": "0.46.1"
|
||||
"version": "0.46.3"
|
||||
},
|
||||
"0.46.3": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "b3968388c27fcc0853d54e57f8a00c1bd6134395d9657ded3088f365304bf90f"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "a9f4c71f1e32e99152e8278ccbd27c059246dfa1c3d8b3cb1fa0837bdd269b3e"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "4e024b2e626b2eabf923a62703cda3beb90ecacfaf2d737454ed6025779e3811"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "868a478307416f845f11dff9d9d6e94547dc826339fb6d5740f5b7795d9135af"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "f051c3b3bb5e8f936c1b5ad6e3659bf408a8e787b6dca48e6f95baf261f6e84d"
|
||||
}
|
||||
},
|
||||
"0.46.2": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "bbe9fe8eae9abdcfccdeca97fd8c524efd6137de702ee96e82b0ecb4ad432ebf"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "88abd8a6f416b624fdfae338ae6fca440f4a36b35199f0d03438caeb7715d820"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "53ab1991d23be9de8bf3b920f8605aee55629321fcacccfc5df38d49b2eb5160"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "d7b6f88c320bffcbb1dfeb6030d5a1ef23d18d81721e39abdbf4b8bdab389ba4"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "a331d1c9ad2abb96d46c33d25f1166bd5497dde0c48eb8a8f3d98143cd4bca5b"
|
||||
}
|
||||
},
|
||||
"0.46.1": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
61
manifests/earthly.json
generated
Normal file
61
manifests/earthly.json
generated
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"rust_crate": null,
|
||||
"template": {
|
||||
"x86_64_linux_gnu": {
|
||||
"url": "https://github.com/earthly/earthly/releases/download/v${version}/earthly-linux-amd64"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/earthly/earthly/releases/download/v${version}/earthly-darwin-amd64"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/earthly/earthly/releases/download/v${version}/earthly-windows-amd64.exe"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"url": "https://github.com/earthly/earthly/releases/download/v${version}/earthly-linux-arm64"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/earthly/earthly/releases/download/v${version}/earthly-darwin-arm64"
|
||||
}
|
||||
},
|
||||
"license_markdown": "[MPL-2.0](https://github.com/earthly/earthly/blob/main/LICENSE)",
|
||||
"latest": {
|
||||
"version": "0.8.14"
|
||||
},
|
||||
"0.8": {
|
||||
"version": "0.8.14"
|
||||
},
|
||||
"0.8.14": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "9c184536faccf2e16e92ad06d2a2579e4b3ff6aaf6bf4c2f72b21228a6903bc2"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "09d749a4f5b9d71acb803ba229086b28f447ac2080492106f6f51536a64a0760"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "3244284dc9648d7cd3af350ab4a8bfd4c63b0e0e16e656c3e249fc1d58fe7e5f"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "a88786778964eb74b6b5db44734a4630dcedab49c4ed21fe432e9e6d08ff116c"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "0a0154bb94ef4c8692737156a74534d369947be1a4558e81603be3d2b4328d7b"
|
||||
}
|
||||
},
|
||||
"0.8.13": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "5e1d7a41cd7a5c22f7c5c71f08e99cab3964eb604ca223b36312c755fbbce4f8"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "8d50d07d24794fa284ae78a699c45df540e85347ea108374b86df45a7800ff55"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "8201bcdd20272e4e68c56ce3b070fd488e410aef6be1e75b3b1992b4cdd0caaa"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "6b33bb767f34a94c49fc5db668b3f5936daa01777f3083a217f73b8aefdd7859"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "8d4e2055a761b07f77b11deb2f75914fe20a7bc033eb1115d9b74731df0d3593"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
manifests/espup.json
generated
22
manifests/espup.json
generated
@@ -19,7 +19,27 @@
|
||||
},
|
||||
"license_markdown": "[MIT](https://github.com/esp-rs/espup/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/esp-rs/espup/blob/main/LICENSE-APACHE)",
|
||||
"latest": {
|
||||
"version": "0.11.0"
|
||||
"version": "0.12.0"
|
||||
},
|
||||
"0.12": {
|
||||
"version": "0.12.0"
|
||||
},
|
||||
"0.12.0": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "2c89370a2cf2eaf2d300439d5f15fa89ae71d635b027965b1325effc8d84b383"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "00867da14720005dc0ef174e93164ca2934126840be7ddb7a9eaa2c17e940555"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "a7d128180d30e1d351c63a02436de8a75a8b90479fb49ce23b4eaadf03e637d1"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "b7259c225ad713f94b73e4f86f7daf37e7c02ba959b00a3f2f8327fbab639247"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "a91717477c816bc10b75a250a3d415ee1eea329dcc9a8bddb70d73bc4ebc521e"
|
||||
}
|
||||
},
|
||||
"0.11": {
|
||||
"version": "0.11.0"
|
||||
|
||||
47
manifests/jaq.json
generated
Normal file
47
manifests/jaq.json
generated
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"rust_crate": "jaq",
|
||||
"template": {
|
||||
"x86_64_linux_musl": {
|
||||
"url": "https://github.com/01mf02/jaq/releases/download/v${version}/jaq-v${version}-x86_64-unknown-linux-musl"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/01mf02/jaq/releases/download/v${version}/jaq-v${version}-x86_64-apple-darwin"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/01mf02/jaq/releases/download/v${version}/jaq-v${version}-x86_64-pc-windows-msvc.exe"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"url": "https://github.com/01mf02/jaq/releases/download/v${version}/jaq-v${version}-aarch64-unknown-linux-gnu"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/01mf02/jaq/releases/download/v${version}/jaq-v${version}-aarch64-apple-darwin"
|
||||
}
|
||||
},
|
||||
"license_markdown": "[MIT](https://github.com/01mf02/jaq/blob/main/LICENSE-MIT)",
|
||||
"latest": {
|
||||
"version": "1.4.0"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.4.0"
|
||||
},
|
||||
"1.4": {
|
||||
"version": "1.4.0"
|
||||
},
|
||||
"1.4.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "fce247e4b9693ff260293bdb7d4ef564f765ed6fe889c42cebfd5d2e36b591bf"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "f12c87eed86258b226c747ccbef55db95e78e6925eee55fe96e8a5eee4fe69f3"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "bb8189ee62b3b467f82e06484a7ab7478f8ddc1cc67ec95b7d2ebc2da38dd14d"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "2e6449091baf52bcb982e75685459464444ea8f29c7316d246f0bd407670c568"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "545e26ecd01b44468a894cd6576290cc8f787d0f06dd0ef8cc0b02bfe4c95c55"
|
||||
}
|
||||
}
|
||||
}
|
||||
41
manifests/just.json
generated
41
manifests/just.json
generated
@@ -19,10 +19,47 @@
|
||||
},
|
||||
"license_markdown": "[CC0-1.0](https://github.com/casey/just/blob/master/LICENSE)",
|
||||
"latest": {
|
||||
"version": "1.28.0"
|
||||
"version": "1.29.1"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.28.0"
|
||||
"version": "1.29.1"
|
||||
},
|
||||
"1.29": {
|
||||
"version": "1.29.1"
|
||||
},
|
||||
"1.29.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "42c47bd34b511c43a4d51a13c425c0e0f51e59e20b9f390fbd8838b85ee8db1b"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "5415dfcf2640b10823c2157c3f5a634d93f0a4a7005f4955bdcc3f009b406727"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "194c49878a502d9b756367e8164e1abf00955cf45af0f1e699ea9c9a45a92ba8"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "53f43c93497a1ae4045f09fa1b528dd800ce5046ad945f4d3cd92a4fc99da353"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "075ddcc42de6e90dc46a942c8b1914142563dff49f6e8dd2785da3c263e6663e"
|
||||
}
|
||||
},
|
||||
"1.29.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "34a059a0cde8a801ae518a7ca7271fc65709110eebbe23ba768760bf0a0eb66a"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "64991d2b9476d89c936404d5149ceedd8fb19c66b0390aa1e959548d376e0acc"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "5ad04990eb4299ad7e802fe86f85a5c116cb9af13deae87c08ed7dbf49c930d6"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "2072dc38e37e1bd6331d7f38a8a607f81b899e3f6f2685e858482f9650f762d3"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "1c7146005f0e1e8d60c8de38b2c75d86a1b5c199705f645d34b5396fac897599"
|
||||
}
|
||||
},
|
||||
"1.28": {
|
||||
"version": "1.28.0"
|
||||
|
||||
82
manifests/rclone.json
generated
Normal file
82
manifests/rclone.json
generated
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"rust_crate": null,
|
||||
"template": {
|
||||
"x86_64_linux_musl": {
|
||||
"url": "https://github.com/rclone/rclone/releases/download/v${version}/rclone-v${version}-linux-amd64.zip",
|
||||
"bin": "rclone-v${version}-linux-amd64/rclone"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/rclone/rclone/releases/download/v${version}/rclone-v${version}-osx-amd64.zip",
|
||||
"bin": "rclone-v${version}-osx-amd64/rclone"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/rclone/rclone/releases/download/v${version}/rclone-v${version}-windows-amd64.zip",
|
||||
"bin": "rclone-v${version}-windows-amd64/rclone.exe"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"url": "https://github.com/rclone/rclone/releases/download/v${version}/rclone-v${version}-linux-arm64.zip",
|
||||
"bin": "rclone-v${version}-linux-arm64/rclone"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/rclone/rclone/releases/download/v${version}/rclone-v${version}-osx-arm64.zip",
|
||||
"bin": "rclone-v${version}-osx-arm64/rclone"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"url": "https://github.com/rclone/rclone/releases/download/v${version}/rclone-v${version}-windows-arm64.zip",
|
||||
"bin": "rclone-v${version}-windows-arm64/rclone.exe"
|
||||
}
|
||||
},
|
||||
"license_markdown": "[MIT](https://github.com/rclone/rclone/blob/master/COPYING)",
|
||||
"latest": {
|
||||
"version": "1.67.0"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.67.0"
|
||||
},
|
||||
"1.67": {
|
||||
"version": "1.67.0"
|
||||
},
|
||||
"1.67.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "07c23d21a94d70113d949253478e13261c54d14d72023bb14d96a8da5f3e7722"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "1a1a3b080393b721ba5f38597305be2dbac3b654b43dfac3ebe4630b4e6406c3"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "117b99441024607d6043e274c7fcbed64d07ad87347d17dd0a717bdc1c59716b"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "2b44981a1a7d1f432c53c0f2f0b6bcdd410f6491c47dc55428fdac0b85c763f1"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "4dc6142aea78bb86f1236fe38e570b715990503c09733418c0cd2300e45651e4"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "54f263712d02bf2345eb5a3444aa4f07b990f5b4c6d02f1de892d1ff8028b50c"
|
||||
}
|
||||
},
|
||||
"1.66": {
|
||||
"version": "1.66.0"
|
||||
},
|
||||
"1.66.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "b4d304b1dc76001b1d3bb820ae8d1ae60a072afbd3296be904a3ee00b3d4fab9"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "5adb4c5fe0675627461000a63156001301ec7cade966c55c8c4ebcfaeb62c5ae"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "8e8bb13fb0d7beb316487ecde8ead5426784cdcdbf8b4d8dd381c6fe8c7d92a0"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "c50a3ab93082f21788f9244393b19f2426edeeb896eec2e3e05ffb2e8727e075"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "b5f4c4d06ff3d426aee99870ad437276c9ddaad55442f2df6a58b918115fe4cf"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "4e815350382249ffb6d9520262bbce81f45f63126134a0c365eb648a4d27e6ea"
|
||||
}
|
||||
}
|
||||
}
|
||||
44
manifests/syft.json
generated
44
manifests/syft.json
generated
@@ -24,10 +24,50 @@
|
||||
},
|
||||
"license_markdown": "[Apache-2.0](https://github.com/anchore/syft/blob/main/LICENSE)",
|
||||
"latest": {
|
||||
"version": "1.5.0"
|
||||
"version": "1.7.0"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.5.0"
|
||||
"version": "1.7.0"
|
||||
},
|
||||
"1.7": {
|
||||
"version": "1.7.0"
|
||||
},
|
||||
"1.7.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "2d36ba261e94f93bbb9538a975a63a494cc9b4440dcd2ee43e68b4a70a506916"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "e7a9ed735c2436f4a00bec80ec431788e008021e2af1ddce7747b3ae9a10b012"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "3c7908b5838a2a24ea4fa26425ee2690e1ada5e9763f7493a99d8efb1d9a08a8"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "cf43f1702ee063071be929f5561b093f58aa08d4dc5e19016e5d25e1453d81fe"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "a076de1eb324b96a00e6b8546cbb77eb2ca34f0a38a008e4c10708778df4741c"
|
||||
}
|
||||
},
|
||||
"1.6": {
|
||||
"version": "1.6.0"
|
||||
},
|
||||
"1.6.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "35c8f0912aeb31b36a0621d98e48d0b2761cc896d18d541ed3982721cf2e8f9c"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "93062feafa5c7684b1360e03cf6e3ec64f6b720f329743a00e917cf0a29bacb8"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "6e100901226bf818455f9f138288037b2560e692df3119dd2af74e3959f1d286"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "82fa0d244f84d805589cfbdbe420fbf75ff92574eb85fcfef7de3b0c7f4ef4f8"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "d7d2aa97b08a66281a6137ed0bdef7d08c3613efbc413eee5f8e2fade699cbcc"
|
||||
}
|
||||
},
|
||||
"1.5": {
|
||||
"version": "1.5.0"
|
||||
|
||||
84
manifests/typos.json
generated
84
manifests/typos.json
generated
@@ -16,13 +16,91 @@
|
||||
},
|
||||
"license_markdown": "[MIT](https://github.com/crate-ci/typos/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/crate-ci/typos/blob/master/LICENSE-APACHE)",
|
||||
"latest": {
|
||||
"version": "1.22.1"
|
||||
"version": "1.22.7"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.22.1"
|
||||
"version": "1.22.7"
|
||||
},
|
||||
"1.22": {
|
||||
"version": "1.22.1"
|
||||
"version": "1.22.7"
|
||||
},
|
||||
"1.22.7": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "a706a74f970f660e8aa24c6b3a46b8e213974d4317dc163b03d5e05c20e561a8"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "28f40f958f37cab2b24308142f404dba22d0e18757b511e0a16100fb4fd41547"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "912951a701c2c55dac499f908775126735aa2b59b41c488da18093e2b2d3aa69"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "c5857dec27e38ed996e76b2d8c4545006905ea750ab015ab72bd66cadb00b376"
|
||||
}
|
||||
},
|
||||
"1.22.6": {
|
||||
"x86_64_macos": {
|
||||
"checksum": "ba16199129ddd81e1c720d39fb35c41369a9c78c15b2e39126e8b02e875e11f7"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "aae44abc76ba77556cfc7d576ced87a716f420b09fa357cebbdf0a9a040a2492"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "31a335e695fc9749ddd95bc9154616ccb07c94df77bcc9156acc41d258219f64"
|
||||
}
|
||||
},
|
||||
"1.22.5": {
|
||||
"x86_64_macos": {
|
||||
"checksum": "1023d1323b98103d45ffd293515a2515c14493c57c5035c76106ec344aab6a4b"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "b727570571472fbab9029d4bcc09a1cbcafece02907fa7a25a46d6feb426bb5a"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "96024e189bce99b25bbc2a4165a76832637c231f1163d57581a080bbb5bfbd22"
|
||||
}
|
||||
},
|
||||
"1.22.4": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "aa4be101267b74c7ba0a8d506362c8b5ed75351afe35c86e2de3b2dfad1092b7"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "3761bc4c3bbc0367fbb691e600d09f92a2b641f98158b13c78b469c36afa6a67"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "94473d6765f59ea970deb2377e5a42c6d4bf7a37441fab52a2a6eb1ee6d49f77"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "5328764dc79e25e65615698236ff8842bb4a1bfd95e2d4e84171d7df5b216489"
|
||||
}
|
||||
},
|
||||
"1.22.3": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "712206018c601b93557e42aeffd486af2e6fb0a6b017d0d51e6dad587bd65097"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "21cae80f0ff7ebf39e36cba72c230f78d728168e127e21480d9398cccd862fdd"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "2d1cfa926d0f0dd8c972334b6e6c127243dbf8e354f3e31ed5018e30f531fe43"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "5ffd546b0335480af0c9f384d58db07b72e822864466055b2d2079114a279324"
|
||||
}
|
||||
},
|
||||
"1.22.2": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "ff5123e4f309c3f013a4126fbfc8c998b018408d250d170295683b567c1b7ffe"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "b85e65bf834304c71f7cce7311e99d950761d23e87bbfb2c86a37d9d52a9cb84"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "6e7ecedbb3aab7bc00d1818680abe90ed3faa071113f12e6e7d197986ba9565d"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "dc1939d39b55a08900f57dc077f9e69f275365abcee6a45d32b04514f1f6a8a8"
|
||||
}
|
||||
},
|
||||
"1.22.1": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
32
manifests/wait-for-them.json
generated
Normal file
32
manifests/wait-for-them.json
generated
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"rust_crate": "wait-for-them",
|
||||
"template": {
|
||||
"x86_64_linux_gnu": {
|
||||
"url": "https://github.com/shenek/wait-for-them/releases/download/v${version}/wait-for-them-linux"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/shenek/wait-for-them/releases/download/v${version}/wait-for-them-windows.exe"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/shenek/wait-for-them/releases/download/v${version}/wait-for-them-macos"
|
||||
}
|
||||
},
|
||||
"license_markdown": "[GPL-3.0](https://github.com/shenek/wait-for-them/blob/v0.4.0/Cargo.toml#L7)",
|
||||
"latest": {
|
||||
"version": "0.4.0"
|
||||
},
|
||||
"0.4": {
|
||||
"version": "0.4.0"
|
||||
},
|
||||
"0.4.0": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "2350e38c79f9e59d83ceade3ba7dc2a449bdaac075ea574786421a4bc4646f3d"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "1f716ee4f755a01b67e9606e91a0a65448d4f06113ba40b09e465af62a1c73da"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "a294da6da0ffc0b0a755eb3db50a968841356ff1fdc14724cfa288732496b6dc"
|
||||
}
|
||||
}
|
||||
}
|
||||
25
manifests/wasmtime.json
generated
25
manifests/wasmtime.json
generated
@@ -24,7 +24,30 @@
|
||||
},
|
||||
"license_markdown": "[Apache-2.0 WITH LLVM-exception](https://github.com/bytecodealliance/wasmtime/blob/main/LICENSE)",
|
||||
"latest": {
|
||||
"version": "21.0.1"
|
||||
"version": "22.0.0"
|
||||
},
|
||||
"22": {
|
||||
"version": "22.0.0"
|
||||
},
|
||||
"22.0": {
|
||||
"version": "22.0.0"
|
||||
},
|
||||
"22.0.0": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "415d09d77f5375a6c5f6a1fc102bbaf3fe8e830b438690e6ea59a7d690458dea"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "2d39c488e391c1e18875a0aa22db0f2b3c737002beb83712639ff608666fccea"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "87c9d8dd42cc5506edbe9736fb098f8d960606c85d4608d543dd07f79194f35e"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "0c4bc38070d856a6cfc4b4ec6344b1f5de8cffdde875550c285010d645f24330"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "891552cd21d08f330b872ef462bd7ac3903b668f4461cf0de0d16a175b40f57f"
|
||||
}
|
||||
},
|
||||
"21": {
|
||||
"version": "21.0.1"
|
||||
|
||||
2
manifests/xbuild.json
generated
2
manifests/xbuild.json
generated
@@ -14,7 +14,7 @@
|
||||
"bin": "xbuild-windows-x64.exe"
|
||||
}
|
||||
},
|
||||
"license_markdown": "[Apache-2.0 OR MIT](https://github.com/rust-mobile/xbuild/blob/268939a99a50d7927bce3e343e5d2ed32eb8b30e/xbuild/Cargo.toml#L7)",
|
||||
"license_markdown": "[Apache-2.0 OR MIT](https://github.com/rust-mobile/xbuild/blob/v0.2.0/xbuild/Cargo.toml#L7)",
|
||||
"latest": {
|
||||
"version": "0.2.0"
|
||||
},
|
||||
|
||||
49
manifests/xh.json
generated
Normal file
49
manifests/xh.json
generated
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"rust_crate": "xh",
|
||||
"template": {
|
||||
"x86_64_linux_musl": {
|
||||
"url": "https://github.com/ducaale/xh/releases/download/v${version}/xh-v${version}-x86_64-unknown-linux-musl.tar.gz",
|
||||
"bin": "xh-v${version}-x86_64-unknown-linux-musl/xh"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/ducaale/xh/releases/download/v${version}/xh-v${version}-x86_64-apple-darwin.tar.gz",
|
||||
"bin": "xh-v${version}-x86_64-apple-darwin/xh"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/ducaale/xh/releases/download/v${version}/xh-v${version}-x86_64-pc-windows-msvc.zip",
|
||||
"bin": "xh-v${version}-x86_64-pc-windows-msvc/xh.exe"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"url": "https://github.com/ducaale/xh/releases/download/v${version}/xh-v${version}-aarch64-unknown-linux-musl.tar.gz",
|
||||
"bin": "xh-v${version}-aarch64-unknown-linux-musl/xh"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/ducaale/xh/releases/download/v${version}/xh-v${version}-aarch64-apple-darwin.tar.gz",
|
||||
"bin": "xh-v${version}-aarch64-apple-darwin/xh"
|
||||
}
|
||||
},
|
||||
"license_markdown": "[MIT](https://github.com/ducaale/xh/blob/master/LICENSE)",
|
||||
"latest": {
|
||||
"version": "0.22.0"
|
||||
},
|
||||
"0.22": {
|
||||
"version": "0.22.0"
|
||||
},
|
||||
"0.22.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "270a4ece43a44f4c270417b50ddea430029b98cc5103e264bf65f64fac5b60a8"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "891a015ac04fda2a27df82991b9495213ce38d97827192c771da798bf10c875b"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "cbaeabbfece018e05f1ef0e380b5b797c61524b11662598bc444402bcb0607d0"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "e4feb4a463183c3cc139f906a2cfe84dd3790d277f2915271a9a2ef3a0978ffb"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "48fdabeedd42b2638a9e79bbb2506eaea7371e381dbf3cebf62e5cd40a39cc64"
|
||||
}
|
||||
}
|
||||
}
|
||||
19
manifests/zola.json
generated
19
manifests/zola.json
generated
@@ -16,7 +16,24 @@
|
||||
},
|
||||
"license_markdown": "[MIT](https://github.com/getzola/zola/blob/master/LICENSE)",
|
||||
"latest": {
|
||||
"version": "0.18.0"
|
||||
"version": "0.19.0"
|
||||
},
|
||||
"0.19": {
|
||||
"version": "0.19.0"
|
||||
},
|
||||
"0.19.0": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "5d26b7c63d36bcfc42a2db41d35cdd7bbde1762571ee936a89d155d7fd600f77"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "96cc5501541cc220c0e3d234f5c8b869afbba90ff6a10923824dfbb51f87f487"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "831adf641d2c691aa95771285f13fdbff8897d481084b360c49a9d933e81cec8"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "c57d5c6b6ed55fa1eb04ed8bc17432bff9d0ca0d96558c0c476edbef7fc77d95"
|
||||
}
|
||||
},
|
||||
"0.18": {
|
||||
"version": "0.18.0"
|
||||
|
||||
@@ -8,6 +8,7 @@ cd "$(dirname "$0")"/../..
|
||||
glibc_pre_2_34_incompat=(
|
||||
cargo-cyclonedx
|
||||
cargo-spellcheck
|
||||
wait-for-them
|
||||
xbuild
|
||||
)
|
||||
glibc_pre_2_31_incompat=(
|
||||
@@ -26,6 +27,7 @@ glibc_pre_2_27_incompat=(
|
||||
)
|
||||
musl_incompat=(
|
||||
"${glibc_pre_2_27_incompat[@]}"
|
||||
deepsource
|
||||
)
|
||||
|
||||
incompat_tools=()
|
||||
@@ -130,9 +132,9 @@ case "${host_os}" in
|
||||
esac
|
||||
# cargo-watch/watchexec-cli is supported by cargo-binstall (through quickinstall)
|
||||
case "${version}" in
|
||||
latest) tools+=(cargo-watch watchexec-cli nextest) ;;
|
||||
major.minor.patch) tools+=(cargo-watch@8.1.1 watchexec-cli@1.20.5 nextest@0.9.57) ;;
|
||||
major.minor) tools+=(cargo-watch@8.1 watchexec-cli@1.20 nextest@0.9) ;;
|
||||
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
|
||||
|
||||
17
tools/codegen/base/cargo-nextest.json
Normal file
17
tools/codegen/base/cargo-nextest.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"repository": "https://github.com/nextest-rs/nextest",
|
||||
"tag_prefix": "cargo-nextest-",
|
||||
"rust_crate": "${package}",
|
||||
"asset_name": "${package}-${version}-${rust_target}.tar.gz",
|
||||
"prefer_linux_gnu": true,
|
||||
"immediate_yank_reflection": true,
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {
|
||||
"asset_name": "${package}-${version}-universal-apple-darwin.tar.gz"
|
||||
},
|
||||
"x86_64_windows": {},
|
||||
"aarch64_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
"repository": "https://github.com/orium/cargo-rdme",
|
||||
"tag_prefix": "v",
|
||||
"rust_crate": "${package}",
|
||||
"broken": ["1.4.3"],
|
||||
"broken": ["1.4.3", "1.4.4"],
|
||||
"platform": {
|
||||
"x86_64_linux_musl": {
|
||||
"asset_name": "${package}_v${version}_${rust_target}.tar.bz2"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"repository": "https://github.com/DevinR528/cargo-sort",
|
||||
"license_markdown": "[Apache-2.0 OR MIT](https://github.com/DevinR528/cargo-sort/blob/55ec89082466f6bb246d870a8d56d166a8e1f08b/Cargo.toml#L5)",
|
||||
"license_markdown": "[Apache-2.0 OR MIT](https://github.com/DevinR528/cargo-sort/blob/v1.0.9/Cargo.toml#L5)",
|
||||
"tag_prefix": "v",
|
||||
"rust_crate": "${package}",
|
||||
"asset_name": "${package}-${rust_target}.tar.gz",
|
||||
|
||||
20
tools/codegen/base/cargo-zigbuild.json
Normal file
20
tools/codegen/base/cargo-zigbuild.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"repository": "https://github.com/rust-cross/cargo-zigbuild",
|
||||
"tag_prefix": "v",
|
||||
"rust_crate": "${package}",
|
||||
"asset_name": "${package}-v${version}.${rust_target}.tar.gz",
|
||||
"version_range": ">= 0.18.4",
|
||||
"platform": {
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}-v${version}.windows-x64.zip"
|
||||
},
|
||||
"aarch64_linux_musl": {},
|
||||
"aarch64_macos": {
|
||||
"asset_name": "${package}-v${version}.apple-darwin.tar.gz"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"asset_name": "${package}-v${version}.windows-arm64.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
tools/codegen/base/deepsource.json
Normal file
22
tools/codegen/base/deepsource.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"repository": "https://github.com/DeepSourceCorp/cli",
|
||||
"tag_prefix": "v",
|
||||
"version_range": ">= 0.8.6",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {
|
||||
"asset_name": "${package}_${version}_linux_amd64.tar.gz"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"asset_name": "${package}_${version}_darwin_amd64.tar.gz"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}_${version}_windows_amd64.tar.gz"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"asset_name": "${package}_${version}_linux_arm64.tar.gz"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"asset_name": "${package}_${version}_darwin_arm64.tar.gz"
|
||||
}
|
||||
}
|
||||
}
|
||||
22
tools/codegen/base/earthly.json
Normal file
22
tools/codegen/base/earthly.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"repository": "https://github.com/earthly/earthly",
|
||||
"tag_prefix": "v",
|
||||
"version_range": ">= 0.8.13",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {
|
||||
"asset_name": "${package}-linux-amd64"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"asset_name": "${package}-darwin-amd64"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}-windows-amd64.exe"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"asset_name": "${package}-linux-arm64"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"asset_name": "${package}-darwin-arm64"
|
||||
}
|
||||
}
|
||||
}
|
||||
16
tools/codegen/base/jaq.json
Normal file
16
tools/codegen/base/jaq.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"repository": "https://github.com/01mf02/jaq",
|
||||
"tag_prefix": "v",
|
||||
"rust_crate": "${package}",
|
||||
"asset_name": "${package}-v${version}-${rust_target}",
|
||||
"version_range": ">= 1.4.0",
|
||||
"platform": {
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}-v${version}-${rust_target}.exe"
|
||||
},
|
||||
"x86_64_linux_musl": {},
|
||||
"aarch64_macos": {},
|
||||
"aarch64_linux_gnu": {}
|
||||
}
|
||||
}
|
||||
31
tools/codegen/base/rclone.json
Normal file
31
tools/codegen/base/rclone.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"repository": "https://github.com/rclone/rclone",
|
||||
"tag_prefix": "v",
|
||||
"version_range": ">= 1.66.0",
|
||||
"platform": {
|
||||
"x86_64_linux_musl": {
|
||||
"asset_name": "${package}-v${version}-linux-amd64.zip",
|
||||
"bin": "${package}-v${version}-linux-amd64/${package}"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"asset_name": "${package}-v${version}-osx-amd64.zip",
|
||||
"bin": "${package}-v${version}-osx-amd64/${package}"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}-v${version}-windows-amd64.zip",
|
||||
"bin": "${package}-v${version}-windows-amd64/${package}${exe}"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"asset_name": "${package}-v${version}-linux-arm64.zip",
|
||||
"bin": "${package}-v${version}-linux-arm64/${package}"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"asset_name": "${package}-v${version}-osx-arm64.zip",
|
||||
"bin": "${package}-v${version}-osx-arm64/${package}"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"asset_name": "${package}-v${version}-windows-arm64.zip",
|
||||
"bin": "${package}-v${version}-windows-arm64/${package}${exe}"
|
||||
}
|
||||
}
|
||||
}
|
||||
13
tools/codegen/base/wait-for-them.json
Normal file
13
tools/codegen/base/wait-for-them.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"repository": "https://github.com/shenek/wait-for-them",
|
||||
"license_markdown": "[GPL-3.0](https://github.com/shenek/wait-for-them/blob/v0.4.0/Cargo.toml#L7)",
|
||||
"tag_prefix": "v",
|
||||
"rust_crate": "${package}",
|
||||
"asset_name": "${package}-${rust_target_os}${exe}",
|
||||
"version_range": ">= 0.4.0",
|
||||
"platform": {
|
||||
"x86_64_linux_gnu": {},
|
||||
"x86_64_windows": {},
|
||||
"aarch64_macos": {}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"repository": "https://github.com/rust-mobile/xbuild",
|
||||
"license_markdown": "[Apache-2.0 OR MIT](https://github.com/rust-mobile/xbuild/blob/268939a99a50d7927bce3e343e5d2ed32eb8b30e/xbuild/Cargo.toml#L7)",
|
||||
"license_markdown": "[Apache-2.0 OR MIT](https://github.com/rust-mobile/xbuild/blob/v0.2.0/xbuild/Cargo.toml#L7)",
|
||||
"tag_prefix": "v",
|
||||
"rust_crate": "${package}",
|
||||
"asset_name": "${package}-${rust_target_os}-x64${exe}",
|
||||
|
||||
17
tools/codegen/base/xh.json
Normal file
17
tools/codegen/base/xh.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"repository": "https://github.com/ducaale/xh",
|
||||
"tag_prefix": "v",
|
||||
"rust_crate": "${package}",
|
||||
"asset_name": "${package}-v${version}-${rust_target}.tar.gz",
|
||||
"bin": "${package}-v${version}-${rust_target}/${package}${exe}",
|
||||
"version_range": ">= 0.22.0",
|
||||
"platform": {
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {
|
||||
"asset_name": "${package}-v${version}-${rust_target}.zip"
|
||||
},
|
||||
"x86_64_linux_musl": {},
|
||||
"aarch64_macos": {},
|
||||
"aarch64_linux_musl": {}
|
||||
}
|
||||
}
|
||||
@@ -180,6 +180,8 @@ pub enum ManifestRef {
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct Manifest {
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub previous_stable_version: Option<Version>,
|
||||
#[serde(flatten)]
|
||||
pub download_info: BTreeMap<HostPlatform, ManifestDownloadInfo>,
|
||||
}
|
||||
@@ -229,8 +231,15 @@ pub struct BaseManifest {
|
||||
pub signing: Option<Signing>,
|
||||
#[serde(default)]
|
||||
pub broken: Vec<semver::Version>,
|
||||
pub platform: BTreeMap<HostPlatform, BaseManifestPlatformInfo>,
|
||||
pub version_range: Option<String>,
|
||||
/// Use glibc build if host_env is gnu.
|
||||
#[serde(default)]
|
||||
pub prefer_linux_gnu: bool,
|
||||
/// Check that the version is yanked not only when updating the manifest,
|
||||
/// but also when running the action.
|
||||
#[serde(default)]
|
||||
pub immediate_yank_reflection: bool,
|
||||
pub platform: BTreeMap<HostPlatform, BaseManifestPlatformInfo>,
|
||||
}
|
||||
impl BaseManifest {
|
||||
/// Validate the manifest.
|
||||
|
||||
@@ -7,6 +7,7 @@ use std::{
|
||||
ffi::OsStr,
|
||||
io::Read,
|
||||
path::Path,
|
||||
sync::{LazyLock, RwLock},
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
@@ -28,6 +29,7 @@ fn main() -> Result<()> {
|
||||
std::process::exit(1);
|
||||
}
|
||||
let package = &args[0];
|
||||
let version_req = args.get(1);
|
||||
let skip_existing_manifest_versions = std::env::var("SKIP_EXISTING_MANIFEST_VERSIONS").is_ok();
|
||||
|
||||
let workspace_root = &workspace_root();
|
||||
@@ -36,6 +38,8 @@ fn main() -> Result<()> {
|
||||
fs::create_dir_all(manifest_path.parent().unwrap())?;
|
||||
fs::create_dir_all(download_cache_dir)?;
|
||||
|
||||
eprintln!("download cache: {}", download_cache_dir.display());
|
||||
|
||||
let mut base_info: BaseManifest = serde_json::from_slice(&fs::read(
|
||||
workspace_root.join("tools/codegen/base").join(format!("{package}.json")),
|
||||
)?)?;
|
||||
@@ -45,22 +49,22 @@ fn main() -> Result<()> {
|
||||
.strip_prefix("https://github.com/")
|
||||
.context("repository must start with https://github.com/")?;
|
||||
|
||||
eprintln!("downloading metadata from https://github.com/{repo}");
|
||||
|
||||
eprintln!("downloading metadata from https://api.github.com/repos/{repo}");
|
||||
let repo_info: github::RepoMetadata =
|
||||
download_github(&format!("https://api.github.com/repos/{repo}"))?.into_json()?;
|
||||
download(&format!("https://api.github.com/repos/{repo}"))?.into_json()?;
|
||||
|
||||
eprintln!("downloading releases of https://github.com/{repo} from https://api.github.com/repos/{repo}/releases");
|
||||
eprintln!("downloading releases 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_github(&format!(
|
||||
let mut r: github::Releases = download(&format!(
|
||||
"https://api.github.com/repos/{repo}/releases?per_page={per_page}&page={page}"
|
||||
))?
|
||||
.into_json()?;
|
||||
if r.len() < per_page {
|
||||
// If version_req is latest, it is usually sufficient to look at the latest 100 releases.
|
||||
if r.len() < per_page || version_req.map_or(false, |req| req == "latest") {
|
||||
releases.append(&mut r);
|
||||
break;
|
||||
}
|
||||
@@ -170,7 +174,7 @@ fn main() -> Result<()> {
|
||||
if let Some(license) = detail.license {
|
||||
eprintln!("Trying to using license '{license}' from crates.io ...");
|
||||
if let Some(license_markdown) =
|
||||
get_license_markdown(&license, &repo.to_string(), &repo_info.default_branch)
|
||||
get_license_markdown(&license, repo, &repo_info.default_branch)
|
||||
{
|
||||
manifests.license_markdown = license_markdown;
|
||||
}
|
||||
@@ -179,7 +183,7 @@ fn main() -> Result<()> {
|
||||
if let Some(license) = license.spdx_id {
|
||||
eprintln!("Trying to using license '{license}' from github.com ...");
|
||||
if let Some(license_markdown) =
|
||||
get_license_markdown(&license, &repo.to_string(), &repo_info.default_branch)
|
||||
get_license_markdown(&license, repo, &repo_info.default_branch)
|
||||
{
|
||||
manifests.license_markdown = license_markdown;
|
||||
}
|
||||
@@ -190,7 +194,7 @@ fn main() -> Result<()> {
|
||||
panic!("Unable to determine license_markdown; set manually")
|
||||
}
|
||||
|
||||
let version_req: Option<semver::VersionReq> = match args.get(1) {
|
||||
let version_req: Option<semver::VersionReq> = match version_req {
|
||||
_ if latest_only => {
|
||||
let req = format!("={}", releases.first_key_value().unwrap().0 .0).parse()?;
|
||||
eprintln!("update manifest for versions '{req}'");
|
||||
@@ -292,7 +296,7 @@ fn main() -> Result<()> {
|
||||
eprintln!("already downloaded");
|
||||
fs::File::open(download_cache)?.read_to_end(&mut buf)?;
|
||||
} else {
|
||||
download_github(&url)?.into_reader().read_to_end(&mut buf)?;
|
||||
download(&url)?.into_reader().read_to_end(&mut buf)?;
|
||||
eprintln!("download complete");
|
||||
fs::write(download_cache, &buf)?;
|
||||
}
|
||||
@@ -314,7 +318,7 @@ fn main() -> Result<()> {
|
||||
eprintln!("already downloaded");
|
||||
minisign_verify::Signature::from_file(sig_download_cache)?
|
||||
} else {
|
||||
let buf = download_github(&url)?.into_string()?;
|
||||
let buf = download(&url)?.into_string()?;
|
||||
eprintln!("download complete");
|
||||
fs::write(sig_download_cache, &buf)?;
|
||||
minisign_verify::Signature::decode(&buf)?
|
||||
@@ -403,15 +407,17 @@ fn main() -> Result<()> {
|
||||
}
|
||||
// compact manifest
|
||||
// TODO: do this before download binaries
|
||||
if download_info.contains_key(&HostPlatform::x86_64_linux_gnu)
|
||||
&& download_info.contains_key(&HostPlatform::x86_64_linux_musl)
|
||||
{
|
||||
download_info.remove(&HostPlatform::x86_64_linux_gnu);
|
||||
}
|
||||
if download_info.contains_key(&HostPlatform::aarch64_linux_gnu)
|
||||
&& download_info.contains_key(&HostPlatform::aarch64_linux_musl)
|
||||
{
|
||||
download_info.remove(&HostPlatform::aarch64_linux_gnu);
|
||||
if !base_info.prefer_linux_gnu {
|
||||
if download_info.contains_key(&HostPlatform::x86_64_linux_gnu)
|
||||
&& download_info.contains_key(&HostPlatform::x86_64_linux_musl)
|
||||
{
|
||||
download_info.remove(&HostPlatform::x86_64_linux_gnu);
|
||||
}
|
||||
if download_info.contains_key(&HostPlatform::aarch64_linux_gnu)
|
||||
&& download_info.contains_key(&HostPlatform::aarch64_linux_musl)
|
||||
{
|
||||
download_info.remove(&HostPlatform::aarch64_linux_gnu);
|
||||
}
|
||||
}
|
||||
if download_info.contains_key(&HostPlatform::x86_64_macos)
|
||||
&& download_info.contains_key(&HostPlatform::aarch64_macos)
|
||||
@@ -425,7 +431,22 @@ fn main() -> Result<()> {
|
||||
if semver_version.pre.is_empty() {
|
||||
semver_versions.insert(semver_version.clone());
|
||||
}
|
||||
manifests.map.insert(reverse_semver, ManifestRef::Real(Manifest { download_info }));
|
||||
manifests.map.insert(
|
||||
reverse_semver,
|
||||
ManifestRef::Real(Manifest { previous_stable_version: None, download_info }),
|
||||
);
|
||||
}
|
||||
if base_info.immediate_yank_reflection {
|
||||
let mut prev: Option<&Version> = None;
|
||||
for (Reverse(v), m) in manifests.map.iter_mut().rev() {
|
||||
let ManifestRef::Real(m) = m else { continue };
|
||||
if base_info.rust_crate.is_some() {
|
||||
m.previous_stable_version = prev.cloned();
|
||||
} else {
|
||||
m.previous_stable_version = None;
|
||||
}
|
||||
prev = Some(v);
|
||||
}
|
||||
}
|
||||
if has_build_metadata {
|
||||
eprintln!(
|
||||
@@ -492,15 +513,17 @@ fn main() -> Result<()> {
|
||||
if latest_manifest.download_info.contains_key(&p) {
|
||||
continue;
|
||||
}
|
||||
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;
|
||||
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:?}, \
|
||||
@@ -585,97 +608,131 @@ fn replace_vars(
|
||||
Ok(s)
|
||||
}
|
||||
|
||||
/// Download using GITHUB_TOKEN.
|
||||
#[allow(clippy::missing_panics_doc)]
|
||||
fn download_github(url: &str) -> Result<ureq::Response> {
|
||||
let mut token = env::var("GITHUB_TOKEN").ok().filter(|v| !v.is_empty());
|
||||
struct GitHubTokens {
|
||||
// In my experience, only api.github.com have severe rate limit.
|
||||
// https://api.github.com/
|
||||
// Refs: https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api
|
||||
api: RwLock<Option<String>>,
|
||||
// https://raw.githubusercontent.com/
|
||||
// Refs: https://stackoverflow.com/questions/66522261/does-github-rate-limit-access-to-public-raw-files
|
||||
raw: RwLock<Option<String>>,
|
||||
// https://github.com/*/*/releases/download/
|
||||
other: RwLock<Option<String>>,
|
||||
}
|
||||
impl GitHubTokens {
|
||||
fn get(&self, url: &str) -> Option<String> {
|
||||
if url.starts_with("https://raw.githubusercontent.com/") {
|
||||
self.raw.read().unwrap().clone()
|
||||
} else if url.starts_with("https://api.github.com/") {
|
||||
self.api.read().unwrap().clone()
|
||||
} else if url.starts_with("https://github.com/") {
|
||||
self.other.read().unwrap().clone()
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
fn clear(&self, url: &str) {
|
||||
if url.starts_with("https://raw.githubusercontent.com/") {
|
||||
*self.raw.write().unwrap() = None;
|
||||
} else if url.starts_with("https://api.github.com/") {
|
||||
*self.api.write().unwrap() = None;
|
||||
} else if url.starts_with("https://github.com/") {
|
||||
*self.other.write().unwrap() = None;
|
||||
}
|
||||
}
|
||||
}
|
||||
static GITHUB_TOKENS: LazyLock<GitHubTokens> = LazyLock::new(|| {
|
||||
let token = env::var("GITHUB_TOKEN").ok().filter(|v| !v.is_empty());
|
||||
GitHubTokens {
|
||||
raw: RwLock::new(token.clone()),
|
||||
api: RwLock::new(token.clone()),
|
||||
other: RwLock::new(token),
|
||||
}
|
||||
});
|
||||
|
||||
fn download(url: &str) -> Result<ureq::Response> {
|
||||
let mut token = GITHUB_TOKENS.get(url);
|
||||
let mut retry = 0;
|
||||
let max_retry = 6;
|
||||
let mut retry_time = 0;
|
||||
let mut max_retry = 6;
|
||||
if token.is_none() {
|
||||
max_retry /= 2;
|
||||
}
|
||||
let mut last_error;
|
||||
loop {
|
||||
let mut req = ureq::get(url);
|
||||
if let Some(token) = &token {
|
||||
req = req.set("Authorization", token);
|
||||
req = req.set("Authorization", &format!("Bearer {token}"));
|
||||
}
|
||||
match req.call() {
|
||||
Ok(res) => return Ok(res),
|
||||
Err(e) => last_error = Some(e),
|
||||
}
|
||||
if retry == max_retry / 2 && token.is_some() {
|
||||
retry_time += 1;
|
||||
if token.is_some() && retry == max_retry / 2 {
|
||||
retry_time = 0;
|
||||
token = None;
|
||||
// rate limit
|
||||
GITHUB_TOKENS.clear(url);
|
||||
}
|
||||
retry += 1;
|
||||
if retry > max_retry {
|
||||
break;
|
||||
}
|
||||
eprintln!("download failed; retrying after {}s ({retry}/{max_retry})", retry * 2);
|
||||
std::thread::sleep(Duration::from_secs(retry * 2));
|
||||
eprintln!("download failed; retrying after {}s ({retry}/{max_retry})", retry_time * 2);
|
||||
std::thread::sleep(Duration::from_secs(retry_time * 2));
|
||||
}
|
||||
Err(last_error.unwrap().into())
|
||||
}
|
||||
|
||||
#[allow(clippy::missing_panics_doc)]
|
||||
pub fn github_head(url: &str) -> Result<()> {
|
||||
fn github_head(url: &str) -> Result<()> {
|
||||
eprintln!("fetching head of {url} ..");
|
||||
let mut token = env::var("GITHUB_TOKEN").ok().filter(|v| !v.is_empty());
|
||||
let mut token = GITHUB_TOKENS.get(url);
|
||||
let mut retry = 0;
|
||||
let max_retry = 2;
|
||||
let mut retry_time = 0;
|
||||
let mut max_retry = 2;
|
||||
if token.is_none() {
|
||||
max_retry /= 2;
|
||||
}
|
||||
let mut last_error;
|
||||
loop {
|
||||
let mut req = ureq::head(url);
|
||||
if let Some(token) = &token {
|
||||
req = req.set("Authorization", token);
|
||||
req = req.set("Authorization", &format!("Bearer {token}"));
|
||||
}
|
||||
match req.call() {
|
||||
Ok(_) => return Ok(()),
|
||||
Err(e) => last_error = Some(e),
|
||||
// rate limit
|
||||
Err(e @ ureq::Error::Status(403, _)) => last_error = Some(e),
|
||||
Err(e) => return Err(e.into()),
|
||||
}
|
||||
if retry == max_retry / 2 && token.is_some() {
|
||||
retry_time += 1;
|
||||
if token.is_some() && retry == max_retry / 2 {
|
||||
retry_time = 0;
|
||||
token = None;
|
||||
GITHUB_TOKENS.clear(url);
|
||||
}
|
||||
retry += 1;
|
||||
if retry > max_retry {
|
||||
break;
|
||||
}
|
||||
eprintln!("head of {url} failed; retrying after {}s ({retry}/{max_retry})", retry * 2);
|
||||
std::thread::sleep(Duration::from_secs(retry * 2));
|
||||
}
|
||||
Err(last_error.unwrap().into())
|
||||
}
|
||||
|
||||
/// Download without using GITHUB_TOKEN.
|
||||
#[allow(clippy::missing_panics_doc)]
|
||||
pub fn download(url: &str) -> Result<ureq::Response> {
|
||||
let mut retry = 0;
|
||||
let max_retry = 6;
|
||||
let mut last_error;
|
||||
loop {
|
||||
let req = ureq::get(url);
|
||||
match req.call() {
|
||||
Ok(res) => return Ok(res),
|
||||
Err(e) => last_error = Some(e),
|
||||
}
|
||||
retry += 1;
|
||||
if retry > max_retry {
|
||||
break;
|
||||
}
|
||||
eprintln!("download of {url} failed; retrying after {}s ({retry}/{max_retry})", retry * 2);
|
||||
std::thread::sleep(Duration::from_secs(retry * 2));
|
||||
eprintln!("head of {url} failed; retrying after {}s ({retry}/{max_retry})", retry_time * 2);
|
||||
std::thread::sleep(Duration::from_secs(retry_time * 2));
|
||||
}
|
||||
Err(last_error.unwrap().into())
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
fn create_github_raw_link(repository: &String, branch: &String, filename: &String) -> String {
|
||||
fn create_github_raw_link(repository: &str, branch: &str, filename: &str) -> String {
|
||||
format!("https://raw.githubusercontent.com/{repository}/{branch}/{filename}")
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
fn create_github_link(repository: &String, branch: &String, filename: &String) -> String {
|
||||
fn create_github_link(repository: &str, branch: &str, filename: &str) -> String {
|
||||
format!("https://github.com/{repository}/blob/{branch}/{filename}")
|
||||
}
|
||||
#[must_use]
|
||||
fn get_license_markdown(spdx_expr: &str, repo: &String, default_branch: &String) -> Option<String> {
|
||||
fn get_license_markdown(spdx_expr: &str, repo: &str, default_branch: &str) -> Option<String> {
|
||||
// TODO: use https://docs.rs/spdx/latest/spdx/expression/struct.Expression.html#method.canonicalize ?
|
||||
let expr = spdx::Expression::parse_mode(spdx_expr, spdx::ParseMode::LAX).unwrap();
|
||||
|
||||
@@ -719,12 +776,15 @@ fn get_license_markdown(spdx_expr: &str, repo: &String, default_branch: &String)
|
||||
let license_name = if let Some(exception_id) = exception_id {
|
||||
format!("{} WITH {}", license_id.name, exception_id.name)
|
||||
} else {
|
||||
license_id.name.to_string()
|
||||
license_id.name.to_owned()
|
||||
};
|
||||
let name = license_id.name.split('-').next().unwrap().to_ascii_uppercase();
|
||||
for filename in
|
||||
["LICENSE".to_string(), format!("LICENSE-{name}"), "LICENSE.md".to_string()]
|
||||
{
|
||||
for filename in [
|
||||
"LICENSE".to_owned(),
|
||||
format!("LICENSE-{name}"),
|
||||
"LICENSE.md".to_owned(),
|
||||
"COPYING".to_owned(),
|
||||
] {
|
||||
let url = create_github_raw_link(repo, default_branch, &filename);
|
||||
if github_head(&url).is_ok() {
|
||||
let url = create_github_link(repo, default_branch, &filename);
|
||||
@@ -741,7 +801,7 @@ fn get_license_markdown(spdx_expr: &str, repo: &String, default_branch: &String)
|
||||
let license_name = if let Some(exception_id) = exception_id {
|
||||
format!("{} WITH {}", license_id.name, exception_id.name)
|
||||
} else {
|
||||
license_id.name.to_string()
|
||||
license_id.name.to_owned()
|
||||
};
|
||||
if github_head(&url).is_ok() {
|
||||
let url = create_github_link(repo, default_branch, &filename);
|
||||
|
||||
@@ -13,8 +13,7 @@ This is a list of tools that are installed from manifests managed in this action
|
||||
If a tool not included in the list below is specified, this action uses [cargo-binstall] as a fallback.
|
||||
|
||||
> 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>
|
||||
> If `/usr/local/bin` is not available, binaries will be installed to `$HOME/.install-action/bin`.<br>
|
||||
> If `$HOME/.cargo/bin` is not available, Rust-related binaries will be installed to `$HOME/.install-action/bin`.<br>
|
||||
|
||||
| Name | Where binaries will be installed | Where will it be installed from | Supported platform | License |
|
||||
| ---- | -------------------------------- | ------------------------------- | ------------------ | ------- |
|
||||
@@ -46,31 +45,18 @@ fn main() -> Result<()> {
|
||||
fs::read_dir(manifest_dir.clone()).unwrap().map(|r| r.unwrap()).collect();
|
||||
paths.sort_by_key(fs_err::DirEntry::path);
|
||||
|
||||
let mut tools = vec OR [MIT](https://github.com/nextest-rs/nextest/blob/HEAD/LICENSE-MIT)".to_string()
|
||||
},
|
||||
MarkdownEntry {
|
||||
name: "valgrind".to_string(),
|
||||
alias: None,
|
||||
website: "https://valgrind.org/".to_string(),
|
||||
installed_to: InstalledTo::Snap,
|
||||
installed_from: InstalledFrom::Snap,
|
||||
platforms: Platforms {
|
||||
linux: true,
|
||||
..Default::default()
|
||||
},
|
||||
repository: "https://sourceware.org/git/valgrind.git".to_string(),
|
||||
license_markdown: "[GPL-2.0](https://sourceware.org/git/?p=valgrind.git;a=blob;f=COPYING;hb=HEAD)".to_string()
|
||||
}
|
||||
];
|
||||
let mut tools = vec"
|
||||
.to_owned(),
|
||||
}];
|
||||
|
||||
for path in paths {
|
||||
let file_name = path.file_name();
|
||||
@@ -152,7 +138,6 @@ struct MarkdownEntry {
|
||||
|
||||
#[derive(Debug, Eq, PartialEq)]
|
||||
enum InstalledFrom {
|
||||
Binstall,
|
||||
GitHubRelease,
|
||||
Snap,
|
||||
}
|
||||
@@ -163,11 +148,6 @@ struct Platforms {
|
||||
macos: bool,
|
||||
windows: bool,
|
||||
}
|
||||
impl Platforms {
|
||||
fn all() -> Self {
|
||||
Self { linux: true, macos: true, windows: true }
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for Platforms {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
@@ -197,12 +177,10 @@ enum InstalledTo {
|
||||
impl fmt::Display for InstalledTo {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
InstalledTo::Cargo => f.write_str("`$CARGO_HOME/bin`")?,
|
||||
InstalledTo::Snap => f.write_str("`/snap/bin`")?,
|
||||
InstalledTo::UsrLocal => f.write_str("`/usr/local/bin`")?,
|
||||
InstalledTo::Cargo => f.write_str("`$CARGO_HOME/bin`"),
|
||||
InstalledTo::Snap => f.write_str("`/snap/bin`"),
|
||||
InstalledTo::UsrLocal => f.write_str("`$HOME/.install-action/bin`"),
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,7 +201,6 @@ impl fmt::Display for MarkdownEntry {
|
||||
let markdown = format!("| [GitHub Releases]({}/releases) ", self.repository);
|
||||
f.write_str(&markdown)?;
|
||||
}
|
||||
InstalledFrom::Binstall => f.write_str("| `cargo-binstall` ")?,
|
||||
InstalledFrom::Snap => {
|
||||
let markdown =
|
||||
format!("| [snap](https://snapcraft.io/install/{}/ubuntu) ", self.name);
|
||||
|
||||
@@ -102,8 +102,10 @@ tools=()
|
||||
for tool in tools/codegen/base/*.json; do
|
||||
tools+=("$(basename "${tool%.*}")")
|
||||
done
|
||||
# Alias
|
||||
tools+=(nextest)
|
||||
# Not manifest-based
|
||||
tools+=(valgrind nextest cargo-nextest)
|
||||
tools+=(valgrind)
|
||||
|
||||
if [[ -n "${tags}" ]]; then
|
||||
# Create a release commit.
|
||||
|
||||
Reference in New Issue
Block a user