2019-09-12 23:48:44 +03:00
|
|
|
# Rust `cargo` Action
|
|
|
|
|
2019-09-14 20:42:21 +03:00
|
|
|
[![Gitter](https://badges.gitter.im/actions-rs/community.svg)](https://gitter.im/actions-rs/community)
|
|
|
|
|
2019-09-12 23:48:44 +03:00
|
|
|
This GitHub Action runs specified [`cargo`](https://github.com/rust-lang/cargo)
|
|
|
|
command on a Rust language project.
|
|
|
|
|
|
|
|
## Example workflow
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
on: [push]
|
|
|
|
|
|
|
|
name: CI
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build_and_test:
|
|
|
|
name: Rust project
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@master
|
|
|
|
- uses: actions-rs/cargo@v1
|
|
|
|
with:
|
|
|
|
command: build
|
|
|
|
toolchain: nightly
|
|
|
|
arguments: --release --all-features
|
|
|
|
- uses: actions-rs/cargo@v1
|
|
|
|
with:
|
|
|
|
command: test
|
|
|
|
toolchain: nightly
|
|
|
|
arguments: --all-targets
|
|
|
|
```
|
|
|
|
|
|
|
|
## Inputs
|
|
|
|
|
|
|
|
* `command` (*required*) - Cargo command to run (ex. `check` or `build`)
|
|
|
|
* `toolchain` - Rust toolchain to use (without the `+` sign, ex. `nightly`)
|
|
|
|
* `args` - Arguments for the cargo command
|
2019-09-13 00:21:16 +03:00
|
|
|
* `use-cross` - Use [`cross`](https://github.com/rust-embedded/cross) instead of `cargo` (default: `false`)
|
|
|
|
|
|
|
|
## Why?
|
|
|
|
|
|
|
|
Why is it needed when you can just do the `-run: cargo build` step?
|
|
|
|
|
|
|
|
Because it can call [cross](https://github.com/rust-embedded/cross) instead of `cargo`
|
|
|
|
if needed. If `cross` is not installed, it will be installed automatically on a first call.
|
|
|
|
|
|
|
|
In a future this Action might be available to install other cargo subcommands on demand too.
|