name: Integration on: push: {} schedule: - cron: '0 0 * * *' jobs: test: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] rust: [stable, nightly] include: - os: macOS-latest rust: 'stable' components: 'rustfmt, clippy' targets: 'x86_64-apple-darwin' - os: windows-latest rust: 'stable' components: 'rustfmt, clippy' targets: 'x86_64-pc-windows-msvc' - os: ubuntu-latest rust: 'stable' components: 'rustfmt, clippy' targets: 'x86_64-unknown-linux-musl' steps: - uses: hecrj/setup-rust-action@master with: rust-version: ${{ matrix.rust }} components: ${{ matrix.components || '' }} targets: ${{ matrix.targets || '' }} - name: Check Cargo availability run: cargo --version - name: Check Rustup default toolchain run: rustup default | grep '${{ matrix.rust }}' - name: Check rustfmt and clippy are available on MacOS if: matrix.os == 'macOS-latest' && matrix.rust == 'stable' run: | cargo fmt --version cargo clippy --version