11 unstable releases (3 breaking)
0.4.6 | Oct 6, 2023 |
---|---|
0.4.5 | Sep 22, 2023 |
0.3.0 | Sep 4, 2023 |
0.2.0 | Aug 27, 2023 |
0.1.2 | Aug 22, 2023 |
#362 in Cargo plugins
71 downloads per month
30KB
553 lines
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
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.
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 = "0.1.1" }
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.
Dependencies
~23–62MB
~1M SLoC