mirror of
https://github.com/taiki-e/install-action.git
synced 2026-04-22 23:40:30 +00:00
Compare commits
65 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9b00020f6f | ||
|
|
2c14471598 | ||
|
|
544b987e85 | ||
|
|
1014a1e7a6 | ||
|
|
df03a8f339 | ||
|
|
1bd25cfd26 | ||
|
|
4e38715ddc | ||
|
|
2d4372270d | ||
|
|
e5240ce0c5 | ||
|
|
cd2b50cd20 | ||
|
|
08b0c77d33 | ||
|
|
51b8ba088c | ||
|
|
c46ebac92e | ||
|
|
6058afcbf2 | ||
|
|
60784cb1f4 | ||
|
|
ccdec58fd9 | ||
|
|
c2bb13fe14 | ||
|
|
5730b40ec8 | ||
|
|
70765aab52 | ||
|
|
980709d4ed | ||
|
|
9c2797b8f2 | ||
|
|
c3531c890e | ||
|
|
e529e9af03 | ||
|
|
2190a018e8 | ||
|
|
f1a3491ca4 | ||
|
|
7491b90053 | ||
|
|
036b36b819 | ||
|
|
0f35150a34 | ||
|
|
4fedbddde8 | ||
|
|
20f466fa6b | ||
|
|
0fc560009a | ||
|
|
8eb922d4a7 | ||
|
|
689459d9ff | ||
|
|
c9ca4b7c7b | ||
|
|
68c5e86b83 | ||
|
|
d722dd2b73 | ||
|
|
3c93f2e2e2 | ||
|
|
4f17488f44 | ||
|
|
fce5fd6127 | ||
|
|
e7cd6f10dc | ||
|
|
2f990e9c48 | ||
|
|
2791c528e4 | ||
|
|
c2927f0c5b | ||
|
|
1ae6b4aac2 | ||
|
|
d4c31008b2 | ||
|
|
55d8cef422 | ||
|
|
685948ac6a | ||
|
|
0eaa33a7ad | ||
|
|
ffe829f559 | ||
|
|
3342907307 | ||
|
|
56635f62d1 | ||
|
|
040f0ebba5 | ||
|
|
1a42fe4b6d | ||
|
|
6608b29f1f | ||
|
|
4512171af8 | ||
|
|
672949f0e9 | ||
|
|
ac1dc7f25e | ||
|
|
b635b8d3ea | ||
|
|
4bb58959fb | ||
|
|
22c308f3b9 | ||
|
|
7bcbbdbff4 | ||
|
|
0884b6d9b6 | ||
|
|
fb6a8a29a7 | ||
|
|
8de347c29f | ||
|
|
b780471fc3 |
@@ -44,7 +44,7 @@
|
||||
"languageSettings": [
|
||||
{
|
||||
"languageId": ["*"],
|
||||
"dictionaries": ["rust"]
|
||||
"dictionaries": ["bash", "rust"]
|
||||
}
|
||||
],
|
||||
"ignorePaths": []
|
||||
|
||||
1
.github/.cspell/project-dictionary.txt
vendored
1
.github/.cspell/project-dictionary.txt
vendored
@@ -22,7 +22,6 @@ pwsh
|
||||
quickinstall
|
||||
rdme
|
||||
sccache
|
||||
shfmt
|
||||
syft
|
||||
udeps
|
||||
wasmtime
|
||||
|
||||
40
.github/workflows/ci.yml
vendored
40
.github/workflows/ci.yml
vendored
@@ -66,10 +66,10 @@ jobs:
|
||||
tool: ${{ steps.tool-list.outputs.tool }}
|
||||
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
|
||||
- name: Test bash
|
||||
run: just --version; shfmt --version; protoc --version
|
||||
run: just --version && shfmt --version && protoc --version
|
||||
shell: bash
|
||||
- name: Test sh
|
||||
run: just --version; shfmt --version; protoc --version
|
||||
run: just --version && shfmt --version && protoc --version
|
||||
shell: sh
|
||||
if: startsWith(matrix.os, 'ubuntu') || startsWith(matrix.os, 'macos')
|
||||
- name: Test pwsh
|
||||
@@ -118,29 +118,8 @@ jobs:
|
||||
timeout-minutes: 60
|
||||
container: ${{ matrix.container }}
|
||||
steps:
|
||||
- name: Install requirements (ubuntu/debian)
|
||||
run: |
|
||||
set -eEuxo pipefail
|
||||
apt-get -o Acquire::Retries=10 -qq update
|
||||
apt-get -o Acquire::Retries=10 -o Dpkg::Use-Pty=0 install -y --no-install-recommends cargo
|
||||
if: startsWith(matrix.container, 'ubuntu') || startsWith(matrix.container, 'debian')
|
||||
- name: Install requirements (fedora/almalinux/centos)
|
||||
run: |
|
||||
set -eEuxo pipefail
|
||||
curl --proto '=https' --tlsv1.2 -fsSL --retry 10 https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable --no-modify-path
|
||||
echo "$HOME/.cargo/bin" >>"${GITHUB_PATH}"
|
||||
if: startsWith(matrix.container, 'fedora') || startsWith(matrix.container, 'almalinux') || startsWith(matrix.container, 'centos')
|
||||
- name: Install requirements (opensuse)
|
||||
run: |
|
||||
set -eEuxo pipefail
|
||||
zypper install -y rustup
|
||||
rustup toolchain add stable --profile minimal
|
||||
if: startsWith(matrix.container, 'opensuse')
|
||||
- name: Install requirements (archlinux)
|
||||
run: pacman -Sy --noconfirm rust
|
||||
if: startsWith(matrix.container, 'archlinux')
|
||||
- name: Install requirements (alpine)
|
||||
run: apk --no-cache add bash cargo
|
||||
run: apk --no-cache add bash
|
||||
shell: sh
|
||||
if: startsWith(matrix.container, 'alpine')
|
||||
- uses: taiki-e/checkout-action@v1
|
||||
@@ -153,19 +132,6 @@ jobs:
|
||||
with:
|
||||
tool: ${{ steps.tool-list.outputs.tool }}
|
||||
|
||||
test-no-cargo:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 60
|
||||
container: ubuntu
|
||||
steps:
|
||||
- uses: taiki-e/checkout-action@v1
|
||||
- name: Generate tool list
|
||||
id: tool-list
|
||||
run: tools/ci/tool-list.sh >>"${GITHUB_OUTPUT}"
|
||||
- uses: ./
|
||||
with:
|
||||
tool: ${{ steps.tool-list.outputs.tool }}
|
||||
|
||||
manifest:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 60
|
||||
|
||||
145
CHANGELOG.md
145
CHANGELOG.md
@@ -10,6 +10,122 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [2.34.2] - 2024-06-03
|
||||
|
||||
- Update `typos@latest` to 1.22.0.
|
||||
|
||||
## [2.34.1] - 2024-06-03
|
||||
|
||||
- Update `git-cliff@latest` to 2.3.0.
|
||||
|
||||
## [2.34.0] - 2024-06-01
|
||||
|
||||
- Support cargo-binstall fallback without cargo.
|
||||
|
||||
## [2.33.36] - 2024-06-01
|
||||
|
||||
- Update `cargo-llvm-cov@latest` to 0.6.10.
|
||||
|
||||
## [2.33.35] - 2024-05-28
|
||||
|
||||
- Update `syft@latest` to 1.5.0.
|
||||
|
||||
## [2.33.34] - 2024-05-26
|
||||
|
||||
- Update `dprint@latest` to 0.46.1.
|
||||
|
||||
## [2.33.33] - 2024-05-25
|
||||
|
||||
- Update `dprint@latest` to 0.46.0.
|
||||
|
||||
## [2.33.32] - 2024-05-25
|
||||
|
||||
- Update `just@latest` to 1.27.0.
|
||||
|
||||
## [2.33.31] - 2024-05-25
|
||||
|
||||
- Update `cargo-binstall@latest` to 1.6.8.
|
||||
|
||||
- Update `sccache@latest` to 0.8.1.
|
||||
|
||||
## [2.33.30] - 2024-05-24
|
||||
|
||||
- Update `cargo-deny@latest` to 0.14.24.
|
||||
|
||||
## [2.33.29] - 2024-05-23
|
||||
|
||||
- Update `protoc@latest` to 3.27.0.
|
||||
|
||||
## [2.33.28] - 2024-05-22
|
||||
|
||||
- Update `wasmtime@latest` to 21.0.1.
|
||||
|
||||
## [2.33.27] - 2024-05-21
|
||||
|
||||
- Update `wasmtime@latest` to 21.0.0.
|
||||
|
||||
## [2.33.26] - 2024-05-19
|
||||
|
||||
- Update `cargo-careful@latest` to 0.4.2.
|
||||
|
||||
## [2.33.25] - 2024-05-18
|
||||
|
||||
- Update `cargo-binstall@latest` to 1.6.7.
|
||||
|
||||
## [2.33.24] - 2024-05-17
|
||||
|
||||
- Update `mdbook@latest` to 0.4.40.
|
||||
|
||||
## [2.33.23] - 2024-05-14
|
||||
|
||||
- Update `just@latest` to 1.26.0.
|
||||
|
||||
## [2.33.22] - 2024-05-12
|
||||
|
||||
- Update `git-cliff@latest` to 2.2.2.
|
||||
|
||||
## [2.33.21] - 2024-05-11
|
||||
|
||||
- Update `cargo-binstall@latest` to 1.6.6.
|
||||
|
||||
- Update `cargo-tarpaulin@latest` to 0.30.0.
|
||||
|
||||
## [2.33.20] - 2024-05-09
|
||||
|
||||
- Update `syft@latest` to 1.4.1.
|
||||
|
||||
## [2.33.19] - 2024-05-08
|
||||
|
||||
- Update `cargo-tarpaulin@latest` to 0.29.2.
|
||||
|
||||
## [2.33.18] - 2024-05-08
|
||||
|
||||
- Update `wasmtime@latest` to 20.0.2.
|
||||
|
||||
## [2.33.17] - 2024-05-06
|
||||
|
||||
- Update `biome@latest` to 1.7.3.
|
||||
|
||||
## [2.33.16] - 2024-05-04
|
||||
|
||||
- Update `cargo-make@latest` to 0.37.12.
|
||||
|
||||
## [2.33.15] - 2024-05-04
|
||||
|
||||
- Update `wasmtime@latest` to 20.0.1.
|
||||
|
||||
## [2.33.14] - 2024-05-03
|
||||
|
||||
- Update `cargo-deny@latest` to 0.14.23.
|
||||
|
||||
- Support `cargo-deny` on aarch64 Linux.
|
||||
|
||||
## [2.33.13] - 2024-05-03
|
||||
|
||||
- Update `cargo-tarpaulin@latest` to 0.29.1.
|
||||
|
||||
- Update `cargo-binstall@latest` to 1.6.5.
|
||||
|
||||
## [2.33.12] - 2024-05-01
|
||||
|
||||
- Update `cargo-tarpaulin@latest` to 0.29.0.
|
||||
@@ -2123,7 +2239,34 @@ Note: This release is considered a breaking change because installing on version
|
||||
|
||||
Initial release
|
||||
|
||||
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.33.12...HEAD
|
||||
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.34.2...HEAD
|
||||
[2.34.2]: https://github.com/taiki-e/install-action/compare/v2.34.1...v2.34.2
|
||||
[2.34.1]: https://github.com/taiki-e/install-action/compare/v2.34.0...v2.34.1
|
||||
[2.34.0]: https://github.com/taiki-e/install-action/compare/v2.33.36...v2.34.0
|
||||
[2.33.36]: https://github.com/taiki-e/install-action/compare/v2.33.35...v2.33.36
|
||||
[2.33.35]: https://github.com/taiki-e/install-action/compare/v2.33.34...v2.33.35
|
||||
[2.33.34]: https://github.com/taiki-e/install-action/compare/v2.33.33...v2.33.34
|
||||
[2.33.33]: https://github.com/taiki-e/install-action/compare/v2.33.32...v2.33.33
|
||||
[2.33.32]: https://github.com/taiki-e/install-action/compare/v2.33.31...v2.33.32
|
||||
[2.33.31]: https://github.com/taiki-e/install-action/compare/v2.33.30...v2.33.31
|
||||
[2.33.30]: https://github.com/taiki-e/install-action/compare/v2.33.29...v2.33.30
|
||||
[2.33.29]: https://github.com/taiki-e/install-action/compare/v2.33.28...v2.33.29
|
||||
[2.33.28]: https://github.com/taiki-e/install-action/compare/v2.33.27...v2.33.28
|
||||
[2.33.27]: https://github.com/taiki-e/install-action/compare/v2.33.26...v2.33.27
|
||||
[2.33.26]: https://github.com/taiki-e/install-action/compare/v2.33.25...v2.33.26
|
||||
[2.33.25]: https://github.com/taiki-e/install-action/compare/v2.33.24...v2.33.25
|
||||
[2.33.24]: https://github.com/taiki-e/install-action/compare/v2.33.23...v2.33.24
|
||||
[2.33.23]: https://github.com/taiki-e/install-action/compare/v2.33.22...v2.33.23
|
||||
[2.33.22]: https://github.com/taiki-e/install-action/compare/v2.33.21...v2.33.22
|
||||
[2.33.21]: https://github.com/taiki-e/install-action/compare/v2.33.20...v2.33.21
|
||||
[2.33.20]: https://github.com/taiki-e/install-action/compare/v2.33.19...v2.33.20
|
||||
[2.33.19]: https://github.com/taiki-e/install-action/compare/v2.33.18...v2.33.19
|
||||
[2.33.18]: https://github.com/taiki-e/install-action/compare/v2.33.17...v2.33.18
|
||||
[2.33.17]: https://github.com/taiki-e/install-action/compare/v2.33.16...v2.33.17
|
||||
[2.33.16]: https://github.com/taiki-e/install-action/compare/v2.33.15...v2.33.16
|
||||
[2.33.15]: https://github.com/taiki-e/install-action/compare/v2.33.14...v2.33.15
|
||||
[2.33.14]: https://github.com/taiki-e/install-action/compare/v2.33.13...v2.33.14
|
||||
[2.33.13]: https://github.com/taiki-e/install-action/compare/v2.33.12...v2.33.13
|
||||
[2.33.12]: https://github.com/taiki-e/install-action/compare/v2.33.11...v2.33.12
|
||||
[2.33.11]: https://github.com/taiki-e/install-action/compare/v2.33.10...v2.33.11
|
||||
[2.33.10]: https://github.com/taiki-e/install-action/compare/v2.33.9...v2.33.10
|
||||
|
||||
@@ -10,6 +10,8 @@ improper_ctypes_definitions = "warn"
|
||||
non_ascii_idents = "warn"
|
||||
rust_2018_idioms = "warn"
|
||||
single_use_lifetimes = "warn"
|
||||
unexpected_cfgs = { level = "warn", check-cfg = [
|
||||
] }
|
||||
unreachable_pub = "warn"
|
||||
unsafe_op_in_unsafe_fn = "warn"
|
||||
[workspace.lints.clippy]
|
||||
@@ -27,11 +29,13 @@ borrow_as_ptr = { level = "allow", priority = 1 } # https://github.com/rust-lang
|
||||
declare_interior_mutable_const = { level = "allow", priority = 1 } # https://github.com/rust-lang/rust-clippy/issues/7665
|
||||
doc_markdown = { level = "allow", priority = 1 }
|
||||
float_cmp = { level = "allow", priority = 1 } # https://github.com/rust-lang/rust-clippy/issues/7725
|
||||
incompatible_msrv = { level = "allow", priority = 1 } # buggy: doesn't consider cfg, https://github.com/rust-lang/rust-clippy/issues/12280, https://github.com/rust-lang/rust-clippy/issues/12257#issuecomment-2093667187
|
||||
lint_groups_priority = { level = "allow", priority = 1 } # https://github.com/rust-lang/rust-clippy/issues/12270
|
||||
manual_assert = { level = "allow", priority = 1 }
|
||||
manual_range_contains = { level = "allow", priority = 1 } # https://github.com/rust-lang/rust-clippy/issues/6455#issuecomment-1225966395
|
||||
missing_errors_doc = { level = "allow", priority = 1 }
|
||||
module_name_repetitions = { level = "allow", priority = 1 }
|
||||
nonminimal_bool = { level = "allow", priority = 1 } # buggy https://github.com/rust-lang/rust-clippy/issues?q=is%3Aissue+is%3Aopen+nonminimal_bool
|
||||
nonminimal_bool = { level = "allow", priority = 1 } # buggy: https://github.com/rust-lang/rust-clippy/issues?q=is%3Aissue+is%3Aopen+nonminimal_bool
|
||||
similar_names = { level = "allow", priority = 1 }
|
||||
single_match = { level = "allow", priority = 1 }
|
||||
single_match_else = { level = "allow", priority = 1 }
|
||||
|
||||
@@ -152,7 +152,6 @@ This action has been tested for GitHub-hosted runners (Ubuntu, macOS, Windows) a
|
||||
To use this action in self-hosted runners or in containers, at least the following tools are required:
|
||||
|
||||
- bash
|
||||
- cargo (if you use cargo-binstall fallback)
|
||||
|
||||
## Related Projects
|
||||
|
||||
|
||||
8
main.sh
8
main.sh
@@ -748,5 +748,11 @@ if [[ ${#unsupported_tools[@]} -gt 0 ]]; then
|
||||
# By default, cargo-binstall enforce downloads over secure transports only.
|
||||
# As a result, http will be disabled, and it will also set
|
||||
# min tls version to be 1.2
|
||||
cargo binstall --force --no-confirm --locked "${unsupported_tools[@]}"
|
||||
cargo-binstall binstall --force --no-confirm --locked "${unsupported_tools[@]}"
|
||||
if ! type -P cargo >/dev/null; then
|
||||
_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}"
|
||||
fi
|
||||
fi
|
||||
|
||||
26
manifests/biome.json
generated
26
manifests/biome.json
generated
@@ -35,13 +35,33 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "1.7.2"
|
||||
"version": "1.7.3"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.7.2"
|
||||
"version": "1.7.3"
|
||||
},
|
||||
"1.7": {
|
||||
"version": "1.7.2"
|
||||
"version": "1.7.3"
|
||||
},
|
||||
"1.7.3": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "f4c2db816081527e18f4219d4c2ee97f3613f9b04aa2c2480b97f85fd0b1c744"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "97541273ec677c3dc90cd43989a10f1437e9ca61c8ecc1340706a56b1490ca77"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "a44a6787eb664cd8977da4cfcbc58092c3b8b7e44419895944858dd1eae13855"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "8495ff8f76a19a12779c43e49811f5eecb1c88e79e82de7bd61ab968062eca20"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "6c9ff5223173b71aaa12693451369c287e8f4e5625803a9ceefd815a9bb8a0c6"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "6f545f42e3b47f5489f75f30f309611e3ae470dd92e568e44311d2ee3ffdb3f9"
|
||||
}
|
||||
},
|
||||
"1.7.2": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
16
manifests/cargo-binstall.json
generated
16
manifests/cargo-binstall.json
generated
@@ -21,26 +21,26 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "1.6.4"
|
||||
"version": "1.6.8"
|
||||
},
|
||||
"1.6.4": {
|
||||
"1.6.8": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "b07160c21cdfcc24c3afe94b3cb12bf6d111cef7b218cce85a0c1dfae7e106dd"
|
||||
"checksum": "581eb7c97b2767a468afb0505c416eb727b469c029b36470288fc30b26517101"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "761839db77de482f9bbddb87d43563f8308e7dbdccf2bb3c66f3bcbe13a5dee0"
|
||||
"checksum": "590ff2a4b50d67ce52b35895e4cb8d75fefdc591988dafb2687c6461b50e3885"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "2a05851e1a854cc27c7c6a04f665d506bf2b7aa0aa62721a82af9aeeff9d20d2"
|
||||
"checksum": "0c1cd165f4460a9d5c1f5c2a67e5faf53913694ba207ddc18b44f6c5de6ba6c5"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "70c17459e4bc0b417679e66af55199603d80fa751d819b86713f700e3e9a6602"
|
||||
"checksum": "2433118983ade85388be17d442b430c4932eb2dad834143f9a6a25646563281f"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "64755bfa178ba061c90d46fdf6c977c9b78564bcb4605ff827855d6623453be9"
|
||||
"checksum": "1b0ea154b639dc7d8b49c6a2fa300964357a67a1b2441e9f29b61c7b7b79d23d"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "1277c4ae1a772f803355e256192c2b8bc434421dbd137a9b895ca8031a31ddb3"
|
||||
"checksum": "f440401a77b284a8b52ba0052fe26628e8658d4febc91108c28542a0843d341a"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
15
manifests/cargo-careful.json
generated
15
manifests/cargo-careful.json
generated
@@ -12,10 +12,21 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.4.1"
|
||||
"version": "0.4.2"
|
||||
},
|
||||
"0.4": {
|
||||
"version": "0.4.1"
|
||||
"version": "0.4.2"
|
||||
},
|
||||
"0.4.2": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "ee14c5796acab604714e358de11bf5204055410ae8fd4891df7f5d62461402c3"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "480efaf0a577161332b27ea13c8703ead1b6355b5c6541f5bd61d440440b4bde"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "ac374b7799a37e3ef21c6bfe409583c3acbc57242fbb32e8534269b5e97b8ee9"
|
||||
}
|
||||
},
|
||||
"0.4.1": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
42
manifests/cargo-deny.json
generated
42
manifests/cargo-deny.json
generated
@@ -13,16 +13,54 @@
|
||||
"url": "https://github.com/EmbarkStudios/cargo-deny/releases/download/${version}/cargo-deny-${version}-x86_64-pc-windows-msvc.tar.gz",
|
||||
"bin": "cargo-deny-${version}-x86_64-pc-windows-msvc/cargo-deny.exe"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"url": "https://github.com/EmbarkStudios/cargo-deny/releases/download/${version}/cargo-deny-${version}-aarch64-unknown-linux-musl.tar.gz",
|
||||
"bin": "cargo-deny-${version}-aarch64-unknown-linux-musl/cargo-deny"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/EmbarkStudios/cargo-deny/releases/download/${version}/cargo-deny-${version}-aarch64-apple-darwin.tar.gz",
|
||||
"bin": "cargo-deny-${version}-aarch64-apple-darwin/cargo-deny"
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.14.22"
|
||||
"version": "0.14.24"
|
||||
},
|
||||
"0.14": {
|
||||
"version": "0.14.22"
|
||||
"version": "0.14.24"
|
||||
},
|
||||
"0.14.24": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "df57dd1ccbc44c4445cb72974562ed934637d982fb0f6d62105dddc290beaaad"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "47b7b07fb210b871027adb3a08fe85fa1a54e4403b523feaa844f3db029e96c8"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "35e6709107c13d35b9c2a9ee6d9db4cdf52f008e84334597e796305b95a72bdd"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "8b1142bc6b7968169781a0ce01c74dc553468d968eda931c0a9e7420ae82e20d"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "636f9e6e509bc43fab9ab6c2f2470dc027d05badce47b075bd27d9b05ffb162f"
|
||||
}
|
||||
},
|
||||
"0.14.23": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "05d6cb0cd61350d3227e1f0af9252fce7a66f6b109a8850bb0af83507892c4da"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "d8d3e97d95521dcc2e95a4293b3e774aeee5591cad9994ad49b5d177ca98bf8e"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "5da19ca3efc6d207d075fdc29e22dc74bcb5476ec33eabfba9d788fc23513858"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "027f050ba79720645e1c7c8239ee0c8896485c961152b8d025756be88266b302"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "95562322593b203ffdf4d209a3781069c268fd6a4b3267b0a6b67919ff672225"
|
||||
}
|
||||
},
|
||||
"0.14.22": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
21
manifests/cargo-llvm-cov.json
generated
21
manifests/cargo-llvm-cov.json
generated
@@ -18,10 +18,27 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.6.9"
|
||||
"version": "0.6.10"
|
||||
},
|
||||
"0.6": {
|
||||
"version": "0.6.9"
|
||||
"version": "0.6.10"
|
||||
},
|
||||
"0.6.10": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "2350d7d6586c8b1ac828ad5578225fafb6a43fa9c35fe835c28a5ed63499df60"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "6355b4536798ba0cea459729cc531f7bbf252d51c86b02683c0b4a4033d8cb96"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "3090e71ba2c0e16e593d338f4ed696f3829544f53dea63bdd966398f4379259c"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "7921682e7bd925b69bbecaf9bf42f99a6404ef60049b1a9f87fe97dc697265f4"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "46fe1d529755ca1a39dc7995374eef4482a20f0f632dd113430641c06fc4b466"
|
||||
}
|
||||
},
|
||||
"0.6.9": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
18
manifests/cargo-make.json
generated
18
manifests/cargo-make.json
generated
@@ -19,10 +19,24 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.37.11"
|
||||
"version": "0.37.12"
|
||||
},
|
||||
"0.37": {
|
||||
"version": "0.37.11"
|
||||
"version": "0.37.12"
|
||||
},
|
||||
"0.37.12": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "d07149c4425ec93fc1cfedf8c8092d3b405482acdb2d01ecd8fba3ac755a381a"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "96799def4c15cfe81e72b96a8df90a49e1cca0d2899f4e928e69e8a1f6e46ee1"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "271c37b5f63b02a1c4ff5f33935976df7cb473ada221dd06bce7282520f7be65"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "091b93de51096c406c698b567e8d5bab83c2ab030b5b2a763104efe841ffb079"
|
||||
}
|
||||
},
|
||||
"0.37.11": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
58
manifests/cargo-tarpaulin.json
generated
58
manifests/cargo-tarpaulin.json
generated
@@ -18,10 +18,64 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.29.0"
|
||||
"version": "0.30.0"
|
||||
},
|
||||
"0.30": {
|
||||
"version": "0.30.0"
|
||||
},
|
||||
"0.30.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "7adaec5afad826e8b758fffe3b9804d3a371553fa4cdb56ddd9a3592c08a03ac"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "cc2b8b84c0f19db57f00b5e2e322c3115a744d2fccc823700f3b7f60dd13a289"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "fa1dee30c073f72b03303c3d6479d0198eb0f8079e1b65582a502f411247754d"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "e06ef0e98fc78da0a447f8560fbfe797a57cebe1b71a7161e0810f6d65151758"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "a7f582a21083f2be93aeb3f7d13d534ee5d63c1aec9e1f8c570253a970f4d18e"
|
||||
}
|
||||
},
|
||||
"0.29": {
|
||||
"version": "0.29.0"
|
||||
"version": "0.29.2"
|
||||
},
|
||||
"0.29.2": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "d6ba7a39fa27c1792741860dc28225daaab9ba74f7ebdd5cf4f175009f079167"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "e489e193d0d520002ad10673f6027ff80cd516a5ffbc8f8e4269f2181428ae0d"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "f3e7bf5ea970d543b9b47cd4ad62fa9f6316fed61e57132abf085ddde6e60692"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "3c8b9db1d5f38e741ee84e15e038216c7a74a5b550770f8a273296aea65e7292"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "15bc3f52422c8e72f1385a113d35a9e7b4ab6a15503fceef2155fe0fe5bbcb4f"
|
||||
}
|
||||
},
|
||||
"0.29.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "be2be986abde1f7b9544f217acce4d1699a04bc3b09e17c05b3fbd239d52456a"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "6809df4fb7f559e30ed4134abca203fcd92cbe1db5117fa17a7e9c64933ee80b"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "a8827dfd6cbe3280bd474d7f49ee58544016ad8eaa11769edaa05936c91ae882"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "9e3791c191fa8224d038e54d988c3937e446c9e8673f5db5c0e43cc76af1ab16"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "2e4eac469f93ac46721d527958a6ec690d4084ed6893900214c504cce6a3303d"
|
||||
}
|
||||
},
|
||||
"0.29.0": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
39
manifests/dprint.json
generated
39
manifests/dprint.json
generated
@@ -24,7 +24,44 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.45.1"
|
||||
"version": "0.46.1"
|
||||
},
|
||||
"0.46": {
|
||||
"version": "0.46.1"
|
||||
},
|
||||
"0.46.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "4a7d6fa6b920ab150f580965556086cdd7992e07078e627ab9a9d1c3bd30ba85"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "cdea84bce1d84c26e8eced2265d246b79a849ec2e7d1377d98dd7bdb21c7ce83"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "74e5ab38c744d5903862c2b5174d0fef9759b5506da775e1fb93b6a68c63101d"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "e2b6d87167d21f1f01571790e79526ef9caff3b8b75f5cac348c4f06f60a8c16"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "f3ff4faef83d14c3b4ae262e79a40d4e0fc3fa1903d0b6e9b82f0b25b00e9499"
|
||||
}
|
||||
},
|
||||
"0.46.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "7a2c12edc868259be890174c4ec3bd51c81ec8773aa294e12fac0634f36d15f5"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "e339f1f891c60087676d72f70ba5f80dcaedde4bdc58730b9cb68a5483b3abfd"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "786201545938f6f7c6d407e6404b31ae9bbf9e5a4abc4c88dc9bd73da369a906"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "e52c0a3398e34e88ffe560e719bf8361ba3f35b4e0927ab9ba0761796884ce24"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "4b608b3676f10e04328c3d8be396bded96328ebca9b95b70bf5baf67bed7b135"
|
||||
}
|
||||
},
|
||||
"0.45": {
|
||||
"version": "0.45.1"
|
||||
|
||||
49
manifests/git-cliff.json
generated
49
manifests/git-cliff.json
generated
@@ -27,13 +27,56 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "2.2.1"
|
||||
"version": "2.3.0"
|
||||
},
|
||||
"2": {
|
||||
"version": "2.2.1"
|
||||
"version": "2.3.0"
|
||||
},
|
||||
"2.3": {
|
||||
"version": "2.3.0"
|
||||
},
|
||||
"2.3.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "0371c0c2fd948a711d05198f719a2ec8ccb2a43ae5e4760394916d5cf6b45c6c"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "73ce46c671a593fe1acef725e7816c793968e3c315fd72107280e830eaa55820"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "90bc9c60b5db44a62fae51fb09e9565e2d460e107df3404ac5384a2f0bdd96d1"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "aed0a6fba4d5b309be98ef71db75928c84c57495d46843791e95870582f0d1a6"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "1fd8e277212db52c791a20b6ecdb993ce47884a1aca3ee3d31066fd29acea6bb"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "059a29642ffe16ad720cb383290564df35bddd329fa34f6d1d1a4f633d6dad48"
|
||||
}
|
||||
},
|
||||
"2.2": {
|
||||
"version": "2.2.1"
|
||||
"version": "2.2.2"
|
||||
},
|
||||
"2.2.2": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "3a199e08786eeb8801e40c6f2e022e236c1a640eb172695898ded679089eb5cf"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "3efc16a26b1e511f285395a241d338991dc89494a1d3b4fc4c67c99a5b8cedce"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "9e2956b4ec65dbf48ca9b9fa1815012ca9486c721a143b6eb35412f395f2fd7f"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "a5484af486d8ac20748c681ae205c698415550783d3cf13d0a5e230c0cca5961"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "0f5b598795b6b6f2c6b7f683559ef90b2cbe59393c88c057892a12713e08d20b"
|
||||
},
|
||||
"aarch64_windows": {
|
||||
"checksum": "919f5b90966dc90c695ab327cedd840ef2fe705270c3a0902d106abde8110c0f"
|
||||
}
|
||||
},
|
||||
"2.2.1": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
44
manifests/just.json
generated
44
manifests/just.json
generated
@@ -18,10 +18,50 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "1.25.2"
|
||||
"version": "1.27.0"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.25.2"
|
||||
"version": "1.27.0"
|
||||
},
|
||||
"1.27": {
|
||||
"version": "1.27.0"
|
||||
},
|
||||
"1.27.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "6cc91651c4dd5e287df8ea7b3087c44120ba95a32ee50497bb071695846ab086"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "ae5dae799d3dafeaf4d53e221e1efdeec88980a38375b0d6dbc9c9bb16eec273"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "08dca5c6e30258cbb24ec30eb8ea1e3ba5b2beb5349eaabee450230ce45ef585"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "f049d134d311b3d2190d30a936e0a4257df156082cab37d4eb2ace1b760154ca"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "5d6b05ab581dca9346114df7c9f7285f54d4b80d8082e2c8fce51a42b3dbdb9c"
|
||||
}
|
||||
},
|
||||
"1.26": {
|
||||
"version": "1.26.0"
|
||||
},
|
||||
"1.26.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "be7233b3ebfd5bdda8cae6537c21c839d3d24ecf075f1494a2e67f93539b1e12"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "aa9ad8d097c4d3744c9d06520e28837c5e3fa50519a4cd657e0f2f7a226897af"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "e326f8552ac7119b643fed1b8af8fe392593280c185c44beadc313e0291f412a"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "56352027a18e64bc58aa77d4c020bd79163f10cecc859595b0474b5a442369d3"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "1b8b12f348eea603ba935d0799e03b87adb9b15779ff21cd67b3ddb1e6ab21d2"
|
||||
}
|
||||
},
|
||||
"1.25": {
|
||||
"version": "1.25.2"
|
||||
|
||||
32
manifests/mdbook.json
generated
32
manifests/mdbook.json
generated
@@ -18,10 +18,38 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.4.37"
|
||||
"version": "0.4.40"
|
||||
},
|
||||
"0.4": {
|
||||
"version": "0.4.37"
|
||||
"version": "0.4.40"
|
||||
},
|
||||
"0.4.40": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "f7520ad60d1a6fe81c667d0da876a9ddd736f874eb61c01b025eafdc83381227"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "5783c09bb60b3e2e904d6839e3a1993a4ace1ca30a336a3c78bedac6e938817c"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "1470e5b06614cb2851e8b3c908dfdef2982b90e6cc6045662512ce66d6c7c5d9"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "d5ebfd2e31755726f8c0988a423b1ab5d950bb894fbba170355bb7d1cb852586"
|
||||
}
|
||||
},
|
||||
"0.4.39": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "25d66ee23c67815549a1517c484aad210c5e0f97c68bb990a93a34c03e859d47"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "dd52578a17c892afa805ec29b15c06f1e7c6e6707791ef840165fc3f1763c6bb"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "f8efb854df122d6d99189923d7fe61625f8931e0a46d38d8449fd850a67079d1"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "68fc653b401b6d344eef77f9f119d262acadce248e23a4dd1ef2e958eabc2be8"
|
||||
}
|
||||
},
|
||||
"0.4.37": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
29
manifests/protoc.json
generated
29
manifests/protoc.json
generated
@@ -2,10 +2,35 @@
|
||||
"rust_crate": null,
|
||||
"template": null,
|
||||
"latest": {
|
||||
"version": "3.26.1"
|
||||
"version": "3.27.0"
|
||||
},
|
||||
"3": {
|
||||
"version": "3.26.1"
|
||||
"version": "3.27.0"
|
||||
},
|
||||
"3.27": {
|
||||
"version": "3.27.0"
|
||||
},
|
||||
"3.27.0": {
|
||||
"x86_64_linux_gnu": {
|
||||
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-linux-x86_64.zip",
|
||||
"checksum": "e2bdce49564dbad4676023d174d9cdcf932238bc0b56a8349a5cb27bbafc26b0"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-osx-x86_64.zip",
|
||||
"checksum": "d956cf3a9e91a687aa4d1026e9261e5a587e4e0b545db0174509f6c448b8ce21"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-win64.zip",
|
||||
"checksum": "80888b2a38786861c7b3aaf4e0bd5b933a51d750219ee8c61093655fc2924926"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-linux-aarch_64.zip",
|
||||
"checksum": "1e4b2d8b145afe99a36602f305165761e46d2525aa94cbb907e2e983be6717ac"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-osx-aarch_64.zip",
|
||||
"checksum": "2cf59e3e3463bede1f10b7517efdddd97a3bd8cfd9cacc286407b657290dc781"
|
||||
}
|
||||
},
|
||||
"3.26": {
|
||||
"version": "3.26.1"
|
||||
|
||||
21
manifests/sccache.json
generated
21
manifests/sccache.json
generated
@@ -23,10 +23,27 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.8.0"
|
||||
"version": "0.8.1"
|
||||
},
|
||||
"0.8": {
|
||||
"version": "0.8.0"
|
||||
"version": "0.8.1"
|
||||
},
|
||||
"0.8.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "e0ee621fb16b6940666cd770b091c62cadafd3e062dd12e3a49d9caaff3b795f"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "4306fb21606b14e2ce1266b25c40e55c090ea68c2cb54e1c39bfb9b81ea3e342"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "44249088926f52d1fee76cd1dcd1c061e2152a7feedb7ba43d4a4f50be805608"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "452cef732b24415493a7c6bca6e13536eb9464593fa87c753b6b7cb4733e9c50"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "b4029ae790e29333ebcf52faa5bc0559945011d5fdbc7cc15812bc45fc6ea5d4"
|
||||
}
|
||||
},
|
||||
"0.8.0": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
61
manifests/syft.json
generated
61
manifests/syft.json
generated
@@ -23,10 +23,67 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "1.3.0"
|
||||
"version": "1.5.0"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.3.0"
|
||||
"version": "1.5.0"
|
||||
},
|
||||
"1.5": {
|
||||
"version": "1.5.0"
|
||||
},
|
||||
"1.5.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "3d10023d46dfaf0fe75288df207b478b43597f7d2fff553f58430817166bd478"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "605322e3e7043a4f2f3d6e37f75a71389d38f6f290bff2e54bb2aaebbbf4829b"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "5079c6a88e130f8677d0701cb2689f9eae2088022ecf5fa2b9f341b96d9983d2"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "ee2b1289a1e4b0de9409c3a78867949ca42788a5f50072b8a6e6e04e6a269f9c"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "fe02d072e7ec9a8eb4ac866ba973396a8beae79829ee870acaadd4d862e5e65a"
|
||||
}
|
||||
},
|
||||
"1.4": {
|
||||
"version": "1.4.1"
|
||||
},
|
||||
"1.4.1": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "5e4c6a0d1ca28d25e060a29c7cca0aedc50d951bfb270b45bc9a71e86ac6fbe2"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "c25872b4ddd6f0d06d8454cce6351469b51ee5c04939b5d4ea86c6048c9021e9"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "ac97125b56b21987d35bcb6b5d300a686bc241272b0b91a12a3c6c743a0567a9"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "a28d63bb2bca96092a1a42cd5afdd0787633ae05998935a5e6e2aac8f2e2ec44"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "9e23ce6ab8e36c9fc102f21a47d0ae5cd39362f21ff58f33b09a58f456f36c03"
|
||||
}
|
||||
},
|
||||
"1.4.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "b6c940a0ebc79840d1dd4049d481e0d7b7ea8b70a70ff9b4d10408ea226da9e9"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "235ec3197f15fb4f3cb509ef519b7281de7a1f4a5e43f9ade691791b31a6c44d"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "49742d3ba007a1c477f6c1b15ba19aed7592697d321eee2ef37902001b3dd5e6"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "7cb482f7d7fc3fe8bc4d25673f17d5e4b81ac43a73e746f1862085276f523931"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "ecf2aa6c922fba65c9ecd9b5774770468e9bf083a4759fdc87e3a68733f1b677"
|
||||
}
|
||||
},
|
||||
"1.3": {
|
||||
"version": "1.3.0"
|
||||
|
||||
21
manifests/typos.json
generated
21
manifests/typos.json
generated
@@ -15,10 +15,27 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "1.21.0"
|
||||
"version": "1.22.0"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.21.0"
|
||||
"version": "1.22.0"
|
||||
},
|
||||
"1.22": {
|
||||
"version": "1.22.0"
|
||||
},
|
||||
"1.22.0": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "bfa037cb884797da229768751642191128a8096f34a77c2c2aab81f4ea4add5e"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "5cede24a0c7e7fa826372346ae8a1eb7264741412cf830acb7bd6ba9d261e610"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "cded62aca581b5610a8a8ac88d26c84bbbf02cd988fca64be50da6beb7d6ad85"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "e747252644b76cca8b7c4bf3a36835186773500a2d1964ffe7341bd33ffdfbe2"
|
||||
}
|
||||
},
|
||||
"1.21": {
|
||||
"version": "1.21.0"
|
||||
|
||||
80
manifests/wasmtime.json
generated
80
manifests/wasmtime.json
generated
@@ -23,13 +23,87 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "20.0.0"
|
||||
"version": "21.0.1"
|
||||
},
|
||||
"21": {
|
||||
"version": "21.0.1"
|
||||
},
|
||||
"21.0": {
|
||||
"version": "21.0.1"
|
||||
},
|
||||
"21.0.1": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "d49619e38c660196a048e80d34292e458a11af010ab1780e7b3ae9a42df6e33b"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "8452dc6e865553cc7027d45a961f86440fd9459de7a48117236c386e4ceb2a1f"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "c2a1e23e2ab49f3f942e6a47aba8c60c863fd66166c3940fa3dd1f9a0286a4b6"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "77e8a381bbc54f39399c71ee305b6ce5b6807e7c088846ea1e406a3a62b38146"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "816a4a50c875de0804c316fc3171fb20a45fb82e4bf3e3313dec4f6d819df688"
|
||||
}
|
||||
},
|
||||
"21.0.0": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "605efdd4d073a7574b6d42ef0c9037c6c4e3933ed80615eab84f2d57cfeb3b28"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "7beb9f1b6789af74beef8354b675d5cab6477be708bf45aa86f411c4afe55dfd"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "e57345a2bd644e7f4d0a013617d64a3e16966b9483fee72bad2ab1eebabce59b"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "0fa42c4555617cb4a602216ec45b8dc43686733653ec07f9488ab5e2e3bf5ec8"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "b4a09d69c2cb4655e68895156a1de713b27a6e64796d9073108d20f55b8d5d5c"
|
||||
}
|
||||
},
|
||||
"20": {
|
||||
"version": "20.0.0"
|
||||
"version": "20.0.2"
|
||||
},
|
||||
"20.0": {
|
||||
"version": "20.0.0"
|
||||
"version": "20.0.2"
|
||||
},
|
||||
"20.0.2": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "88857222f6098e1d2988d66cbcb3f73b0b5230e8e6871967de7b44f652a542ff"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "1206b8afa8f2c89f4599886647bae7258cedcb68e4f73e68a6610a68c9141be5"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "b6653044531806d424a1f3eff4bf664e071c163f0536b6447318bced316478d8"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "6df6dfa37c6b7eaef7853b65d0e691eac45c9fb5793ecb37c9404b077d5098f4"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "69d3cfdece114def47cb21bfb37fdc89a2217d2dc7582a68cae4ff2b243837d6"
|
||||
}
|
||||
},
|
||||
"20.0.1": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "b3335181e672527c1f4b5b424413e6bed437cb4b6cc089082f836e03d076bd2d"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "3c921b994a078a0e703e80e9d2714de60deaec3ecbc25f500eac7d1d098c8d74"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "ca065cd227da0e5c8cadf4ef822b6dbc05a1eeab6d5d85ad558c8c761fd4a9b5"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "8b685a76e6a7b2dd89b5778a2b2c17a1ab3ba05e2f1b9cd6955d5a416de572fe"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "ed972d27e55e80af7baf79003791e9a4434af6b82fcc1a51bea33144f730d8d4"
|
||||
}
|
||||
},
|
||||
"20.0.0": {
|
||||
"x86_64_linux_gnu": {
|
||||
|
||||
@@ -128,17 +128,14 @@ case "${host_os}" in
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# cargo-binstall requires cargo
|
||||
if type -P cargo &>/dev/null; then
|
||||
# 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) ;;
|
||||
major) tools+=(cargo-watch@8 watchexec-cli@1) ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
fi
|
||||
# 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) ;;
|
||||
major) tools+=(cargo-watch@8 watchexec-cli@1) ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
|
||||
# sort and dedup
|
||||
IFS=$'\n'
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
"x86_64_linux_musl": {},
|
||||
"x86_64_macos": {},
|
||||
"x86_64_windows": {},
|
||||
"aarch64_linux_musl": {},
|
||||
"aarch64_macos": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ fn main() -> Result<()> {
|
||||
std::process::exit(1);
|
||||
}
|
||||
let package = &args[0];
|
||||
let skip_existing_manifest_versions = std::env::var("SKIP_EXISTING_MANIFEST_VERSIONS").is_ok();
|
||||
|
||||
let workspace_root = &workspace_root();
|
||||
let manifest_path = &workspace_root.join("manifests").join(format!("{package}.json"));
|
||||
@@ -53,7 +54,7 @@ fn main() -> Result<()> {
|
||||
// is greater than 100, multiple fetches are needed.
|
||||
for page in 1.. {
|
||||
let per_page = 100;
|
||||
let mut r: github::Releases = download(&format!(
|
||||
let mut r: github::Releases = download_github(&format!(
|
||||
"https://api.github.com/repos/{repo}/releases?per_page={per_page}&page={page}"
|
||||
))?
|
||||
.into_json()?;
|
||||
@@ -179,6 +180,13 @@ fn main() -> Result<()> {
|
||||
continue;
|
||||
}
|
||||
|
||||
let reverse_semver = Reverse(semver_version.clone().into());
|
||||
|
||||
if skip_existing_manifest_versions && manifests.map.contains_key(&reverse_semver) {
|
||||
eprintln!("Skipping {semver_version} already in manifest");
|
||||
continue;
|
||||
};
|
||||
|
||||
let mut download_info = BTreeMap::new();
|
||||
let mut pubkey = None;
|
||||
for (&platform, base_download_info) in &base_info.platform {
|
||||
@@ -224,7 +232,7 @@ fn main() -> Result<()> {
|
||||
eprintln!("already downloaded");
|
||||
fs::File::open(download_cache)?.read_to_end(&mut buf)?;
|
||||
} else {
|
||||
download(&url)?.into_reader().read_to_end(&mut buf)?;
|
||||
download_github(&url)?.into_reader().read_to_end(&mut buf)?;
|
||||
eprintln!("download complete");
|
||||
fs::write(download_cache, &buf)?;
|
||||
}
|
||||
@@ -246,7 +254,7 @@ fn main() -> Result<()> {
|
||||
eprintln!("already downloaded");
|
||||
minisign_verify::Signature::from_file(sig_download_cache)?
|
||||
} else {
|
||||
let buf = download(&url)?.into_string()?;
|
||||
let buf = download_github(&url)?.into_string()?;
|
||||
eprintln!("download complete");
|
||||
fs::write(sig_download_cache, &buf)?;
|
||||
minisign_verify::Signature::decode(&buf)?
|
||||
@@ -357,10 +365,7 @@ fn main() -> Result<()> {
|
||||
if semver_version.pre.is_empty() {
|
||||
semver_versions.insert(semver_version.clone());
|
||||
}
|
||||
manifests.map.insert(
|
||||
Reverse(semver_version.clone().into()),
|
||||
ManifestRef::Real(Manifest { download_info }),
|
||||
);
|
||||
manifests.map.insert(reverse_semver, ManifestRef::Real(Manifest { download_info }));
|
||||
}
|
||||
if has_build_metadata {
|
||||
eprintln!(
|
||||
@@ -527,7 +532,9 @@ fn replace_vars(
|
||||
Ok(s)
|
||||
}
|
||||
|
||||
fn download(url: &str) -> Result<ureq::Response> {
|
||||
/// 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());
|
||||
let mut retry = 0;
|
||||
let max_retry = 6;
|
||||
@@ -554,6 +561,28 @@ fn download(url: &str) -> Result<ureq::Response> {
|
||||
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));
|
||||
}
|
||||
Err(last_error.unwrap().into())
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
struct Version {
|
||||
major: Option<u64>,
|
||||
|
||||
171
tools/tidy.sh
171
tools/tidy.sh
@@ -16,7 +16,7 @@ trap 's=$?; echo >&2 "$0: error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}
|
||||
# - shellcheck
|
||||
# - npm
|
||||
# - jq
|
||||
# - python
|
||||
# - python 3
|
||||
# - rustup (if Rust code exists)
|
||||
# - clang-format (if C/C++ code exists)
|
||||
#
|
||||
@@ -40,6 +40,19 @@ check_config() {
|
||||
error "could not found $1 in the repository root"
|
||||
fi
|
||||
}
|
||||
check_install() {
|
||||
for tool in "$@"; do
|
||||
if ! type -P "${tool}" &>/dev/null; then
|
||||
if [[ "${tool}" == "python3" ]]; then
|
||||
if type -P python &>/dev/null; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
error "'${tool}' is required to run this check"
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
info() {
|
||||
echo >&2 "info: $*"
|
||||
}
|
||||
@@ -56,6 +69,27 @@ venv() {
|
||||
shift
|
||||
"${venv_bin}/${bin}${exe}" "$@"
|
||||
}
|
||||
venv_install_yq() {
|
||||
local py_suffix=''
|
||||
if type -P python3 &>/dev/null; then
|
||||
py_suffix='3'
|
||||
fi
|
||||
exe=''
|
||||
venv_bin='.venv/bin'
|
||||
case "$(uname -s)" in
|
||||
MINGW* | MSYS* | CYGWIN* | Windows_NT)
|
||||
exe='.exe'
|
||||
venv_bin='.venv/Scripts'
|
||||
;;
|
||||
esac
|
||||
if [[ ! -d .venv ]]; then
|
||||
"python${py_suffix}" -m venv .venv
|
||||
fi
|
||||
if [[ ! -e "${venv_bin}/yq${exe}" ]]; then
|
||||
info "installing yq to ./.venv using pip"
|
||||
venv "pip${py_suffix}" install yq
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ $# -gt 0 ]]; then
|
||||
cat <<EOF
|
||||
@@ -68,24 +102,23 @@ fi
|
||||
# Rust (if exists)
|
||||
if [[ -n "$(git ls-files '*.rs')" ]]; then
|
||||
info "checking Rust code style"
|
||||
check_install cargo jq python3
|
||||
check_config .rustfmt.toml
|
||||
if type -P rustup &>/dev/null; then
|
||||
if check_install rustup; then
|
||||
# `cargo fmt` cannot recognize files not included in the current workspace and modules
|
||||
# defined inside macros, so run rustfmt directly.
|
||||
# We need to use nightly rustfmt because we use the unstable formatting options of rustfmt.
|
||||
rustc_version=$(rustc -vV | grep '^release:' | cut -d' ' -f2)
|
||||
if [[ "${rustc_version}" == *"nightly"* ]] || [[ "${rustc_version}" == *"dev"* ]]; then
|
||||
rustup component add rustfmt &>/dev/null
|
||||
echo "+ rustfmt \$(git ls-files '*.rs')"
|
||||
info "running \`rustfmt \$(git ls-files '*.rs')\`"
|
||||
rustfmt $(git ls-files '*.rs')
|
||||
else
|
||||
rustup component add rustfmt --toolchain nightly &>/dev/null
|
||||
echo "+ rustfmt +nightly \$(git ls-files '*.rs')"
|
||||
info "running \`rustfmt +nightly \$(git ls-files '*.rs')\`"
|
||||
rustfmt +nightly $(git ls-files '*.rs')
|
||||
fi
|
||||
check_diff $(git ls-files '*.rs')
|
||||
else
|
||||
error "'rustup' is not installed; skipped Rust code style check"
|
||||
fi
|
||||
cast_without_turbofish=$(grep -n -E '\.cast\(\)' $(git ls-files '*.rs') || true)
|
||||
if [[ -n "${cast_without_turbofish}" ]]; then
|
||||
@@ -122,11 +155,12 @@ if [[ -n "$(git ls-files '*.rs')" ]]; then
|
||||
binaries=''
|
||||
metadata=$(cargo metadata --format-version=1 --no-deps)
|
||||
has_public_crate=''
|
||||
venv_install_yq
|
||||
for id in $(jq <<<"${metadata}" '.workspace_members[]'); do
|
||||
pkg=$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})")
|
||||
publish=$(jq <<<"${pkg}" -r '.publish')
|
||||
manifest_path=$(jq <<<"${pkg}" -r '.manifest_path')
|
||||
if ! grep -q '^\[lints\]' "${manifest_path}" && ! grep -q '^\[lints\.rust\]' "${manifest_path}"; then
|
||||
if [[ "$(venv tomlq -c '.lints' "${manifest_path}")" == "null" ]]; then
|
||||
error "no [lints] table in ${manifest_path} please add '[lints]' with 'workspace = true'"
|
||||
fi
|
||||
# Publishing is unrestricted if null, and forbidden if an empty array.
|
||||
@@ -144,13 +178,14 @@ if [[ -n "$(git ls-files '*.rs')" ]]; then
|
||||
publish=$(jq <<<"${root_pkg}" -r '.publish')
|
||||
# Publishing is unrestricted if null, and forbidden if an empty array.
|
||||
if [[ "${publish}" != "[]" ]]; then
|
||||
if ! grep -Eq '^exclude = \[.*"/\.\*".*\]' Cargo.toml; then
|
||||
exclude=$(venv tomlq -r '.package.exclude[]' Cargo.toml)
|
||||
if ! grep <<<"${exclude}" -Eq '^/\.\*$'; then
|
||||
error "top-level Cargo.toml of non-virtual workspace should have 'exclude' field with \"/.*\""
|
||||
fi
|
||||
if [[ -e tools ]] && ! grep -Eq '^exclude = \[.*"/tools".*\]' Cargo.toml; then
|
||||
if [[ -e tools ]] && ! grep <<<"${exclude}" -Eq '^/tools$'; then
|
||||
error "top-level Cargo.toml of non-virtual workspace should have 'exclude' field with \"/tools\" if it exists"
|
||||
fi
|
||||
if [[ -e target-specs ]] && ! grep -Eq '^exclude = \[.*"/target-specs".*\]' Cargo.toml; then
|
||||
if [[ -e target-specs ]] && ! grep <<<"${exclude}" -Eq '^/target-specs$'; then
|
||||
error "top-level Cargo.toml of non-virtual workspace should have 'exclude' field with \"/target-specs\" if it exists"
|
||||
fi
|
||||
fi
|
||||
@@ -196,12 +231,10 @@ fi
|
||||
if [[ -n "$(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')" ]]; then
|
||||
info "checking C/C++ code style"
|
||||
check_config .clang-format
|
||||
if type -P clang-format &>/dev/null; then
|
||||
echo "+ clang-format -i \$(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')"
|
||||
if check_install clang-format; then
|
||||
info "running \`clang-format -i \$(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')\`"
|
||||
clang-format -i $(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')
|
||||
check_diff $(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')
|
||||
else
|
||||
error "'clang-format' is not installed; skipped C/C++ code style check"
|
||||
fi
|
||||
elif [[ -e .clang-format ]]; then
|
||||
error ".clang-format is unused"
|
||||
@@ -211,64 +244,39 @@ fi
|
||||
if [[ -n "$(git ls-files '*.yml' '*.yaml' '*.js' '*.json')" ]]; then
|
||||
info "checking YAML/JavaScript/JSON code style"
|
||||
check_config .editorconfig
|
||||
if type -P npm &>/dev/null; then
|
||||
echo "+ npx -y prettier -l -w \$(git ls-files '*.yml' '*.yaml' '*.js' '*.json')"
|
||||
if check_install npm; then
|
||||
info "running \`npx -y prettier -l -w \$(git ls-files '*.yml' '*.yaml' '*.js' '*.json')\`"
|
||||
npx -y prettier -l -w $(git ls-files '*.yml' '*.yaml' '*.js' '*.json')
|
||||
check_diff $(git ls-files '*.yml' '*.yaml' '*.js' '*.json')
|
||||
else
|
||||
error "'npm' is not installed; skipped YAML/JavaScript/JSON code style check"
|
||||
fi
|
||||
# Check GitHub workflows.
|
||||
if [[ -d .github/workflows ]]; then
|
||||
info "checking GitHub workflows"
|
||||
if type -P jq &>/dev/null; then
|
||||
if type -P python3 &>/dev/null || type -P python &>/dev/null; then
|
||||
py_suffix=''
|
||||
if type -P python3 &>/dev/null; then
|
||||
py_suffix='3'
|
||||
fi
|
||||
exe=''
|
||||
venv_bin='.venv/bin'
|
||||
case "$(uname -s)" in
|
||||
MINGW* | MSYS* | CYGWIN* | Windows_NT)
|
||||
exe='.exe'
|
||||
venv_bin='.venv/Scripts'
|
||||
;;
|
||||
if check_install jq python3; then
|
||||
venv_install_yq
|
||||
for workflow in .github/workflows/*.yml; do
|
||||
# The top-level permissions must be weak as they are referenced by all jobs.
|
||||
permissions=$(venv yq -c '.permissions' "${workflow}")
|
||||
case "${permissions}" in
|
||||
'{"contents":"read"}' | '{"contents":"none"}') ;;
|
||||
null) error "${workflow}: top level permissions not found; it must be 'contents: read' or weaker permissions" ;;
|
||||
*) error "${workflow}: only 'contents: read' and weaker permissions are allowed at top level; if you want to use stronger permissions, please set job-level permissions" ;;
|
||||
esac
|
||||
if [[ ! -d .venv ]]; then
|
||||
"python${py_suffix}" -m venv .venv
|
||||
fi
|
||||
if [[ ! -e "${venv_bin}/yq${exe}" ]]; then
|
||||
venv "pip${py_suffix}" install yq
|
||||
fi
|
||||
for workflow in .github/workflows/*.yml; do
|
||||
# The top-level permissions must be weak as they are referenced by all jobs.
|
||||
permissions=$(venv yq -c '.permissions' "${workflow}")
|
||||
case "${permissions}" in
|
||||
'{"contents":"read"}' | '{"contents":"none"}') ;;
|
||||
null) error "${workflow}: top level permissions not found; it must be 'contents: read' or weaker permissions" ;;
|
||||
*) error "${workflow}: only 'contents: read' and weaker permissions are allowed at top level; if you want to use stronger permissions, please set job-level permissions" ;;
|
||||
esac
|
||||
# Make sure the 'needs' section is not out of date.
|
||||
if grep -q '# tidy:needs' "${workflow}" && ! grep -Eq '# *needs: \[' "${workflow}"; then
|
||||
# shellcheck disable=SC2207
|
||||
jobs_actual=($(venv yq '.jobs' "${workflow}" | jq -r 'keys_unsorted[]'))
|
||||
unset 'jobs_actual[${#jobs_actual[@]}-1]'
|
||||
# shellcheck disable=SC2207
|
||||
jobs_expected=($(venv yq -r '.jobs."ci-success".needs[]' "${workflow}"))
|
||||
if [[ "${jobs_actual[*]}" != "${jobs_expected[*]+"${jobs_expected[*]}"}" ]]; then
|
||||
printf -v jobs '%s, ' "${jobs_actual[@]}"
|
||||
sed -i "s/needs: \[.*\] # tidy:needs/needs: [${jobs%, }] # tidy:needs/" "${workflow}"
|
||||
check_diff "${workflow}"
|
||||
error "${workflow}: please update 'needs' section in 'ci-success' job"
|
||||
fi
|
||||
# Make sure the 'needs' section is not out of date.
|
||||
if grep -q '# tidy:needs' "${workflow}" && ! grep -Eq '# *needs: \[' "${workflow}"; then
|
||||
# shellcheck disable=SC2207
|
||||
jobs_actual=($(venv yq '.jobs' "${workflow}" | jq -r 'keys_unsorted[]'))
|
||||
unset 'jobs_actual[${#jobs_actual[@]}-1]'
|
||||
# shellcheck disable=SC2207
|
||||
jobs_expected=($(venv yq -r '.jobs."ci-success".needs[]' "${workflow}"))
|
||||
if [[ "${jobs_actual[*]}" != "${jobs_expected[*]+"${jobs_expected[*]}"}" ]]; then
|
||||
printf -v jobs '%s, ' "${jobs_actual[@]}"
|
||||
sed -i "s/needs: \[.*\] # tidy:needs/needs: [${jobs%, }] # tidy:needs/" "${workflow}"
|
||||
check_diff "${workflow}"
|
||||
error "${workflow}: please update 'needs' section in 'ci-success' job"
|
||||
fi
|
||||
done
|
||||
else
|
||||
error "'python3' is not installed; skipped GitHub workflow check"
|
||||
fi
|
||||
else
|
||||
error "'jq' is not installed; skipped GitHub workflow check"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -281,12 +289,10 @@ fi
|
||||
if [[ -n "$(git ls-files '*.toml' | (grep -v .taplo.toml || true))" ]]; then
|
||||
info "checking TOML style"
|
||||
check_config .taplo.toml
|
||||
if type -P npm &>/dev/null; then
|
||||
echo "+ npx -y @taplo/cli fmt \$(git ls-files '*.toml')"
|
||||
if check_install npm; then
|
||||
info "running \`npx -y @taplo/cli fmt \$(git ls-files '*.toml')\`"
|
||||
RUST_LOG=warn npx -y @taplo/cli fmt $(git ls-files '*.toml')
|
||||
check_diff $(git ls-files '*.toml')
|
||||
else
|
||||
error "'npm' is not installed; skipped TOML style check"
|
||||
fi
|
||||
elif [[ -e .taplo.toml ]]; then
|
||||
error ".taplo.toml is unused"
|
||||
@@ -296,11 +302,9 @@ fi
|
||||
if [[ -n "$(git ls-files '*.md')" ]]; then
|
||||
info "checking Markdown style"
|
||||
check_config .markdownlint-cli2.yaml
|
||||
if type -P npm &>/dev/null; then
|
||||
echo "+ npx -y markdownlint-cli2 \$(git ls-files '*.md')"
|
||||
if check_install npm; then
|
||||
info "running \`npx -y markdownlint-cli2 \$(git ls-files '*.md')\`"
|
||||
npx -y markdownlint-cli2 $(git ls-files '*.md')
|
||||
else
|
||||
error "'npm' is not installed; skipped Markdown style check"
|
||||
fi
|
||||
elif [[ -e .markdownlint-cli2.yaml ]]; then
|
||||
error ".markdownlint-cli2.yaml is unused"
|
||||
@@ -312,29 +316,25 @@ fi
|
||||
|
||||
# Shell scripts
|
||||
info "checking Shell scripts"
|
||||
if type -P shfmt &>/dev/null; then
|
||||
if check_install shfmt; then
|
||||
check_config .editorconfig
|
||||
echo "+ shfmt -l -w \$(git ls-files '*.sh')"
|
||||
info "running \`shfmt -l -w \$(git ls-files '*.sh')\`"
|
||||
shfmt -l -w $(git ls-files '*.sh')
|
||||
check_diff $(git ls-files '*.sh')
|
||||
else
|
||||
error "'shfmt' is not installed; skipped Shell scripts style check"
|
||||
fi
|
||||
if type -P shellcheck &>/dev/null; then
|
||||
if check_install shellcheck; then
|
||||
check_config .shellcheckrc
|
||||
echo "+ shellcheck \$(git ls-files '*.sh')"
|
||||
info "running \`shellcheck \$(git ls-files '*.sh')\`"
|
||||
if ! shellcheck $(git ls-files '*.sh'); then
|
||||
should_fail=1
|
||||
fi
|
||||
if [[ -n "$(git ls-files '*Dockerfile')" ]]; then
|
||||
# SC2154 doesn't seem to work on dockerfile.
|
||||
echo "+ shellcheck -e SC2148,SC2154,SC2250 \$(git ls-files '*Dockerfile')"
|
||||
info "running \`shellcheck -e SC2148,SC2154,SC2250 \$(git ls-files '*Dockerfile')\`"
|
||||
if ! shellcheck -e SC2148,SC2154,SC2250 $(git ls-files '*Dockerfile'); then
|
||||
should_fail=1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
error "'shellcheck' is not installed; skipped Shell scripts style check"
|
||||
fi
|
||||
|
||||
# License check
|
||||
@@ -383,13 +383,14 @@ fi
|
||||
if [[ -f .cspell.json ]]; then
|
||||
info "spell checking"
|
||||
project_dictionary=.github/.cspell/project-dictionary.txt
|
||||
if type -P npm &>/dev/null; then
|
||||
if check_install npm jq python3; then
|
||||
has_rust=''
|
||||
if [[ -n "$(git ls-files '*Cargo.toml')" ]]; then
|
||||
venv_install_yq
|
||||
has_rust='1'
|
||||
dependencies=''
|
||||
for manifest_path in $(git ls-files '*Cargo.toml'); do
|
||||
if [[ "${manifest_path}" != "Cargo.toml" ]] && ! grep -Eq '\[workspace\]' "${manifest_path}"; then
|
||||
if [[ "${manifest_path}" != "Cargo.toml" ]] && [[ "$(venv tomlq -c '.workspace' "${manifest_path}")" == "null" ]]; then
|
||||
continue
|
||||
fi
|
||||
metadata=$(cargo metadata --format-version=1 --no-deps --manifest-path "${manifest_path}")
|
||||
@@ -422,7 +423,7 @@ EOF
|
||||
error "you may want to mark .github/.cspell/rust-dependencies.txt linguist-generated"
|
||||
fi
|
||||
|
||||
echo "+ npx -y cspell --no-progress --no-summary \$(git ls-files)"
|
||||
info "running \`npx -y cspell --no-progress --no-summary \$(git ls-files)\`"
|
||||
if ! npx -y cspell --no-progress --no-summary $(git ls-files); then
|
||||
error "spellcheck failed: please fix uses of above words or add to ${project_dictionary} if correct"
|
||||
fi
|
||||
@@ -454,8 +455,6 @@ EOF
|
||||
echo -n "${unused}"
|
||||
echo "======================================="
|
||||
fi
|
||||
else
|
||||
error "'npm' is not installed; skipped spell check"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user