name: Continuous Integration on: pull_request: paths-ignore: - "**/*.md" push: branches: - main - "renovate/**" paths-ignore: - "**/*.md" schedule: - cron: "0 0 * * 0" merge_group: types: [checks_requested] jobs: fmt: name: Rustfmt runs-on: ubuntu-latest steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@1482605bfc5719782e1267fd0c0cc350fe7646b8 # v1 with: toolchain: stable components: rustfmt - name: Run Cargo Fmt run: cargo fmt --all -- --check clippy: name: Clippy runs-on: ubuntu-latest strategy: matrix: feature: [default] steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@1482605bfc5719782e1267fd0c0cc350fe7646b8 # v1 with: toolchain: stable components: clippy - uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2 - name: Run clippy run: cargo clippy --all-targets --features ${{ matrix.feature }} -- -D warnings test: name: Test runs-on: ${{ matrix.job.os }} strategy: matrix: rust: [stable] feature: [default] job: - os: macos-latest - os: ubuntu-latest - os: windows-latest steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 if: github.event_name != 'pull_request' with: fetch-depth: 0 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 if: github.event_name == 'pull_request' with: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@1482605bfc5719782e1267fd0c0cc350fe7646b8 # v1 with: toolchain: stable - uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2 - name: Run Cargo Test run: cargo test -r --all-targets --features ${{ matrix.feature }} --workspace docs: name: Build docs runs-on: ${{ matrix.job.os }} strategy: matrix: rust: [stable] job: - os: macos-latest - os: ubuntu-latest - os: windows-latest steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 if: github.event_name != 'pull_request' with: fetch-depth: 0 - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 if: github.event_name == 'pull_request' with: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@1482605bfc5719782e1267fd0c0cc350fe7646b8 # v1 with: toolchain: stable - uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2 - name: Run Cargo Doc run: cargo doc --no-deps --all-features --workspace --examples result: name: Result (CI) runs-on: ubuntu-latest needs: - fmt - clippy - test - docs steps: - name: Mark the job as successful run: exit 0 if: success() - name: Mark the job as unsuccessful run: exit 1 if: "!success()"