| name: CI |
| |
| on: |
| push: |
| pull_request: |
| schedule: [cron: "40 1 * * *"] |
| |
| permissions: |
| contents: read |
| |
| env: |
| RUSTFLAGS: -Dwarnings |
| |
| jobs: |
| pre_ci: |
| uses: dtolnay/.github/.github/workflows/pre_ci.yml@master |
| |
| test: |
| name: Rust ${{matrix.rust}} |
| needs: pre_ci |
| if: needs.pre_ci.outputs.continue |
| runs-on: ubuntu-latest |
| strategy: |
| fail-fast: false |
| matrix: |
| rust: [nightly, beta, stable, 1.56.0] |
| timeout-minutes: 45 |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: dtolnay/rust-toolchain@master |
| with: |
| toolchain: ${{matrix.rust}} |
| - run: cargo test |
| |
| xplat: |
| name: ${{matrix.name}} |
| needs: pre_ci |
| if: needs.pre_ci.outputs.continue |
| runs-on: ${{matrix.os}}-latest |
| strategy: |
| fail-fast: false |
| matrix: |
| include: |
| - name: macOS |
| os: macos |
| - name: Windows |
| os: windows |
| timeout-minutes: 45 |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: dtolnay/rust-toolchain@nightly |
| - run: cargo test |
| |
| msrv: |
| name: Rust 1.31.0 |
| needs: pre_ci |
| if: needs.pre_ci.outputs.continue |
| runs-on: ubuntu-latest |
| timeout-minutes: 45 |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: dtolnay/rust-toolchain@1.31.0 |
| - run: cargo build |
| |
| clippy: |
| name: Clippy |
| runs-on: ubuntu-latest |
| if: github.event_name != 'pull_request' |
| timeout-minutes: 45 |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: dtolnay/rust-toolchain@clippy |
| - run: cargo clippy --tests -- -Dclippy::all -Dclippy::pedantic |
| |
| outdated: |
| name: Outdated |
| runs-on: ubuntu-latest |
| if: github.event_name != 'pull_request' |
| timeout-minutes: 45 |
| steps: |
| - uses: actions/checkout@v3 |
| - uses: dtolnay/install@cargo-outdated |
| - run: cargo outdated --exit-code 1 |