Github Pipeline for Rust
Github actions are a great way to automate your development workflow. In this post, we will explore how to set up a simple Github action for a Rust project.
Useful Github actions
Check code formatting
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Check format
run: cargo fmt --check
Check for unused dependencies
unused-dependencies:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install cargo-machete
uses: taiki-e/install-action@v2
with:
tool: cargo-machete
- name: Check for unused dependencies
run: cargo machete
Static code analysis
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Check for clippy warnings
run: cargo clippy --all-targets --all-features --color always -- -D warnings
Run the Unit tests
unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Run unit tests
run: cargo test --lib
Run the Integration tests
integration-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Run integration tests
run: cargo test --test integration_test
Release Build
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Release build
run: cargo build --release --verbose
Checkout the full example code on github.