cargo command
* fix: update to `rs-actions-core` 5.0.2, run `npm update`, get octokit fixes * chore: bump version to 3.0.3 |
||
|---|---|---|
| .github/workflows | ||
| .matchers | ||
| __tests__ | ||
| dist | ||
| rust_tests | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| .npmrc | ||
| .nvmrc | ||
| action.yml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CODEOWNERS | ||
| eslint.config.mjs | ||
| jest.config.json | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| renovate.json | ||
| tsconfig.eslint.json | ||
| tsconfig.json | ||
rs-cargo Action
This GitHub Action runs specified cargo command on a Rust language project.
This GitHub Action has been forked from actions-rs/cargo.
The original project published under the name rust-cargo.
See LICENSE for copyright attribution details.
Table of Contents
Example workflow
on: [push]
name: CI
jobs:
build_and_test:
name: Rust project
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: clechasseur/rs-cargo@v3
with:
command: build
args: --release --all-features
Use cases
Note that this Action is not usually required and you can just use a run step instead:
jobs:
build_and_test:
name: Rust project
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
- run: cargo build --release --all-features
Why would you want to use this Action instead?
- Transparent
crossorcargo-hackinstallation and execution withtoolinput - Warnings and errors issued by
cargowill be displayed in GitHub UI
Inputs
| Name | Required | Description | Type | Default |
|---|---|---|---|---|
command |
✓ | Cargo command to run, ex. check or build |
string | |
toolchain |
Rust toolchain name to use | string | ||
args |
Arguments for the cargo command | string | ||
working-directory |
Directory where to perform cargo command | string | ||
tool |
Tool to use instead of cargo (cross or cargo-hack) |
string | ||
cache-key |
Cache key when using a non-cargo tool |
string | rs-cargo |
Toolchain
By default this Action will call whatever cargo binary is available in the current virtual environment.
You can use actions-rust-lang/setup-rust-toolchain to install a specific Rust toolchain with cargo included.
Cross-compilation
In order to make cross-compilation an easy process, this action can install cross on demand by setting tool input to cross; the cross executable will be invoked then instead of cargo automatically.
All consequent calls of this action in the same job with tool: cross will use the same cross binary.
on: [push]
name: ARMv7 build
jobs:
linux_arm7:
name: Linux ARMv7
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
targets: armv7-unknown-linux-gnueabihf
- uses: clechasseur/rs-cargo@v3
with:
command: build
args: --target armv7-unknown-linux-gnueabihf
tool: cross