9.3 KiB
install-action
GitHub Action for installing development tools (mainly from GitHub Releases).
Usage
Inputs
| Name | Required | Description | Type | Default |
|---|---|---|---|---|
| tool | true | Tools to install (comma-separated list) | String |
Example workflow
- uses: taiki-e/install-action@v1
with:
tool: cargo-hack
You can use the shorthand (if you do not need to pin the versions of this action and the installed tool):
- uses: taiki-e/install-action@cargo-hack
To install a specific version, use @version syntax:
- uses: taiki-e/install-action@v1
with:
tool: cargo-hack@0.5.24
To install multiple tools:
- uses: taiki-e/install-action@v1
with:
tool: cargo-hack,cargo-minimal-versions
Or:
- uses: taiki-e/install-action@cargo-hack
- uses: taiki-e/install-action@cargo-minimal-versions
Supported tools
| Name | Where binaries will be installed | Where will it be installed from | Supported platform | License |
|---|---|---|---|---|
| cargo-binstall | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | GPL-3.0 |
| cargo-deny | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | Apache-2.0 OR MIT |
| cargo-hack | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | Apache-2.0 OR MIT |
| cargo-llvm-cov | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | Apache-2.0 OR MIT |
| cargo-minimal-versions | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | Apache-2.0 OR MIT |
| cargo-udeps | $CARGO_HOME/bin |
GitHub Release | Linux, macOS, Windows | Apache-2.0 OR MIT |
| cargo-valgrind | $CARGO_HOME/bin |
GitHub Release | Linux, macOS, Windows | MIT or Apache-2.0 |
| cross | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | Apache-2.0 OR MIT |
| mdbook-linkcheck | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | MIT |
| mdbook | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | MPL-2.0 |
nextest (alias: cargo-nextest) |
$CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | Apache-2.0 OR MIT |
| parse-changelog | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | Apache-2.0 OR MIT |
| protoc | $HOME/.install-action/bin |
GitHub Releases | Linux, macOS, Windows | BSD-3-Clause |
| shellcheck | /usr/local/bin |
GitHub Releases | Linux, macOS, Windows | GPL-3.0-or-later |
| shfmt | /usr/local/bin |
GitHub Releases | Linux, macOS, Windows | BSD-3-Clause |
| valgrind | /snap/bin |
snap | Linux | GPL-2.0-or-later |
| wasm-pack | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | Apache-2.0 OR MIT |
| wasmtime | $CARGO_HOME/bin |
GitHub Releases | Linux, macOS, Windows | Apache-2.0 WITH LLVM-exception |
If $CARGO_HOME/bin is not available, Rust-related binaries will be installed to $HOME/.cargo/bin.
If $HOME/.cargo/bin is not available, Rust-related binaries will be installed to /usr/local/bin.
If /usr/local/bin is not available, binaries will be installed to $HOME/.install-action/bin.
If a tool not included in the list above is specified, this action uses cargo-binstall as a fallback.
Security
When installing the tool from GitHub Releases, this action will download the tool or its installer from GitHub Releases using HTTPS with tlsv1.2+. This is basically considered to be the same level of security as the recommended installation of rustup.
If you want a higher level of security, consider working on #1.
Compatibility
This action has been tested for GitHub-hosted runners (Ubuntu, macOS, Windows) and containers (Ubuntu, Debian, Alpine, Fedora, CentOS, Rocky). To use this action in self-hosted runners or in containers, you will need to install at least the following:
- bash
- cargo (if you install cargo subcommands or use cargo-binstall fallback)
Related Projects
- create-gh-release-action: GitHub Action for creating GitHub Releases based on changelog.
- upload-rust-binary-action: GitHub Action for building and uploading Rust binary to GitHub Releases.
- setup-cross-toolchain-action: GitHub Action for setup toolchains for cross compilation and cross testing for Rust.
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Each of the tools installed by this action has a different license. See the Supported tools section for more information.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.