name: CI
on:
pull_request: { types: [opened, synchronize, reopened, ready_for_review] }
push: { branches: [main] }
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build_and_test:
strategy:
fail-fast: false
matrix:
target:
- { name: Linux, os: ubuntu-latest, triple: x86_64-unknown-linux-gnu }
- { name: macOS, os: macos-latest, triple: x86_64-apple-darwin }
- { name: Windows, os: windows-latest, triple: x86_64-pc-windows-msvc }
version:
- { name: stable, version: stable }
- { name: beta, version: beta }
name: Test (${{ matrix.target.name }} / ${{ matrix.version.name }})
runs-on: ${{ matrix.target.os }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 with:
persist-credentials: false
- name: Install nasm
if: matrix.target.os == 'windows-latest'
uses: ilammy/setup-nasm@72793074d3c8cdda771dba85f6deafe00623038b
- name: Install Rust (${{ matrix.version.version }})
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 with:
toolchain: ${{ matrix.version.version }}
- name: Install just, nextest
uses: taiki-e/install-action@6a1bd70eaac3c8bdf093356838d7ee09fda951cf with:
tool: just,nextest
- name: Test
run: just test
- name: Install cargo-ci-cache-clean
uses: taiki-e/install-action@6a1bd70eaac3c8bdf093356838d7ee09fda951cf with:
tool: cargo-ci-cache-clean
- name: CI cache clean
run: cargo-ci-cache-clean