name: CI on: push: branches: - master pull_request: branches: - master jobs: build: name: Build and Test runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v4 with: submodules: true - name: Install Rust uses: dtolnay/rust-toolchain@stable - name: Rust cache uses: Swatinem/rust-cache@v2 - name: Setup Aftman uses: ok-nick/setup-aftman@v0.3.0 with: version: 'v0.2.7' - name: Build run: cargo build --locked --verbose - name: Test run: cargo test --locked --verbose msrv: name: Check MSRV runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - name: Install Rust uses: dtolnay/rust-toolchain@1.70.0 - name: Rust cache uses: Swatinem/rust-cache@v2 - name: Setup Aftman uses: ok-nick/setup-aftman@v0.3.0 with: version: 'v0.2.7' - name: Build run: cargo build --locked --verbose lint: name: Rustfmt, Clippy, Stylua, & Selene runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - name: Install Rust uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - name: Rust cache uses: Swatinem/rust-cache@v2 - name: Setup Aftman uses: ok-nick/setup-aftman@v0.3.0 with: version: 'v0.2.7' - name: Stylua run: stylua --check plugin/src - name: Selene run: selene plugin/src - name: Rustfmt run: cargo fmt -- --check - name: Clippy run: cargo clippy