• Stars
    star
    216
  • Rank 177,821 (Top 4 %)
  • Language
    Shell
  • License
    Apache License 2.0
  • Created over 2 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

GitHub Action for installing development tools (mainly from GitHub Releases).

install-action

release build status

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
checksum false Whether to enable checksums Boolean true

Example workflow

To install the latest version:

- uses: taiki-e/install-action@v2
  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@v2
  with:
    tool: [email protected]

You can also omit patch version. (You can also omit the minor version if the major version is 1 or greater.)

- uses: taiki-e/install-action@v2
  with:
    tool: [email protected]

To install multiple tools:

- uses: taiki-e/install-action@v2
  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-careful $CARGO_HOME/bin GitHub Releases Linux, macOS, Windows Apache-2.0 OR MIT
cargo-dinghy $CARGO_HOME/bin GitHub Releases Linux, macOS 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-make $CARGO_HOME/bin GitHub Releases Linux, macOS, Windows Apache-2.0
cargo-minimal-versions $CARGO_HOME/bin GitHub Releases Linux, macOS, Windows Apache-2.0 OR MIT
cargo-no-dev-deps $CARGO_HOME/bin GitHub Releases Linux, macOS, Windows Apache-2.0 OR MIT
cargo-tarpaulin $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
dprint $CARGO_HOME/bin GitHub Releases Linux, macOS, Windows MIT
grcov $CARGO_HOME/bin GitHub Releases Linux, macOS, Windows MPL-2.0
just $CARGO_HOME/bin GitHub Releases Linux, macOS, Windows CC0-1.0
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 cargo-binstall 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
syft /usr/local/bin Github Releases Linux, macOS, Windows Apache-2.0
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
zola $CARGO_HOME/bin GitHub Releases Linux, macOS, Windows MIT

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.

Add support for new tool

See the development guide for how to add support for new tool.

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.

Additionally, this action will also verify SHA256 checksums for downloaded files in all tools installed from GitHub Releases. This is enabled by default and can be disabled by setting the checksum input option to false.

See the linked documentation for information on security when installed using snap or cargo-binstall.

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, at least the following tools are required:

  • bash
  • cargo (if you use cargo-binstall fallback)

Related Projects

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.

More Repositories

1

cargo-llvm-cov

Cargo subcommand to easily use LLVM source-based code coverage (-C instrument-coverage).
Rust
741
star
2

pin-project

A crate for safe and ergonomic pin-projection.
Rust
447
star
3

cargo-hack

Cargo subcommand to provide various options useful for testing and continuous integration.
Rust
379
star
4

auto_enums

A library for to allow multiple return types by automatically generated enum.
Rust
303
star
5

futures-async-stream

Async stream for Rust and the futures crate.
Rust
167
star
6

upload-rust-binary-action

GitHub Action for building and uploading Rust binary to GitHub Releases.
Shell
163
star
7

pin-project-lite

A lightweight version of pin-project written with declarative macros.
Rust
135
star
8

portable-atomic

Portable atomic types including support for 128-bit atomics, atomic float, etc.
Rust
96
star
9

create-gh-release-action

GitHub Action for creating GitHub Releases based on changelog.
Shell
60
star
10

parse-changelog

Simple changelog parser, written in Rust.
Rust
46
star
11

replace-await

Migration tool for replacing await! macro with await syntax.
Rust
41
star
12

cargo-minimal-versions

Cargo subcommand for proper use of -Z minimal-versions and -Z direct-minimal-versions.
Rust
40
star
13

easy-ext

A lightweight attribute macro for easily writing extension trait pattern.
Rust
36
star
14

derive_utils

A procedural macro helper for easily writing custom derives for enums.
Rust
25
star
15

const_fn

A lightweight attribute for easy generation of const functions with conditional compilations.
Rust
23
star
16

setup-cross-toolchain-action

GitHub Action for setup toolchains for cross compilation and cross testing for Rust.
Shell
21
star
17

atomic-memcpy

Byte-wise atomic memcpy.
Rust
21
star
18

syn-serde

Library to serialize and deserialize Syn syntax trees.
Rust
15
star
19

futures-enum

#[derive(Future, Stream, Sink, AsyncRead, AsyncWrite, AsyncSeek, AsyncBufRead)] for enums.
Rust
13
star
20

atomic-maybe-uninit

Atomic operations on potentially uninitialized integers.
Rust
13
star
21

easytime

Providing wrapper types for safely performing panic-free checked arithmetic on instants and durations.
Rust
13
star
22

rust-cross-toolchain

Toolchains for cross compilation and cross testing for Rust.
Shell
12
star
23

cargo-no-dev-deps

Cargo subcommand for running cargo without dev-dependencies.
Rust
11
star
24

cargo-config2

Load and resolve Cargo configuration.
Rust
10
star
25

iter-enum

#[derive(Iterator, DoubleEndedIterator, ExactSizeIterator, FusedIterator, Extend)] for enums.
Rust
9
star
26

negative-impl

Negative trait implementations on stable Rust.
Shell
9
star
27

coverage-helper

Helper for https://github.com/taiki-e/cargo-llvm-cov/issues/123.
Shell
6
star
28

find-crate

Find the crate name from the current Cargo.toml.
Rust
5
star
29

syn-mid

Providing the features between "full" and "derive" of syn.
Rust
5
star
30

assert-unmoved

A type that asserts that the underlying type is not moved after being pinned and mutably accessed.
Rust
4
star
31

cache-cargo-install-action

GitHub Action for `cargo install` with cache.
Shell
4
star
32

io-enum

#[derive(Read, Write, Seek, BufRead)] for enums.
Shell
4
star
33

semihosting

Semihosting for AArch64, ARM, RISC-V, MIPS, and MIPS64
Rust
3
star
34

target-spec-json

Structured access to rustc --print target-spec-json and --print all-target-specs-json.
Rust
2
star
35

build-context

Make build environment/target information available as constants in normal libraries and binaries.
Shell
2
star
36

github-actions

Shell
2
star
37

iced_style_config

Create Iced style sheets from configuration files.
Rust
2
star
38

dependabot-config

Structured access to the Dependabot configuration file.
Rust
2
star
39

taiki-e

1
star
40

workflows

Shell
1
star
41

checkout-action

GitHub Action for checking out a repository. (Simplified actions/checkout alternative without depending on Node.js.)
Shell
1
star
42

test

Shell
1
star
43

dockerfiles

Shell
1
star