2023-03-04 11:23:40 +03:00
|
|
|
on:
|
|
|
|
workflow_call:
|
|
|
|
|
|
|
|
env:
|
|
|
|
CARGO_TERM_COLOR: always
|
2023-11-21 22:27:25 +03:00
|
|
|
ACTIONS_ALLOW_UNSECURE_COMMANDS: "true"
|
2023-03-04 11:23:40 +03:00
|
|
|
|
|
|
|
defaults:
|
|
|
|
run:
|
2023-11-22 20:05:35 +03:00
|
|
|
working-directory: rust/ares
|
2023-03-04 11:23:40 +03:00
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
2023-05-20 17:22:21 +03:00
|
|
|
runs-on: 'ubuntu-latest'
|
2023-03-04 11:23:40 +03:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
|
2023-11-21 22:27:25 +03:00
|
|
|
# Install nix, required by nix-shell-action
|
|
|
|
- uses: cachix/install-nix-action@v23
|
|
|
|
name: Install Nix
|
|
|
|
with:
|
|
|
|
extra_nix_config: "extra-experimental-features = nix-command flakes"
|
2023-05-20 21:50:25 +03:00
|
|
|
|
2023-12-09 01:09:54 +03:00
|
|
|
- name: Set cache key for dev env
|
|
|
|
run: export ARES_NIX_DEVSHELL_PATH=$(nix eval --raw ".#devShells.x86_64-linux.default.outPath")
|
|
|
|
|
|
|
|
- name: Cache rust build artifacts
|
|
|
|
id: cache_rust
|
|
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
with:
|
|
|
|
env-vars: "CARGO CC CFLAGX CXX CMAKE RUST ARES"
|
|
|
|
workspaces: "rust/ares -> target"
|
|
|
|
|
2023-11-21 22:27:25 +03:00
|
|
|
# Check formatting
|
2023-03-04 11:23:40 +03:00
|
|
|
- name: Format
|
2023-11-21 22:27:25 +03:00
|
|
|
run: |
|
|
|
|
nix develop --command bash -c "cargo fmt --check"
|
2023-03-04 11:23:40 +03:00
|
|
|
|
2023-05-20 21:47:04 +03:00
|
|
|
# See clippy linter docs: https://github.com/rust-lang/rust-clippy
|
|
|
|
#
|
2023-05-20 21:50:25 +03:00
|
|
|
# First linter is set to fail for all warnings, then ignored warnings are
|
|
|
|
# explicitly listed
|
2023-05-20 21:47:04 +03:00
|
|
|
#
|
2023-11-21 22:27:25 +03:00
|
|
|
# XX TODO make a script with all the flags for the linter
|
2023-03-14 18:37:12 +03:00
|
|
|
- name: Lint
|
2023-05-20 21:47:04 +03:00
|
|
|
run: |
|
2023-11-21 22:27:25 +03:00
|
|
|
nix develop --command bash -c "cargo clippy --all-targets --no-deps -- -D warnings -A clippy::missing_safety_doc"
|
2023-03-14 18:37:12 +03:00
|
|
|
|
2023-11-21 22:27:25 +03:00
|
|
|
# Build Ares
|
2023-03-04 11:23:40 +03:00
|
|
|
- name: Build
|
2023-11-21 22:27:25 +03:00
|
|
|
run: |
|
|
|
|
nix develop --command bash -c "cargo build --release --verbose --features check_all"
|
|
|
|
|
|
|
|
# Run tests
|
|
|
|
- name: Test
|
|
|
|
run: |
|
|
|
|
nix develop --command bash -c "cargo test --verbose -- --test-threads=1"
|
2023-03-04 11:23:40 +03:00
|
|
|
|