name: CI
on:
push:
branches: [ trunk ]
pull_request:
branches: [ trunk ]
env:
CARGO_TERM_COLOR: always
jobs:
test:
name: debug build & test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
test-release:
name: release build & test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: cargo build --release --verbose
- name: Run tests
run: cargo test --release --verbose
- name: Run ignored tests
run: cargo test --release --verbose -- --ignored
test-miri:
name: miri build & test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install latest nightly
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
profile: minimal
components: miri, rust-src
- name: Run tests under Miri
run: cargo miri test --verbose --target x86_64-unknown-linux-gnu
- name: Run tests under Miri, big-endian
run: cargo miri test --verbose --target mips64-unknown-linux-gnuabi64
- name: Run tests under Miri, 32-bit
run: cargo miri test --verbose --target i686-unknown-linux-gnu
test-msrv:
name: rust 1.44 debug build & test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install stable 1.44
uses: actions-rs/toolchain@v1
with:
toolchain: '1.44'
override: true
profile: minimal
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
fmt:
name: rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Check with rustfmt
run: cargo fmt -- --check