Awesome
setup-crate
This GitHub Action will install a release of a Rust crate for you.
Introduction
This action will work for any project that satisfies the following conditions:
-
The project is a public GitHub project.
-
The project uses GitHub releases with semver tag names.
-
The project attaches assets to the GitHub release that contain a Rust target. The following targets are looked for:
Arch Node Platform Targets x64
linux
x86_64-unknown-linux-musl
orx86_64-unknown-linux-gnu
x64
darwin
x86_64-apple-darwin
x64
win32
x86_64-pc-windows-msvc
arm64
linux
aarch64-unknown-linux-musl
oraarch64-unknown-linux-gnu
arm64
darwin
aarch64-apple-darwin
-
The asset is a
.tar.gz
or.zip
archive that contains a binary with the project name.
Usage
Examples
In most cases all you will need is to specify repo
and the owner/name
of the
project in your workflow. For example the following installs the latest version
of mdBook.
- uses: extractions/setup-crate@v1
with:
repo: rust-lang/mdBook
If you want a specific version you can specify this by suffixing version to the
input. For example the following installs the latest 0.10.x
version of
just.
- uses: extractions/setup-crate@v1
with:
repo: casey/just@0.10
Inputs
Name | Required | Description | Type | Default |
---|---|---|---|---|
repo | no | The GitHub repository name and valid NPM-style semver specification | string | |
github-token | no | The GitHub token for making API requests | string | ${{ secrets.GITHUB_TOKEN }} |
The semver specification is passed directly to NPM's semver package. This GitHub Action will install the latest matching release. Examples include
version: '*'
latest version (default).version: '0.1'
equivalent to>=0.1.0 <0.2.0
.version: '0.1.x'
equivalent to>=0.1.0 <0.2.0
.version: '0.1.0'
equivalent to=0.1.0
.version: '^0.1.0'
equivalent to>=0.1.0 <0.2.0
.
Deprecated inputs
The following inputs are still supported for now but will be removed in a future release.
Name | Required | Description | Type | Default |
---|---|---|---|---|
owner | no | The GitHub user or organization name | string | |
name | no | The GitHub repository name | string | |
version | no | A valid NPM-style semver specification | string | * |
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.