name: CI
on:
pull_request:
push:
branches:
- main
jobs:
msrv:
name: Verify MSRV
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Resolve MSRV
id: msrv
shell: bash
run: |
msrv=$(sed -nE 's/^rust-version = "([^"]+)"/\1/p' Cargo.toml)
if [[ -z "$msrv" ]]; then
echo "rust-version is not set in Cargo.toml" >&2
exit 1
fi
if [[ "$msrv" =~ ^[0-9]+\.[0-9]+$ ]]; then
msrv="${msrv}.0"
fi
echo "toolchain=$msrv" >> "$GITHUB_OUTPUT"
- name: Install MSRV toolchain
run: rustup toolchain install ${{ steps.msrv.outputs.toolchain }} --profile minimal
- name: Check with MSRV
run: cargo +${{ steps.msrv.outputs.toolchain }} check --locked --all-targets