name: CI on: push: branches: ["main"] pull_request: env: RUSTFLAGS: -Dwarnings RUST_BACKTRACE: 1 MSRV: 1.42.0 jobs: build: name: Build (stable, ${{ matrix.target }}) runs-on: ubuntu-latest strategy: matrix: target: - x86_64-unknown-linux-gnu - i686-unknown-linux-musl steps: - uses: actions/checkout@master - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable target: ${{ matrix.target }} override: true - name: cargo build --target ${{ matrix.target }} uses: actions-rs/cargo@v1 with: command: build args: --all-targets --target ${{ matrix.target }} build-msrv: name: Build (MSRV) runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ env.MSRV }} override: true - name: cargo +${{ env.MSRV }} build uses: actions-rs/cargo@v1 with: command: build env: RUSTFLAGS: "" # remove -Dwarnings build-nightly: name: Build (nightly) runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true - name: cargo +nightly build uses: actions-rs/cargo@v1 with: command: build env: RUSTFLAGS: "" # remove -Dwarnings test: name: Tests (stable) needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Run tests run: cargo test test-loom: name: Loom tests (stable) needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Run Loom tests run: ./bin/loom.sh clippy: name: Clippy (stable) runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable components: clippy override: true - name: cargo clippy --all-targets --all-features uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} args: --all-targets --all-features rustfmt: name: Rustfmt (stable) runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable components: rustfmt override: true - name: Run rustfmt uses: actions-rs/cargo@v1 with: command: fmt args: -- --check all-systems-go: name: "all systems go!" needs: - build - build-msrv # Note: we explicitly *don't* require the `build-nightly` job to pass, # since the nightly Rust compiler is unstable. We don't want nightly # regressions to break our build --- this CI job is intended for # informational reasons rather than as a gatekeeper for merging PRs. - test - test-loom - clippy - rustfmt runs-on: ubuntu-latest steps: - run: exit 0