| name: CI |
| |
| on: |
| push: |
| pull_request: |
| workflow_dispatch: |
| 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 check |
| - run: cargo check --features verbatim |
| - run: cargo test |
| env: |
| RUSTFLAGS: ${{env.RUSTFLAGS}} ${{matrix.rust == 'nightly' && '--cfg exhaustive' || ''}} |
| |
| examples: |
| name: Examples |
| 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@nightly |
| with: |
| components: llvm-tools, rustc-dev, rustfmt |
| - run: cargo run --manifest-path examples/update/Cargo.toml |
| - run: git diff --exit-code |
| - run: cargo run --manifest-path cargo-expand/update/Cargo.toml |
| - run: git diff --exit-code |
| |
| 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 --features verbatim -- -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 --workspace --exit-code 1 |