Rust cargo Action
This GitHub Action runs specified cargo
command on a Rust language project.
Table of Contents
Example workflow
on: [push]
name: CI
jobs:
  build_and_test:
    name: Rust project
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/cargo@v1
        with:
          command: build
          args: --release --all-features
Inputs
| Name | Required | Description | Type | Default | 
|---|---|---|---|---|
| command | ✓ | Cargo command to run, ex. checkorbuild | string | |
| toolchain | Rust toolchain name to use | string | ||
| args | Arguments for the cargo command | string | ||
| use-cross | Use crossinstead ofcargo | bool | false | 
Toolchain
By default this Action will call whatever cargo binary is available
in the current virtual environment.
You can use actions-rs/toolchain
to install specific Rust toolchain with cargo included.
Cross-compilation
In order to make cross-compile an easy process,
this Action can install cross
tool on demand if use-cross input is enabled; cross executable will be invoked
then instead of cargo automatically.
All consequent calls of this Action in the same job
with use-cross: true input enabled will use the same cross installed.
on: [push]
name: ARMv7 build
jobs:
  linux_arm7:
    name: Linux ARMv7
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: armv7-unknown-linux-gnueabihf
          override: true
      - uses: actions-rs/cargo@v1
        with:
          use-cross: true
          command: build
          args: --target armv7-unknown-linux-gnueabihf
License
This Action is distributed under the terms of the MIT license, see LICENSE for details.
Contribute and support
Any contributions are welcomed!
If you want to report a bug or have a feature request, check the Contributing guide.
You can also support author by funding the ongoing project work, see Sponsoring.