Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com

## [Unreleased]

- Support `runner-run`.

- Fix post-install binary validation on Windows bash when a system command shadows an installed binary.

## [2.81.9] - 2026-06-10

- Update `wasm-bindgen@latest` to 0.2.123.
Expand Down Expand Up @@ -6379,7 +6383,7 @@ Note: This release is considered a breaking change because installing on version

It is mainly intended to make the use of this action easy on containers or self-hosted runners, and currently supports Debian-based distributions (including Ubuntu) and Alpine.

The system's package manager is used for these installations. However, `bash`, which is an execution requirement of the action itself, and `cargo`, which is usually preferred for installation by rustup rather than the system's package manager, are *not* covered by these installations.
The system's package manager is used for these installations. However, `bash`, which is an execution requirement of the action itself, and `cargo`, which is usually preferred for installation by rustup rather than the system's package manager, are _not_ covered by these installations.

See also the [compatibility note in readme](https://github.com/taiki-e/install-action#compatibility).

Expand Down
3 changes: 2 additions & 1 deletion TOOLS.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ See the [Supported tools section in README.md](README.md#supported-tools) for ho
| [**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-xwin**](https://github.com/rust-cross/cargo-xwin) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rust-cross/cargo-xwin/releases) | Linux, macOS, Windows | [MIT](https://github.com/rust-cross/cargo-xwin/blob/main/LICENSE) | |
| [**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) | |
| [**convco**](https://github.com/convco/convco) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/convco/convco/releases) | Linux, macOS, Windows | [MIT](https://github.com/convco/convco/blob/main/LICENSE) | |
| [**convco**](https://github.com/convco/convco) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/convco/convco/releases) | Linux, macOS, Windows | [MIT](https://github.com/convco/convco/blob/main/LICENSE) | |
| [**coreutils**](https://github.com/uutils/coreutils) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/uutils/coreutils/releases) | Linux, macOS, Windows | [MIT](https://github.com/uutils/coreutils/blob/main/LICENSE) | |
| [**cosign**](https://github.com/sigstore/cosign) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/sigstore/cosign/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/sigstore/cosign/blob/main/LICENSE) | |
| [**covgate**](https://github.com/jesse-black/covgate) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/jesse-black/covgate/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/jesse-black/covgate/blob/main/LICENSE) | |
Expand Down Expand Up @@ -84,6 +84,7 @@ See the [Supported tools section in README.md](README.md#supported-tools) for ho
| [**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/main/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) | |
| [**release-plz**](https://release-plz.dev/) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/release-plz/release-plz/releases) | Linux, macOS, Windows | [MIT](https://github.com/release-plz/release-plz/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/release-plz/release-plz/blob/main/LICENSE-APACHE) | |
| [**runner-run**](https://runner.kjanat.dev) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/kjanat/runner/releases) | Linux, macOS, Windows | [MIT](https://github.com/kjanat/runner/blob/master/LICENSE) | |
| [**rust**](https://rust-lang.org) | `$CARGO_HOME/bin` | rustup | Linux, macOS, Windows | [Apache-2.0 OR MIT](https://github.com/rust-lang/rust/blob/main/COPYRIGHT) | |
| [**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) | `$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) | |
Expand Down
41 changes: 26 additions & 15 deletions main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -993,53 +993,64 @@ for tool in "${tools[@]}"; do
esac

tool_bin_stems=()
tool_bin_commands=()
for tool_bin in "${installed_bin[@]}"; do
tool_bin=$(basename -- "${tool_bin}")
tool_bin_stem="${tool_bin%.exe}"
installed_at=$(type -P "${tool_bin}" || true)
tool_bin_file=$(basename -- "${tool_bin}")
tool_bin_stem="${tool_bin_file%.exe}"
if [[ "${tool_bin}" == */* && -f "${tool_bin}" ]]; then
installed_at="${tool_bin}"
tool_bin_command="${tool_bin}"
else
installed_at=$(type -P "${tool_bin_file}" || true)
tool_bin_command="${tool_bin_file}"
fi
if [[ -z "${installed_at}" ]]; then
tool_bin="${tool_bin_stem}"
installed_at=$(type -P "${tool_bin}" || true)
tool_bin_file="${tool_bin_stem}"
installed_at=$(type -P "${tool_bin_file}" || true)
tool_bin_command="${tool_bin_file}"
fi
if [[ -n "${installed_at}" ]]; then
info "${tool_bin_stem} installed at ${installed_at}"
else
warn "${tool_bin_stem} should be installed at ${bin_dir:+"${bin_dir}/"}${tool_bin}${exe}; but ${tool_bin}${exe} not found in path"
warn "${tool_bin_stem} should be installed at ${bin_dir:+"${bin_dir}/"}${tool_bin_file}${exe}; but ${tool_bin_file}${exe} not found in path"
fi
tool_bin_stems+=("${tool_bin_stem}")
tool_bin_commands+=("${tool_bin_command}")
done
for tool_bin_stem in "${tool_bin_stems[@]}"; do
for i in "${!tool_bin_stems[@]}"; do
tool_bin_stem="${tool_bin_stems[${i}]}"
tool_bin_command="${tool_bin_commands[${i}]}"
# cargo-udeps 0.1.30 and wasm-pack 0.12.0 do not support --version flag.
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.
# wait-for-them up to 0.4.0 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_command}" --version || true ;;
# these packages support neither --version nor --help flag.
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) ;;
# iai-callgrind-runner --version works only with iai-callgrind in nearby Cargo.toml.
iai-callgrind-runner) ;;
# cargo-zigbuild/cargo-insta has no --version flag on `cargo $tool_bin_stem` subcommand.
cargo-zigbuild | cargo-insta) rx "${tool_bin_stem}" --version ;;
cargo-zigbuild | cargo-insta) rx "${tool_bin_command}" --version ;;
# these packages have version command instead of --version flag.
cosign | deepsource | vacuum) rx "${tool_bin_stem}" version ;;
cosign | deepsource | vacuum) rx "${tool_bin_command}" version ;;
cargo-*)
case "${tool_bin_stem}" in
# cargo-valgrind 2.1.0's --version flag just calls cargo's --version flag
cargo-valgrind) rx "${tool_bin_stem}" "${tool_bin_stem#cargo-}" --help ;;
cargo-valgrind) rx "${tool_bin_command}" "${tool_bin_stem#cargo-}" --help ;;
*)
if ! rx "${tool_bin_stem}" "${tool_bin_stem#cargo-}" --version; then
rx "${tool_bin_stem}" "${tool_bin_stem#cargo-}" --help
if ! rx "${tool_bin_command}" "${tool_bin_stem#cargo-}" --version; then
rx "${tool_bin_command}" "${tool_bin_stem#cargo-}" --help
fi
;;
esac
;;
*)
if ! rx "${tool_bin_stem}" --version; then
rx "${tool_bin_stem}" --help
if ! rx "${tool_bin_command}" --version; then
rx "${tool_bin_command}" --help
fi
;;
esac
Expand Down
Loading
Loading