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.
Notice: This is an early release as the mechanics of the tool are fleshed out. Tests have yet to be completed, changes are expected.
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.
Run the following to install cargo-gha
, and ignore the cache directory in your project.
sh
cargo install cargo-gha
echo ".gha/" >> .gitignore
Or if using cargo-run-bin
, add it Cargo.toml.
toml
[package.metadata.bin]
cargo-gha = { version = "0.1.1" }
sh
cargo bin --sync-aliases
echo ".gha/" >> .gitignore
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.
toml
[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
.
```sh cargo gha --add protocolbuffers/protobuf
cargo gha --add https://github.com/protocolbuffers/protobuf ```
Installed! protoc
is now available through cargo-gha
. Try it!
sh
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 or build all binaries that have not been
cached which are configured in Cargo.toml
.
MIT.