cargo-gha

Crates.iocargo-gha
lib.rscargo-gha
version1.0.2
sourcesrc
created_at2023-08-22 22:02:40.392231
updated_at2024-01-02 20:02:52.80731
descriptionVersion lock, cache, and run binaries from any Github Release assets. Pull in external tools and keep the versions in sync across your team, and forget installing globally.
homepagehttps://github.com/dustinblackman/cargo-gha
repositoryhttps://github.com/dustinblackman/cargo-gha
max_upload_size
id951381
size171,093
Dustin Blackman (dustinblackman)

documentation

README

cargo-gha

cargo-gha

Version lock, cache, and run binaries from any Github Release assets. Pull in external tools and keep the versions in sync across your team, and forget installing globally.

Overview

A companion tool to cargo-run-bin, cargo-gha handles downloading and persisting tools from any Github Release assets, keeping versions available and in sync across your team.

asciicast

Install

Run the following to install cargo-gha, and ignore the cache directory in your project.

cargo install cargo-gha
echo ".gha/" >> .gitignore

Or if using cargo-run-bin, add it Cargo.toml.

[package.metadata.bin]
cargo-gha = { version = "1.0.0" }
cargo bin --sync-aliases
echo ".gha/" >> .gitignore

Usage

cargo-gha has an interactive experience to add assets to Cargo.toml. Before starting, you must specify the target architectures you and your team use.

[package.metadata.gha]
targets = ["x86_64-apple-darwin", "x86_64-unknown-linux-gnu"]

Once set, run the following to add an asset and follow the steps. As an example, let's add ProtocolBuffer's protoc.

cargo gha --add protocolbuffers/protobuf
# Or
cargo gha --add https://github.com/protocolbuffers/protobuf

Installed! protoc is now available through cargo-gha. Try it!

cargo gha protoc --help

cargo gha BINARY

Taking an example of protoc, running cargo gha protoc --help with install and cache the protoc binary with the specified version in Cargo.toml. All future executions will run instantly without an install step, and protoc can be used as you wish!

cargo gha --install

When pulling down a new repo, or adding a step to CI, cargo gha --install will install all assets that have not been cached which are configured in Cargo.toml.

License

MIT.

Commit count: 30

cargo fmt