setup-crate

April 5, 2026 ยท View on GitHub

Build Status

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:

    ArchNode PlatformTargets
    x64linuxx86_64-unknown-linux-musl or x86_64-unknown-linux-gnu
    x64darwinx86_64-apple-darwin
    x64win32x86_64-pc-windows-msvc
    arm64linuxaarch64-unknown-linux-musl or aarch64-unknown-linux-gnu
    arm64darwinaarch64-apple-darwin
    arm64win32aarch64-pc-windows-msvc
  • 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@v2
  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@v2
  with:
    repo: casey/just@0.10

Inputs

NameRequiredDescriptionTypeDefault
reponoThe GitHub repository name and valid NPM-style semver specificationstring
github-tokennoThe GitHub token for making API requestsstring${{ 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.

NameRequiredDescriptionTypeDefault
ownernoThe GitHub user or organization namestring
namenoThe GitHub repository namestring
versionnoA valid NPM-style semver specificationstring*

License

Licensed under either of

at your option.