name: rust-ci on: push: branches: [ main ] pull_request: branches: [ main ] workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} defaults: run: working-directory: rustutils/ jobs: test: name: Rust tests runs-on: ${{ matrix.os }} strategy: fail-fast: true matrix: include: - os: macos-latest # M-series CPU - os: windows-latest - os: ubuntu-latest steps: - uses: taiki-e/install-action@ba47c86ac325773530516bb756137ac718732518 # v2.86.5 with: { tool: just } - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - run: just -v ci-test msrv: name: Rust tests MSRV (Minimal Supported Rust Version) runs-on: ubuntu-latest steps: - uses: taiki-e/install-action@ba47c86ac325773530516bb756137ac718732518 # v2.86.5 with: { tool: just } - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Read crate metadata id: metadata run: echo "rust-version=$(sed -ne 's/rust-version *= *\"\(.*\)\"/\1/p' Cargo.toml)" >> "$GITHUB_OUTPUT" - name: Install Rust uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable with: toolchain: ${{ steps.metadata.outputs.rust-version }} - run: just ci-test-msrv