diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f4011b0ca7be..4c3e83ca2158 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,19 +27,20 @@ jobs: check: name: Check if: ${{ needs.pre_job.outputs.should_skip != 'true' || github.event_name != 'pull_request' }} - timeout-minutes: 10 + timeout-minutes: 15 needs: pre_job - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: matrix: + os: [ubuntu-latest, windows-latest] rust_release: [pinned-nightly, latest-nightly] exclude: - # For non-pull requests, event_name != 'pull_request' will be true, - # and nothing is truthy, so the entire && operator will resolve to - # 'nothing'. Then the || operator will resolve to 'nothing' so we - # will exclude 'nothing'. https://stackoverflow.com/a/73822998 + # For non-pull requests, event_name != 'pull_request' will be true, and 'nothing' is + # truthy, so the entire && operator will resolve to 'nothing'. Then the || operator will + # resolve to 'nothing' so we will exclude 'nothing'. https://stackoverflow.com/a/73822998 - rust_release: ${{ (needs.pre_job.outputs.should_skip != 'true' && 'nothing') || 'pinned-nightly' }} - rust_release: ${{ (github.event_name != 'pull_request' && 'nothing') || 'latest-nightly' }} + - os: ${{ (github.event_name != 'pull_request' && 'nothing') || 'windows-latest' }} steps: - name: Checkout sources @@ -74,10 +75,9 @@ jobs: matrix: rust_release: [pinned-nightly, latest-nightly] exclude: - # For non-pull requests, event_name != 'pull_request' will be true, - # and nothing is truthy, so the entire && operator will resolve to - # 'nothing'. Then the || operator will resolve to 'nothing' so we - # will exclude 'nothing'. https://stackoverflow.com/a/73822998 + # For non-pull requests, event_name != 'pull_request' will be true, and 'nothing' is + # truthy, so the entire && operator will resolve to 'nothing'. Then the || operator will + # resolve to 'nothing' so we will exclude 'nothing'. https://stackoverflow.com/a/73822998 - rust_release: ${{ (needs.pre_job.outputs.should_skip != 'true' && 'nothing') || 'pinned-nightly' }} - rust_release: ${{ (github.event_name != 'pull_request' && 'nothing') || 'latest-nightly' }} @@ -104,9 +104,10 @@ jobs: if: ${{ needs.pre_job.outputs.should_skip != 'true' || github.event_name != 'pull_request' }} timeout-minutes: 25 needs: pre_job - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: matrix: + os: [ubuntu-latest, windows-latest] target_selection: - "--lib --bins" - "--examples" @@ -115,12 +116,12 @@ jobs: - "--doc" rust_release: [pinned-nightly, latest-nightly] exclude: - # For non-pull requests, event_name != 'pull_request' will be true, - # and nothing is truthy, so the entire && operator will resolve to - # 'nothing'. Then the || operator will resolve to 'nothing' so we - # will exclude 'nothing'. https://stackoverflow.com/a/73822998 + # For non-pull requests, event_name != 'pull_request' will be true, and 'nothing' is + # truthy, so the entire && operator will resolve to 'nothing'. Then the || operator will + # resolve to 'nothing' so we will exclude 'nothing'. https://stackoverflow.com/a/73822998 - rust_release: ${{ (needs.pre_job.outputs.should_skip != 'true' && 'nothing') || 'pinned-nightly' }} - rust_release: ${{ (github.event_name != 'pull_request' && 'nothing') || 'latest-nightly' }} + - os: ${{ (github.event_name != 'pull_request' && 'nothing') || 'windows-latest' }} steps: - name: Checkout sources @@ -149,10 +150,9 @@ jobs: matrix: rust_release: [pinned-nightly, latest-nightly] exclude: - # For non-pull requests, event_name != 'pull_request' will be true, - # and nothing is truthy, so the entire && operator will resolve to - # 'nothing'. Then the || operator will resolve to 'nothing' so we - # will exclude 'nothing'. https://stackoverflow.com/a/73822998 + # For non-pull requests, event_name != 'pull_request' will be true, and 'nothing' is + # truthy, so the entire && operator will resolve to 'nothing'. Then the || operator will + # resolve to 'nothing' so we will exclude 'nothing'. https://stackoverflow.com/a/73822998 - rust_release: ${{ (needs.pre_job.outputs.should_skip != 'true' && 'nothing') || 'pinned-nightly' }} - rust_release: ${{ (github.event_name != 'pull_request' && 'nothing') || 'latest-nightly' }} @@ -235,10 +235,9 @@ jobs: matrix: rust_release: [pinned-nightly, latest-nightly] exclude: - # For non-pull requests, event_name != 'pull_request' will be true, - # and nothing is truthy, so the entire && operator will resolve to - # 'nothing'. Then the || operator will resolve to 'nothing' so we - # will exclude 'nothing'. https://stackoverflow.com/a/73822998 + # For non-pull requests, event_name != 'pull_request' will be true, and 'nothing' is + # truthy, so the entire && operator will resolve to 'nothing'. Then the || operator will + # resolve to 'nothing' so we will exclude 'nothing'. https://stackoverflow.com/a/73822998 - rust_release: ${{ (needs.pre_job.outputs.should_skip != 'true' && 'nothing') || 'pinned-nightly' }} - rust_release: ${{ (github.event_name != 'pull_request' && 'nothing') || 'latest-nightly' }}