name: cargo
on:
push:
branches: [ master, v0.17.x ]
pull_request:
branches: [ master, v0.17.x ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
build-os:
name: Build (${{ matrix.os }})
strategy:
matrix:
os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Build
run: cargo build --verbose
build-no-features:
name: Build with No Default Features
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Build
run: cargo build --verbose --no-default-features
test-features:
name: Unit Test with ${{ matrix.features }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
features:
- 'runtime-smol'
- 'runtime-mock'
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Build
run: cargo test --lib --verbose --no-default-features --features ${{ matrix.features }}
test:
name: Test
strategy:
matrix:
os: [ 'ubuntu-latest' ] runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Run tests
run: cargo test --verbose
rustfmt_and_clippy:
name: Check rustfmt style && run clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: clippy, rustfmt
override: true
- name: Cache cargo registry
uses: actions/cache@v3
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
- name: Run clippy
uses: actions-rs/cargo@v1
with:
command: clippy
- name: Check formating
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check