Rust #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Rust | |
on: [ push, workflow_dispatch ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build_and_test: | |
name: Build and Test Maelstrom | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get Repository from Git | |
uses: actions/checkout@v3 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- name: Set up Nix Cache | |
uses: DeterminateSystems/magic-nix-cache-action@main | |
- name: Check Nixpkgs Inputs | |
uses: DeterminateSystems/flake-checker-action@main | |
with: | |
fail-mode: true | |
- name: Set up Rust Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: maelstrom-${{ hashFiles('**/Cargo.lock') }} | |
- name: Check Rust Formatting | |
run: nix develop --command cargo fmt --check | |
- name: Test Rust Code | |
run: nix develop --command cargo test | |
- name: Build Rust Code | |
run: nix build |