diff --git a/.github/workflows/_linux-build.yml b/.github/workflows/_linux-build.yml index 36a78014087..bed3ce93407 100644 --- a/.github/workflows/_linux-build.yml +++ b/.github/workflows/_linux-build.yml @@ -39,7 +39,7 @@ on: type: string default: "linux.2xlarge" description: | - List of CUDA architectures CI build should target. + Label of the runner this job should run on. test-matrix: required: false type: string diff --git a/.github/workflows/_win-build.yml b/.github/workflows/_win-build.yml index 72112c99e7d..6ee529f38b5 100644 --- a/.github/workflows/_win-build.yml +++ b/.github/workflows/_win-build.yml @@ -30,6 +30,12 @@ on: An option JSON description of what test configs to run later on. This is moved here from the Linux test workflow so that we can apply filter logic using test-config labels earlier and skip unnecessary builds + runner: + required: false + type: string + default: "windows.4xlarge.nonephemeral" + description: | + Label of the runner this job should run on. outputs: test-matrix: @@ -43,7 +49,7 @@ jobs: build: # Don't run on forked repos. if: github.repository_owner == 'pytorch' - runs-on: [self-hosted, windows.4xlarge.nonephemeral] + runs-on: ${{ inputs.runner }} timeout-minutes: 240 outputs: test-matrix: ${{ steps.filter.outputs.test-matrix }} diff --git a/.github/workflows/pull.yml b/.github/workflows/pull.yml index 472bb4fa5b6..c0e75d1f503 100644 --- a/.github/workflows/pull.yml +++ b/.github/workflows/pull.yml @@ -383,15 +383,17 @@ jobs: if: github.event_name == 'pull_request' name: win-vs2019-cpu-py3 uses: ./.github/workflows/_win-build.yml + needs: get-label-type with: build-environment: win-vs2019-cpu-py3 cuda-version: cpu sync-tag: win-cpu-build + runner: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral" test-matrix: | { include: [ - { config: "default", shard: 1, num_shards: 3, runner: "windows.4xlarge.nonephemeral" }, - { config: "default", shard: 2, num_shards: 3, runner: "windows.4xlarge.nonephemeral" }, - { config: "default", shard: 3, num_shards: 3, runner: "windows.4xlarge.nonephemeral" }, + { config: "default", shard: 1, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral" }, + { config: "default", shard: 2, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral" }, + { config: "default", shard: 3, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral" }, ]} linux-focal-cpu-py3_10-gcc9-bazel-test: diff --git a/.github/workflows/trunk.yml b/.github/workflows/trunk.yml index 946aec33445..5ef246c22f8 100644 --- a/.github/workflows/trunk.yml +++ b/.github/workflows/trunk.yml @@ -179,15 +179,17 @@ jobs: win-vs2019-cpu-py3-build: name: win-vs2019-cpu-py3 uses: ./.github/workflows/_win-build.yml + needs: get-label-type with: build-environment: win-vs2019-cpu-py3 cuda-version: cpu sync-tag: win-cpu-build + runner: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral" test-matrix: | { include: [ - { config: "default", shard: 1, num_shards: 3, runner: "windows.4xlarge.nonephemeral" }, - { config: "default", shard: 2, num_shards: 3, runner: "windows.4xlarge.nonephemeral" }, - { config: "default", shard: 3, num_shards: 3, runner: "windows.4xlarge.nonephemeral" }, + { config: "default", shard: 1, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral" }, + { config: "default", shard: 2, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral" }, + { config: "default", shard: 3, num_shards: 3, runner: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral" }, ]} win-vs2019-cpu-py3-test: @@ -204,19 +206,21 @@ jobs: win-vs2019-cuda11_8-py3-build: name: win-vs2019-cuda11.8-py3 uses: ./.github/workflows/_win-build.yml + needs: get-label-type with: build-environment: win-vs2019-cuda11.8-py3 cuda-version: "11.8" sync-tag: win-cuda-build + runner: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral" test-matrix: | { include: [ - { config: "default", shard: 1, num_shards: 6, runner: "windows.g5.4xlarge.nvidia.gpu" }, - { config: "default", shard: 2, num_shards: 6, runner: "windows.g5.4xlarge.nvidia.gpu" }, - { config: "default", shard: 3, num_shards: 6, runner: "windows.g5.4xlarge.nvidia.gpu" }, - { config: "default", shard: 4, num_shards: 6, runner: "windows.g5.4xlarge.nvidia.gpu" }, - { config: "default", shard: 5, num_shards: 6, runner: "windows.g5.4xlarge.nvidia.gpu" }, - { config: "default", shard: 6, num_shards: 6, runner: "windows.g5.4xlarge.nvidia.gpu" }, - { config: "force_on_cpu", shard: 1, num_shards: 1, runner: "windows.4xlarge.nonephemeral" }, + { config: "default", shard: 1, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}windows.g5.4xlarge.nvidia.gpu" }, + { config: "default", shard: 2, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}windows.g5.4xlarge.nvidia.gpu" }, + { config: "default", shard: 3, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}windows.g5.4xlarge.nvidia.gpu" }, + { config: "default", shard: 4, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}windows.g5.4xlarge.nvidia.gpu" }, + { config: "default", shard: 5, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}windows.g5.4xlarge.nvidia.gpu" }, + { config: "default", shard: 6, num_shards: 6, runner: "${{ needs.get-label-type.outputs.label-type }}windows.g5.4xlarge.nvidia.gpu" }, + { config: "force_on_cpu", shard: 1, num_shards: 1, runner: "${{ needs.get-label-type.outputs.label-type }}windows.4xlarge.nonephemeral" }, ]} linux-focal-rocm6_1-py3_8-build: