Compare commits

...

14 Commits

Author SHA1 Message Date
Taiki Endo
3b0ee87fa3 cargo-hack 2026-05-04 12:34:12 +00:00
Taiki Endo
711e1c3275 Release 2.76.0 2026-05-04 12:34:12 +00:00
Taiki Endo
6f6e822f33 Update changelog 2026-05-04 21:07:40 +09:00
Taiki Endo
a142873b76 ci,tools: Update config and script 2026-05-04 21:06:05 +09:00
Mads Marquart
ff1c16dbcb Support cargo-apple-runner (#1731) 2026-05-04 21:05:27 +09:00
Nicolas Huber
8966c78b02 Support mdbook-d2 (#1737) 2026-05-04 21:03:03 +09:00
Taiki Endo
c2126fb235 Support cargo-binstall on riscv64 Linux 2026-05-04 20:39:44 +09:00
Taiki Endo
57f2d4f754 codegen: Pin cargo-binstall version in base manifest 2026-05-04 20:36:22 +09:00
Taiki Endo
4702276cfb Revert "Update cargo-binstall@latest to 1.19.0"
This reverts commit 4976db3862.
2026-05-04 20:36:22 +09:00
Taiki Endo
9908d1d32f Remove sed usage in canonicalize_windows_path 2026-05-04 19:56:56 +09:00
Taiki Endo
4976db3862 Update cargo-binstall@latest to 1.19.0 2026-05-04 07:47:23 +00:00
Taiki Endo
027d3566fa Update mise manifest 2026-05-03 21:32:19 +00:00
Taiki Endo
7fe0d47d46 Update cargo-deb@latest to 3.7.0 2026-05-03 21:32:19 +00:00
Taiki Endo
72fab49619 Update tombi@latest to 0.10.2 2026-05-03 19:02:23 +00:00
19 changed files with 269 additions and 36 deletions

View File

@@ -32,20 +32,20 @@ concurrency:
jobs: jobs:
miri: miri:
uses: taiki-e/github-actions/.github/workflows/miri.yml@68753a4331ec78cb842512fd16ae32da0c066e31 # main uses: taiki-e/github-actions/.github/workflows/miri.yml@75415970465917c31d702710acd9c9248b9af314 # main
with: with:
# NB: sync with test job's --exclude option # NB: sync with test job's --exclude option
args: --exclude install-action-internal-codegen args: --exclude install-action-internal-codegen
msrv: msrv:
uses: taiki-e/github-actions/.github/workflows/msrv.yml@68753a4331ec78cb842512fd16ae32da0c066e31 # main uses: taiki-e/github-actions/.github/workflows/msrv.yml@75415970465917c31d702710acd9c9248b9af314 # main
test-manifest-schema: test-manifest-schema:
uses: taiki-e/github-actions/.github/workflows/test.yml@68753a4331ec78cb842512fd16ae32da0c066e31 # main uses: taiki-e/github-actions/.github/workflows/test.yml@75415970465917c31d702710acd9c9248b9af314 # main
with: with:
# NB: sync with miri job's --exclude option # NB: sync with miri job's --exclude option
test-args: --exclude install-action-internal-codegen test-args: --exclude install-action-internal-codegen
no-std: false no-std: false
tidy: tidy:
uses: taiki-e/github-actions/.github/workflows/tidy.yml@68753a4331ec78cb842512fd16ae32da0c066e31 # main uses: taiki-e/github-actions/.github/workflows/tidy.yml@75415970465917c31d702710acd9c9248b9af314 # main
permissions: permissions:
contents: write # for creating branch for pr contents: write # for creating branch for pr
pull-requests: write # unused (used in `codegen-automerge: true` case) pull-requests: write # unused (used in `codegen-automerge: true` case)

View File

@@ -32,7 +32,7 @@ concurrency:
jobs: jobs:
manifest: manifest:
uses: taiki-e/github-actions/.github/workflows/gen.yml@68753a4331ec78cb842512fd16ae32da0c066e31 # main uses: taiki-e/github-actions/.github/workflows/gen.yml@75415970465917c31d702710acd9c9248b9af314 # main
permissions: permissions:
contents: write # for creating branch for pr contents: write # for creating branch for pr
pull-requests: write # for gh pr review --approve pull-requests: write # for gh pr review --approve

View File

@@ -433,7 +433,7 @@ jobs:
release-manifest-schema: release-manifest-schema:
if: github.repository_owner == 'taiki-e' && inputs.target == 'install-action-manifest-schema' if: github.repository_owner == 'taiki-e' && inputs.target == 'install-action-manifest-schema'
uses: taiki-e/github-actions/.github/workflows/rust-release.yml@68753a4331ec78cb842512fd16ae32da0c066e31 # main uses: taiki-e/github-actions/.github/workflows/rust-release.yml@75415970465917c31d702710acd9c9248b9af314 # main
permissions: permissions:
contents: write # for taiki-e/create-gh-release-action contents: write # for taiki-e/create-gh-release-action
id-token: write # for rust-lang/crates-io-auth-action id-token: write # for rust-lang/crates-io-auth-action

View File

@@ -10,14 +10,26 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased] ## [Unreleased]
## [2.76.0] - 2026-05-04
- Support `mdbook-d2`. ([#1737](https://github.com/taiki-e/install-action/pull/1737), thanks @nhu)
- Support `cargo-apple-runner`. ([#1731](https://github.com/taiki-e/install-action/pull/1731), thanks @madsmtm)
- Support `cargo-binstall` on riscv64 Linux.
- Update `cargo-deb@latest` to 3.7.0.
- Update `tombi@latest` to 0.10.2.
## [2.75.30] - 2026-05-03 ## [2.75.30] - 2026-05-03
- Support `cargo-spellcheck` on AArch64 Linux/Windows.
- Update `cargo-spellcheck@latest` to 0.15.7. - Update `cargo-spellcheck@latest` to 0.15.7.
- Update `biome@latest` to 2.4.14. - Update `biome@latest` to 2.4.14.
- Support `cargo-spellcheck` on AArch64 Linux/Windows.
## [2.75.29] - 2026-05-02 ## [2.75.29] - 2026-05-02
- Update `syft@latest` to 1.44.0. - Update `syft@latest` to 1.44.0.
@@ -6423,7 +6435,8 @@ Note: This release is considered a breaking change because installing on version
Initial release Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.75.30...HEAD [Unreleased]: https://github.com/taiki-e/install-action/compare/v2.76.0...HEAD
[2.76.0]: https://github.com/taiki-e/install-action/compare/v2.75.30...v2.76.0
[2.75.30]: https://github.com/taiki-e/install-action/compare/v2.75.29...v2.75.30 [2.75.30]: https://github.com/taiki-e/install-action/compare/v2.75.29...v2.75.30
[2.75.29]: https://github.com/taiki-e/install-action/compare/v2.75.28...v2.75.29 [2.75.29]: https://github.com/taiki-e/install-action/compare/v2.75.28...v2.75.29
[2.75.28]: https://github.com/taiki-e/install-action/compare/v2.75.27...v2.75.28 [2.75.28]: https://github.com/taiki-e/install-action/compare/v2.75.27...v2.75.28

View File

@@ -16,9 +16,10 @@ See the [Supported tools section in README.md](README.md#supported-tools) for ho
| ---- | -------------------------------- | ------------------------------- | ------------------ | ------- | | ---- | -------------------------------- | ------------------------------- | ------------------ | ------- |
| [**auto-doc**](https://github.com/tj-actions/auto-doc) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/tj-actions/auto-doc/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/tj-actions/auto-doc/blob/main/LICENSE) | | [**auto-doc**](https://github.com/tj-actions/auto-doc) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/tj-actions/auto-doc/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/tj-actions/auto-doc/blob/main/LICENSE) |
| [**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) | | [**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/main/cargo-audit/LICENSE-APACHE) OR [MIT](https://github.com/rustsec/rustsec/blob/main/cargo-audit/LICENSE-MIT) | | [**cargo-apple-runner**](https://github.com/madsmtm/cargo-apple-runner) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/madsmtm/cargo-apple-runner/releases) | macOS | [Zlib](https://github.com/madsmtm/cargo-apple-runner/blob/main/LICENSE-ZLIB.txt) OR [Apache-2.0](https://github.com/madsmtm/cargo-apple-runner/blob/main/LICENSE-APACHE.txt) OR [MIT](https://github.com/madsmtm/cargo-apple-runner/blob/main/LICENSE-MIT.txt) |
| [**cargo-auditable**](https://github.com/rust-secure-code/cargo-auditable) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rust-secure-code/cargo-auditable/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/rust-secure-code/cargo-auditable/blob/master/LICENSE-APACHE) OR [MIT](https://github.com/rust-secure-code/cargo-auditable/blob/master/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/main/crates/bin/LICENSE) | | [**cargo-auditable**](https://github.com/rust-secure-code/cargo-auditable) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rust-secure-code/cargo-auditable/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/rust-secure-code/cargo-auditable/blob/HEAD/LICENSE-APACHE) OR [MIT](https://github.com/rust-secure-code/cargo-auditable/blob/HEAD/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) | | [**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) |
| [**cargo-cyclonedx**](https://github.com/CycloneDX/cyclonedx-rust-cargo) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/CycloneDX/cyclonedx-rust-cargo/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/CycloneDX/cyclonedx-rust-cargo/blob/main/LICENSE) | | [**cargo-cyclonedx**](https://github.com/CycloneDX/cyclonedx-rust-cargo) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/CycloneDX/cyclonedx-rust-cargo/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/CycloneDX/cyclonedx-rust-cargo/blob/main/LICENSE) |
| [**cargo-deadlinks**](https://github.com/deadlinks/cargo-deadlinks) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/deadlinks/cargo-deadlinks/releases) | Linux, macOS, Windows | [MIT](https://github.com/deadlinks/cargo-deadlinks/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/deadlinks/cargo-deadlinks/blob/master/LICENSE-APACHE) | | [**cargo-deadlinks**](https://github.com/deadlinks/cargo-deadlinks) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/deadlinks/cargo-deadlinks/releases) | Linux, macOS, Windows | [MIT](https://github.com/deadlinks/cargo-deadlinks/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/deadlinks/cargo-deadlinks/blob/master/LICENSE-APACHE) |
@@ -67,6 +68,7 @@ See the [Supported tools section in README.md](README.md#supported-tools) for ho
| [**martin**](https://maplibre.org/martin/) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/maplibre/martin/releases) | Linux, macOS | [MIT](https://github.com/maplibre/martin/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/maplibre/martin/blob/main/LICENSE-APACHE) | | [**martin**](https://maplibre.org/martin/) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/maplibre/martin/releases) | Linux, macOS | [MIT](https://github.com/maplibre/martin/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/maplibre/martin/blob/main/LICENSE-APACHE) |
| [**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**](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-alerts**](https://github.com/lambdalisue/rs-mdbook-alerts) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/lambdalisue/rs-mdbook-alerts/releases) | Linux, macOS, Windows | [MIT](https://github.com/lambdalisue/rs-mdbook-alerts/blob/main/LICENSE) | | [**mdbook-alerts**](https://github.com/lambdalisue/rs-mdbook-alerts) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/lambdalisue/rs-mdbook-alerts/releases) | Linux, macOS, Windows | [MIT](https://github.com/lambdalisue/rs-mdbook-alerts/blob/main/LICENSE) |
| [**mdbook-d2**](https://github.com/danieleades/mdbook-d2) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/danieleades/mdbook-d2/releases) | Linux, macOS, Windows | [MIT](https://github.com/danieleades/mdbook-d2/blob/main/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) | | [**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) |
| [**mdbook-mermaid**](https://github.com/badboy/mdbook-mermaid) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/badboy/mdbook-mermaid/releases) | Linux, macOS, Windows | [MPL-2.0](https://github.com/badboy/mdbook-mermaid/blob/main/LICENSE) | | [**mdbook-mermaid**](https://github.com/badboy/mdbook-mermaid) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/badboy/mdbook-mermaid/releases) | Linux, macOS, Windows | [MPL-2.0](https://github.com/badboy/mdbook-mermaid/blob/main/LICENSE) |
| [**mdbook-mermaid-ssr**](https://github.com/CommanderStorm/mdbook-mermaid-ssr) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/CommanderStorm/mdbook-mermaid-ssr/releases) | Linux, macOS, Windows | [MPL-2.0](https://github.com/CommanderStorm/mdbook-mermaid-ssr/blob/main/LICENSE) | | [**mdbook-mermaid-ssr**](https://github.com/CommanderStorm/mdbook-mermaid-ssr) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/CommanderStorm/mdbook-mermaid-ssr/releases) | Linux, macOS, Windows | [MPL-2.0](https://github.com/CommanderStorm/mdbook-mermaid-ssr/blob/main/LICENSE) |

View File

@@ -4,8 +4,8 @@ description: GitHub Action for installing development tools
inputs: inputs:
tool: tool:
description: Tools to install (whitespace or comma separated list) description: Tools to install (whitespace or comma separated list)
required: true required: false
# default: #publish:tool default: cargo-hack
checksum: checksum:
description: Whether to enable checksums (strongly discouraged to disable) description: Whether to enable checksums (strongly discouraged to disable)
required: false required: false

15
main.sh
View File

@@ -448,7 +448,16 @@ init_install_action_bin_dir() {
} }
canonicalize_windows_path() { canonicalize_windows_path() {
case "${host_os}" in case "${host_os}" in
windows) sed -E 's/^\/cygdrive\//\//; s/^\/c\//C:\\/; s/\//\\/g' <<<"$1" ;; windows)
local t="$1"
if [[ "${t}" == '/cygdrive/'* ]]; then
t="${t#/cygdrive}"
fi
if [[ "${t}" == '/c/'* ]]; then
t="${t/\/c\//C:\\}"
fi
printf '%s\n' "${t//\//\\}"
;;
*) printf '%s\n' "$1" ;; *) printf '%s\n' "$1" ;;
esac esac
} }
@@ -880,7 +889,7 @@ for tool in "${tools[@]}"; do
# gungraun-runner up to 0.17.1 (exclusive) does not support --version flag. # gungraun-runner up to 0.17.1 (exclusive) does not support --version flag.
biome | cargo-machete | wait-for-them | gungraun-runner) rx "${tool_bin_stem}" --version || true ;; biome | cargo-machete | wait-for-them | gungraun-runner) rx "${tool_bin_stem}" --version || true ;;
# these packages support neither --version nor --help flag. # these packages support neither --version nor --help flag.
cargo-auditable | cargo-careful | wasm-bindgen-test-runner) ;; cargo-auditable | cargo-careful | wasm-bindgen-test-runner | cargo-apple-runner) ;;
# wasm2es6js does not support --version flag and --help flag doesn't contains version info. # wasm2es6js does not support --version flag and --help flag doesn't contains version info.
wasm2es6js) ;; wasm2es6js) ;;
# iai-callgrind-runner --version works only with iai-callgrind in nearby Cargo.toml. # iai-callgrind-runner --version works only with iai-callgrind in nearby Cargo.toml.
@@ -916,7 +925,7 @@ if [[ ${#unsupported_tools[@]} -gt 0 ]]; then
none) bail "install-action does not support ${unsupported_tools[*]} (fallback is disabled by 'fallback: none' input option)" ;; none) bail "install-action does not support ${unsupported_tools[*]} (fallback is disabled by 'fallback: none' input option)" ;;
cargo-binstall) cargo-binstall)
case "${host_arch}" in case "${host_arch}" in
x86_64 | aarch64) ;; x86_64 | aarch64 | riscv64) ;;
*) *)
info "cargo-binstall does not provide prebuilt binaries for this platform (${host_arch}); use 'cargo-install' fallback instead" info "cargo-binstall does not provide prebuilt binaries for this platform (${host_arch}); use 'cargo-install' fallback instead"
fallback=cargo-install fallback=cargo-install

26
manifests/cargo-apple-runner.json generated Normal file
View File

@@ -0,0 +1,26 @@
{
"rust_crate": "cargo-apple-runner",
"template": {
"x86_64_macos": {
"url": "https://github.com/madsmtm/cargo-apple-runner/releases/download/v${version}/cargo-apple-runner-x86_64-apple-darwin.tar.gz",
"bin": "cargo-apple-runner"
},
"aarch64_macos": {
"url": "https://github.com/madsmtm/cargo-apple-runner/releases/download/v${version}/cargo-apple-runner-aarch64-apple-darwin.tar.gz",
"bin": "cargo-apple-runner"
}
},
"latest": {
"version": "0.0.1"
},
"0.0.1": {
"x86_64_macos": {
"etag": "0x8DE9E56906B2739",
"hash": "66e53e60e1502d6c6e57aed9c423ecbe9f155fbcee56824a20eb72c49136a554"
},
"aarch64_macos": {
"etag": "0x8DE9E56816E1F2D",
"hash": "58b94a77328568eff1c8d1216f51933c0753d20365b2284cf3a1dca843a6d0c1"
}
}
}

View File

@@ -18,6 +18,9 @@
}, },
"aarch64_windows": { "aarch64_windows": {
"url": "https://github.com/cargo-bins/cargo-binstall/releases/download/v${version}/cargo-binstall-aarch64-pc-windows-msvc.zip" "url": "https://github.com/cargo-bins/cargo-binstall/releases/download/v${version}/cargo-binstall-aarch64-pc-windows-msvc.zip"
},
"riscv64_linux_musl": {
"url": "https://github.com/cargo-bins/cargo-binstall/releases/download/v${version}/cargo-binstall-riscv64gc-unknown-linux-musl.tgz"
} }
}, },
"latest": { "latest": {
@@ -47,6 +50,10 @@
"aarch64_windows": { "aarch64_windows": {
"etag": "0x8DE9959EAAC5732", "etag": "0x8DE9959EAAC5732",
"hash": "c6873e81457d9e44973a8e9a849795f2c83765fce0af8ad68b597b5b40dec418" "hash": "c6873e81457d9e44973a8e9a849795f2c83765fce0af8ad68b597b5b40dec418"
},
"riscv64_linux_musl": {
"etag": "0x8DE9959DFE57CE6",
"hash": "3eb039f14fa71dd27b614bf692f0bffd4ba087204829805d54b014646aed7c14"
} }
} }
} }

