name: CI
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
tags:
- "v*"
env:
CARGO_TERM_COLOR: always
CARGO_UNSTABLE_SPARSE_REGISTRY: "true"
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
test:
strategy:
fail-fast: false
matrix:
platform:
- macos
- ubuntu
- windows
command:
- test
- clippy
name: ${{ matrix.platform }} / ${{ matrix.command }}
runs-on: "${{ matrix.platform }}-latest"
steps:
- uses: actions/checkout@v5
- name: Configure toolchain
run: |
rustup toolchain install --profile minimal --no-self-update stable
rustup default stable
- if: runner.os == 'Windows'
name: Use GNU tar
shell: cmd
run: |
echo "Adding GNU tar to PATH"
echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%"
- uses: Swatinem/rust-cache@v2
- run: cargo ${{ matrix.command }}
tests-pass:
if: always()
name: Tests pass
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}