name: code
on:
pull_request:
defaults:
run:
shell: bash
jobs:
test:
name: ${{ matrix.platform.name }} / ${{ matrix.mode.name }} / ${{ matrix.featureset.name }}
runs-on: ${{ matrix.platform.os }}
strategy:
matrix:
platform:
- name: Ubuntu
os: ubuntu-latest
- name: Windows
os: windows-latest
- name: macOS
os: macos-latest
mode:
- name: clippy
cargo-command: clippy
cargo-args: --all-targets -- -D warnings
- name: test
cargo-command: test
cargo-args: --verbose
- name: build
cargo-command: build
cargo-args: --verbose
featureset:
- name: default features
args: "" - name: builder only
args: "--no-default-features --features builder"
- name: no default features
args: "--no-default-features"
fail-fast: false
steps:
- name: Job config
run: printf "%s\n" "$MATRIX_CONTEXT"
env:
MATRIX_CONTEXT: ${{ toJson(matrix) }}
- name: Checkout
uses: actions/checkout@v2
- name: Install rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
- name: Print build environment info
run: |
set -x
cargo --version
cargo clippy --version
env
- name: Run cargo ${{ matrix.mode.cargo-command }}
uses: actions-rs/cargo@v1
with:
command: ${{ matrix.mode.cargo-command }}
args: ${{matrix.featureset.args}} ${{ matrix.mode.cargo-args }}