View File

@@ -7,10 +7,13 @@
} }
}, },
"latest": { "latest": {
"version": "3.6.4" "version": "3.7.0"
}, },
"3": { "3": {
"version": "3.6.4" "version": "3.7.0"
},
"3.7": {
"version": "3.7.0"
}, },
"3.7.0": { "3.7.0": {
"x86_64_linux_gnu": { "x86_64_linux_gnu": {

61
manifests/mdbook-d2.json generated Normal file
View File

@@ -0,0 +1,61 @@
{
"rust_crate": "mdbook-d2",
"template": {
"x86_64_linux_musl": {
"url": "https://github.com/danieleades/mdbook-d2/releases/download/v${version}/mdbook-d2-x86_64-unknown-linux-musl.tar.gz",
"bin": "mdbook-d2"
},
"x86_64_macos": {
"url": "https://github.com/danieleades/mdbook-d2/releases/download/v${version}/mdbook-d2-x86_64-apple-darwin.tar.gz",
"bin": "mdbook-d2"
},
"x86_64_windows": {
"url": "https://github.com/danieleades/mdbook-d2/releases/download/v${version}/mdbook-d2-x86_64-pc-windows-msvc.tar.gz",
"bin": "mdbook-d2.exe"
},
"aarch64_linux_musl": {
"url": "https://github.com/danieleades/mdbook-d2/releases/download/v${version}/mdbook-d2-aarch64-unknown-linux-musl.tar.gz",
"bin": "mdbook-d2"
},
"aarch64_macos": {
"url": "https://github.com/danieleades/mdbook-d2/releases/download/v${version}/mdbook-d2-aarch64-apple-darwin.tar.gz",
"bin": "mdbook-d2"
},
"aarch64_windows": {
"url": "https://github.com/danieleades/mdbook-d2/releases/download/v${version}/mdbook-d2-aarch64-pc-windows-msvc.tar.gz",
"bin": "mdbook-d2.exe"
}
},
"latest": {
"version": "0.3.8"
},
"0.3": {
"version": "0.3.8"
},
"0.3.8": {
"x86_64_linux_musl": {
"etag": "0x8DE4D1050CFDFE1",
"hash": "6601ff37d3f220db0c9617b85c7e80f985a13ea75e2b6bb88b5158ea429455b6"
},
"x86_64_macos": {
"etag": "0x8DE4D104B08EF36",
"hash": "0ce3bf83daa8f4d458d9acf3cc5e9af1fc85d864854439a8a7d45a9a48166eaf"
},
"x86_64_windows": {
"etag": "0x8DE4D106181D5F5",
"hash": "89ba967c1f95b32d05612183b9752aeccafa749d5dce0680fb9dcbfda24285fd"
},
"aarch64_linux_musl": {
"etag": "0x8DE4D104E5464C8",
"hash": "84f37cb1d89f6fabbefb5581205f93035fe5d9f2ace32f01cb76622cb563a9c1"
},
"aarch64_macos": {
"etag": "0x8DE4D104A941BA3",
"hash": "dcd49feace49c4adce583cfab121885cd84b746fdad6ebc99ca36eb52272f849"
},
"aarch64_windows": {
"etag": "0x8DE4D1061C79129",
"hash": "6cc7507acae02d73719b260dffd33c3b1d74029cfa97cc7edfe220f8489aef02"
}
}
}

26
manifests/mise.json generated
View File

@@ -32,6 +32,32 @@
"2026": { "2026": {
"version": "2026.4.28" "version": "2026.4.28"
}, },
"2026.5.0": {
"x86_64_linux_musl": {
"etag": "0x8DEA9471A2EEE95",
"hash": "f47a11b64b32f94db74b6792601bd9b0440bf4fe4d1e54056738b3e1eeff13db"
},
"x86_64_macos": {
"etag": "0x8DEA9471C55F180",
"hash": "8335873c9280e2dca0b1ceeb0298f2905188732fe128e0f97672f7796bdecbd7"
},
"x86_64_windows": {
"etag": "0x8DEA9471D67181D",
"hash": "053de50b0ee574a40ebcca667c17e27b06423bfed3779c623970e0e36e1d6405"
},
"aarch64_linux_musl": {
"etag": "0x8DEA94716D421D2",
"hash": "9ff141301ad0eb05ed98c45195de6af9f4f6a2b7ec8ae1acab845e65e4aa1c43"
},
"aarch64_macos": {
"etag": "0x8DEA9471BAE1289",
"hash": "c4b34f7d4831f7d296bbd3b1ae50ecca5cbe404650575472c0db6bcaad8bb4e5"
},
"aarch64_windows": {
"etag": "0x8DEA9471D4C0D77",
"hash": "43bfe834b2c420b467114cea698f08b8aee26b6be748ec046e8a06915d5003ac"
}
},
"2026.4": { "2026.4": {
"version": "2026.4.28" "version": "2026.4.28"
}, },

4
manifests/tombi.json generated
View File

@@ -2,10 +2,10 @@
"rust_crate": null, "rust_crate": null,
"template": null, "template": null,
"latest": { "latest": {
"version": "0.10.1" "version": "0.10.2"
}, },
"0.10": { "0.10": {
"version": "0.10.1" "version": "0.10.2"
}, },
"0.10.2": { "0.10.2": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -150,6 +150,10 @@ for manifest in tools/codegen/base/*.json; do
fi fi
case "${host_os}" in case "${host_os}" in
linux*) linux*)
# cargo-apple-runner is not supported on Linux
if [[ "${tool_name}" == "cargo-apple-runner" ]]; then
continue
fi
if [[ "${host_arch}" != "x86_64" ]] && [[ "$(jq -r --arg p "${host_arch}_${host_os}_gnu" '.platform[$p]' "${manifest}")" == "null" ]] && [[ "$(jq -r --arg p "${host_arch}_${host_os}_musl" '.platform[$p]' "${manifest}")" == "null" ]]; then if [[ "${host_arch}" != "x86_64" ]] && [[ "$(jq -r --arg p "${host_arch}_${host_os}_gnu" '.platform[$p]' "${manifest}")" == "null" ]] && [[ "$(jq -r --arg p "${host_arch}_${host_os}_musl" '.platform[$p]' "${manifest}")" == "null" ]]; then
continue continue
fi fi

View File

@@ -0,0 +1,11 @@
{
"repository": "https://github.com/madsmtm/cargo-apple-runner",
"license_markdown": "[Zlib](https://github.com/madsmtm/cargo-apple-runner/blob/main/LICENSE-ZLIB.txt) OR [Apache-2.0](https://github.com/madsmtm/cargo-apple-runner/blob/main/LICENSE-APACHE.txt) OR [MIT](https://github.com/madsmtm/cargo-apple-runner/blob/main/LICENSE-MIT.txt)",
"tag_prefix": "v",
"rust_crate": "${package}",
"asset_name": "${package}-${rust_target}.tar.gz",
"platform": {
"x86_64_macos": {},
"aarch64_macos": {}
}
}

View File

@@ -4,7 +4,7 @@
"tag_prefix": "v", "tag_prefix": "v",
"rust_crate": "${package}", "rust_crate": "${package}",
"asset_name": "${package}-${rust_target}.zip", "asset_name": "${package}-${rust_target}.zip",
"version_range": "latest", "version_range": "=1.18.1",
"signing": { "signing": {
"kind": "minisign-binstall" "kind": "minisign-binstall"
}, },
@@ -18,6 +18,9 @@
"asset_name": "${package}-${rust_target}.tgz" "asset_name": "${package}-${rust_target}.tgz"
}, },
"aarch64_macos": {}, "aarch64_macos": {},
"aarch64_windows": {} "aarch64_windows": {},
"riscv64_linux_musl": {
"asset_name": "${package}-${rust_target}.tgz"
}
} }
} }

View File

@@ -0,0 +1,20 @@
{
"repository": "https://github.com/danieleades/mdbook-d2",
"license_markdown": "[MIT](https://github.com/danieleades/mdbook-d2/blob/main/LICENSE)",
"tag_prefix": "v",
"rust_crate": "${package}",
"asset_name": [
"${package}-${rust_target}.tar.gz",
"${package}-${rust_target}.zip"
],
"bin": "${package}${exe}",
"version_range": ">= 0.3.8",
"platform": {
"x86_64_linux_musl": {},
"x86_64_macos": {},
"x86_64_windows": {},
"aarch64_linux_musl": {},
"aarch64_macos": {},
"aarch64_windows": {}
}
}

View File

@@ -129,7 +129,9 @@ fn main() {
let mut latest_only = false; let mut latest_only = false;
if let Some(version_range) = &base_info.version_range { if let Some(version_range) = &base_info.version_range {
if version_range == "latest" { if version_range == "latest"
|| version_range.starts_with('=') && !version_range.contains(',')
{
latest_only = true; latest_only = true;
} }
} }
@@ -171,13 +173,20 @@ fn main() {
let version_req: semver::VersionReq = match version_req { let version_req: semver::VersionReq = match version_req {
_ if latest_only => { _ if latest_only => {
// Exclude very recently released version from candidate for latest version. let version_range = base_info.version_range.as_ref().unwrap();
let req = if version_range == "latest" {
format!("={}", releases.iter().find(|r| r.1.1.published_at <= before).unwrap().0.0) // Exclude very recently released version from candidate for latest version.
.parse() let req = format!(
.unwrap(); "={}",
eprintln!("update manifest for versions '{req}'"); releases.iter().find(|r| r.1.1.published_at <= before).unwrap().0.0
req )
.parse()
.unwrap();
eprintln!("update manifest for versions '{req}'");
req
} else {
version_range.parse().unwrap()
}
} }
None => match base_info.version_range { None => match base_info.version_range {
Some(version_range) => version_range.parse().unwrap(), Some(version_range) => version_range.parse().unwrap(),

View File

@@ -9,13 +9,22 @@ cd -- "$(dirname -- "$0")"/..
# GITHUB_TOKEN=$(gh auth token) ./tools/tidy.sh # GITHUB_TOKEN=$(gh auth token) ./tools/tidy.sh
# #
# Note: This script requires the following tools: # Note: This script requires the following tools:
# - docker # - docker or podman (or compatible CLI specified by TIDY_DOCKER_PATH. when both available and TIDY_DOCKER_PATH is not set, docker is preferred)
# #
# This script is shared by projects under github.com/taiki-e, so there may also # This script is shared by projects under github.com/taiki-e, so there may also
# be checks for files not included in this repository, but they will be skipped # be checks for files not included in this repository, but they will be skipped
# if the corresponding files do not exist. # if the corresponding files do not exist.
# It is not intended for manual editing. # It is not intended for manual editing.
bail() {
if [[ -n "${GITHUB_ACTIONS:-}" ]]; then
printf '::error::%s\n' "$*"
else
printf >&2 'error: %s\n' "$*"
fi
exit 1
}
if [[ $# -gt 0 ]]; then if [[ $# -gt 0 ]]; then
cat <<EOF cat <<EOF
USAGE: USAGE:
@@ -24,10 +33,11 @@ EOF
exit 1 exit 1
fi fi
image='ghcr.io/taiki-e/tidy'
if [[ -n "${TIDY_DEV:-}" ]]; then if [[ -n "${TIDY_DEV:-}" ]]; then
image="ghcr.io/taiki-e/tidy:latest" image+=':latest'
else else
image="ghcr.io/taiki-e/tidy@sha256:c78ba09aa420feddc57ca76fca38b1d4c998a0ede37f76378f12df15a826cf59" image+='@sha256:4d7ec52a86bd3c0a2d96627b0ec3aa534afc02c2d56fc9a898df64e29aa03312'
fi fi
user="$(id -u):$(id -g)" user="$(id -u):$(id -g)"
workdir=$(pwd) workdir=$(pwd)
@@ -40,8 +50,12 @@ color=''
if [[ -t 1 ]] || [[ -n "${GITHUB_ACTIONS:-}" ]]; then if [[ -t 1 ]] || [[ -n "${GITHUB_ACTIONS:-}" ]]; then
color=1 color=1
fi fi
# Refs:
# - https://docs.docker.com/reference/cli/docker/container/run/
# - https://docs.podman.io/en/latest/markdown/podman-run.1.html
# - https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html
common_args=( common_args=(
run --rm --init -i --user "${user}" run --rm --init
--cap-drop=all --cap-drop=all
--security-opt=no-new-privileges --security-opt=no-new-privileges
--read-only --read-only
@@ -59,6 +73,30 @@ common_args=(
--env TIDY_EXPECTED_SHELL_FILE_COUNT --env TIDY_EXPECTED_SHELL_FILE_COUNT
--env TIDY_EXPECTED_DOCKER_FILE_COUNT --env TIDY_EXPECTED_DOCKER_FILE_COUNT
) )
if [[ -n "${TIDY_DOCKER_PATH:-}" ]]; then
docker="${TIDY_DOCKER_PATH}"
elif type -P docker >/dev/null; then
docker='docker'
elif type -P podman >/dev/null; then
docker='podman'
else
bail 'this script requires docker or podman'
fi
rootless=''
if [[ "$("${docker}" --version)" == *'podman'* ]]; then
if [[ "$("${docker}" info)" == *'rootless: true'* ]]; then
rootless=1
fi
elif [[ "$("${docker}" info -f '{{println .SecurityOptions}}')" == *'rootless'* ]]; then
rootless=1
fi
if [[ -n "${rootless}" ]]; then
printf 'docker path: %s\n' "${docker} (rootless)"
else
printf 'docker path: %s\n' "${docker}"
common_args+=(--user "${user}")
fi
# Map ignored files (e.g., .env) to dummy files. # Map ignored files (e.g., .env) to dummy files.
while IFS= read -r path; do while IFS= read -r path; do
if [[ -d "${path}" ]]; then if [[ -d "${path}" ]]; then
@@ -73,7 +111,7 @@ while IFS= read -r path; do
done < <(git status --porcelain --ignored | grep -E '^!!' | cut -d' ' -f2) done < <(git status --porcelain --ignored | grep -E '^!!' | cut -d' ' -f2)
docker_run() { docker_run() {
docker "${common_args[@]}" "$@" "${docker}" "${common_args[@]}" "$@"
code2="$?" code2="$?"
if [[ ${code} -eq 0 ]] && [[ ${code2} -ne 0 ]]; then if [[ ${code} -eq 0 ]] && [[ ${code2} -ne 0 ]]; then
code="${code2}" code="${code2}"
@@ -83,6 +121,7 @@ docker_run() {
set +e set +e
docker_run \ docker_run \
--mount "type=bind,source=${workdir},target=${workdir}" --workdir "${workdir}" \ --mount "type=bind,source=${workdir},target=${workdir}" --workdir "${workdir}" \
--mount "type=bind,source=${workdir}/.git,target=${workdir}/.git,readonly" \
--mount "type=bind,source=${tmp}/tmp,target=/tmp/tidy" \ --mount "type=bind,source=${tmp}/tmp,target=/tmp/tidy" \
--mount "type=bind,source=${tmp}/pwsh-cache,target=/.cache/powershell" \ --mount "type=bind,source=${tmp}/pwsh-cache,target=/.cache/powershell" \
--mount "type=bind,source=${tmp}/pwsh-local,target=/.local/share/powershell" \ --mount "type=bind,source=${tmp}/pwsh-local,target=/.local/share/powershell" \