Skip to content

Add nix build to CI #498

Add nix build to CI

Add nix build to CI #498

Workflow file for this run

name: tests
on:
push:
branches:
- "main"
pull_request:
branches:
- "main"
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
tests:
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v7
# Install Rust toolchain specified in rust-toolchain.toml.
- name: Install Rust toolchain
run: rustc --version
- name: Build mutest-json (without rustc options, as a public consumer)
run: cargo build -p mutest-json
- name: Build mutest-runtime
run: cargo build --release -p mutest-runtime
- name: Build mutest-runtime-embedded-target-stub and test-metadata-shim for host
run: |
cargo build --release -p test-metadata-shim
cargo build --release -p mutest-runtime-embedded-target-stub
- name: Build mutest-driver with runtime embedding
run: cargo build --release -p mutest-driver --features embed-runtime
- name: Install mutest-driver and cargo-mutest
run: |
cargo install --force --path mutest-driver
cargo install --force --path cargo-mutest
- name: Install mutest-inspector
run: cargo install --force --path mutest-inspector
- name: Run unit tests
run: |
cargo test -p cargo-mutest --no-fail-fast -- --color=always
cargo test -p mutest-runtime --no-fail-fast -- --color=always
cargo test -p mutest-inspector --no-fail-fast -- --color=always
cargo test -p mutest-tests --no-fail-fast -- --color=always
- name: Run UI tests
run: cargo ui-test
nix-tests:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v5
- uses: cachix/install-nix-action@v31
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Nix build project
run: |
nix-build -E 'with import <nixpkgs> { }; callPackage ./default.nix {}'