pytorch/.github/workflows/pull.yml
zengk95 2acd2317b8 [mergebot] Create land time check options (#77943)
This adds land time checks before we try to merge. What this does is:
1. Merge changes into latest master, check out a new branch, push, and have a workflow that runs jobs from trunk (and maybe pull)
2. Wait for all checks in the landtime workflow to finish by using the GH API (graphql doesn't have this method from what I can see)
3. push the changes in

Test Plan:
Tested this in canary with a new workflow that passes and lint, tested what happens if i break the new workflow by exiting with 1, the normal flow, and some other flows.

Tested it breaking when land checks fail:
https://github.com/pytorch/pytorch-canary/pull/113#issuecomment-1165941716

Test that it works:
https://github.com/pytorch/pytorch-canary/pull/114#issuecomment-1165922791

Test that normal validations like PR is broken:
https://github.com/pytorch/pytorch-canary/pull/113#issuecomment-1165930037

Test that normal merge works:
https://github.com/pytorch/pytorch-canary/pull/113#issuecomment-1166751288

Test that force merge works:
https://github.com/pytorch/pytorch-canary/pull/113#issuecomment-1167507356
Pull Request resolved: https://github.com/pytorch/pytorch/pull/77943
Approved by: https://github.com/janeyx99
2022-06-27 22:28:12 +00:00

321 lines
13 KiB
YAML

name: pull
on:
pull_request:
push:
branches:
- master
- main
- release/*
- landchecks/*
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }}
cancel-in-progress: true
jobs:
linux-focal-py3_7-gcc7-build:
name: linux-focal-py3.7-gcc7
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-focal-py3.7-gcc7
docker-image-name: pytorch-linux-focal-py3.7-gcc7
linux-focal-py3_7-gcc7-test:
name: linux-focal-py3.7-gcc7
uses: ./.github/workflows/_linux-test.yml
needs: linux-focal-py3_7-gcc7-build
with:
build-environment: linux-focal-py3.7-gcc7
docker-image: ${{ needs.linux-focal-py3_7-gcc7-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 2, runner: "linux.2xlarge" },
{ config: "default", shard: 2, num_shards: 2, runner: "linux.2xlarge" },
{ config: "distributed", shard: 1, num_shards: 1, runner: "linux.2xlarge" },
{ config: "docs_test", shard: 1, num_shards: 1, runner: "linux.2xlarge" },
{ config: "backwards_compat", shard: 1, num_shards: 1, runner: "linux.2xlarge" },
{ config: "jit_legacy", shard: 1, num_shards: 1, runner: "linux.2xlarge" },
]}
linux-docs:
name: linux-docs
uses: ./.github/workflows/_docs.yml
needs: linux-focal-py3_7-gcc7-build
with:
build-environment: linux-focal-py3.7-gcc7
docker-image: ${{ needs.linux-focal-py3_7-gcc7-build.outputs.docker-image }}
linux-focal-py3_7-gcc7-no-ops:
name: linux-focal-py3.7-gcc7-no-ops
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-focal-py3.7-gcc7-no-ops
docker-image-name: pytorch-linux-focal-py3.7-gcc7
# TODO: remove after full migration off Xenial
linux-xenial-py3_7-gcc7-build:
name: linux-xenial-py3.7-gcc7
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-xenial-py3.7-gcc7
docker-image-name: pytorch-linux-xenial-py3.7-gcc7
# TODO: remove after full migration off Xenial
linux-xenial-py3_7-clang7-asan-build:
name: linux-xenial-py3.7-clang7-asan
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-xenial-py3.7-clang7-asan
docker-image-name: pytorch-linux-xenial-py3-clang7-asan
linux-focal-py3_7-clang7-asan-build:
name: linux-focal-py3.7-clang7-asan
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-focal-py3.7-clang7-asan
docker-image-name: pytorch-linux-focal-py3-clang7-asan
linux-focal-py3_7-clang7-asan-test:
name: linux-focal-py3.7-clang7-asan
uses: ./.github/workflows/_linux-test.yml
needs: linux-focal-py3_7-clang7-asan-build
with:
build-environment: linux-focal-py3.7-clang7-asan
docker-image: ${{ needs.linux-focal-py3_7-clang7-asan-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 5, runner: "linux.2xlarge" },
{ config: "default", shard: 2, num_shards: 5, runner: "linux.2xlarge" },
{ config: "default", shard: 3, num_shards: 5, runner: "linux.2xlarge" },
{ config: "default", shard: 4, num_shards: 5, runner: "linux.2xlarge" },
{ config: "default", shard: 5, num_shards: 5, runner: "linux.2xlarge" },
]}
linux-focal-py3_7-clang10-onnx-build:
name: linux-focal-py3.7-clang10-onnx
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-focal-py3.7-clang10-onnx
docker-image-name: pytorch-linux-focal-py3-clang10-onnx
linux-focal-py3_7-clang10-onnx-test:
name: linux-focal-py3.7-clang10-onnx
uses: ./.github/workflows/_linux-test.yml
needs: linux-focal-py3_7-clang10-onnx-build
with:
build-environment: linux-focal-py3.7-clang10-onnx
docker-image: ${{ needs.linux-focal-py3_7-clang10-onnx-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 2, runner: "linux.2xlarge" },
{ config: "default", shard: 2, num_shards: 2, runner: "linux.2xlarge" },
]}
linux-bionic-py3_7-clang9-build:
name: linux-bionic-py3.7-clang9
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-bionic-py3.7-clang9
docker-image-name: pytorch-linux-bionic-py3.7-clang9
linux-bionic-py3_7-clang9-test:
name: linux-bionic-py3.7-clang9
uses: ./.github/workflows/_linux-test.yml
needs: linux-bionic-py3_7-clang9-build
with:
build-environment: linux-bionic-py3.7-clang9
docker-image: ${{ needs.linux-bionic-py3_7-clang9-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 2, runner: "linux.2xlarge" },
{ config: "default", shard: 2, num_shards: 2, runner: "linux.2xlarge" },
{ config: "crossref", shard: 1, num_shards: 2, runner: "linux.2xlarge" },
{ config: "crossref", shard: 2, num_shards: 2, runner: "linux.2xlarge" },
{ config: "dynamo", shard: 1, num_shards: 2, runner: "linux.2xlarge" },
{ config: "dynamo", shard: 2, num_shards: 2, runner: "linux.2xlarge" },
]}
linux-bionic-cuda11_3-py3_7-clang9-build:
name: linux-bionic-cuda11.3-py3.7-clang9
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-bionic-cuda11.3-py3.7-clang9
docker-image-name: pytorch-linux-bionic-cuda11.3-cudnn8-py3-clang9
linux-vulkan-bionic-py3_7-clang9-build:
name: linux-vulkan-bionic-py3.7-clang9
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-vulkan-bionic-py3.7-clang9
docker-image-name: pytorch-linux-bionic-py3.7-clang9
linux-vulkan-bionic-py3_7-clang9-test:
name: linux-vulkan-bionic-py3.7-clang9
uses: ./.github/workflows/_linux-test.yml
needs: linux-vulkan-bionic-py3_7-clang9-build
with:
build-environment: linux-vulkan-bionic-py3.7-clang9
docker-image: ${{ needs.linux-vulkan-bionic-py3_7-clang9-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 1, runner: "linux.2xlarge" },
]}
linux-bionic-cuda11_6-py3_7-gcc7-build:
name: linux-bionic-cuda11.6-py3.7-gcc7
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-bionic-cuda11.6-py3.7-gcc7
docker-image-name: pytorch-linux-bionic-cuda11.6-cudnn8-py3-gcc7
linux-bionic-cuda11_6-py3_7-gcc7-test:
name: linux-bionic-cuda11.6-py3.7-gcc7
uses: ./.github/workflows/_linux-test.yml
needs: linux-bionic-cuda11_6-py3_7-gcc7-build
with:
build-environment: linux-bionic-cuda11.6-py3.7-gcc7
docker-image: ${{ needs.linux-bionic-cuda11_6-py3_7-gcc7-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 4, runner: "linux.4xlarge.nvidia.gpu" },
{ config: "default", shard: 2, num_shards: 4, runner: "linux.4xlarge.nvidia.gpu" },
{ config: "default", shard: 3, num_shards: 4, runner: "linux.4xlarge.nvidia.gpu" },
{ config: "default", shard: 4, num_shards: 4, runner: "linux.4xlarge.nvidia.gpu" },
{ config: "distributed", shard: 1, num_shards: 2, runner: "linux.8xlarge.nvidia.gpu" },
{ config: "distributed", shard: 2, num_shards: 2, runner: "linux.8xlarge.nvidia.gpu" },
]}
linux-xenial-py3-clang5-mobile-build:
name: linux-xenial-py3-clang5-mobile-build
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-xenial-py3-clang5-mobile-build
docker-image-name: pytorch-linux-xenial-py3-clang5-asan
build-generates-artifacts: false
linux-jammy-cuda-11_6-cudnn8-py3_8-clang12-build:
name: linux-jammy-cuda11.6-cudnn8-py3.8-clang12
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-jammy-cuda11.6-cudnn8-py3.8-clang12
docker-image-name: pytorch-linux-jammy-cuda11.6-cudnn8-py3.8-clang12
linux-xenial-py3-clang5-mobile-custom-build-static:
name: linux-xenial-py3-clang5-mobile-custom-build-static
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-xenial-py3-clang5-mobile-custom-build-static
docker-image-name: pytorch-linux-xenial-py3-clang5-android-ndk-r19c
build-generates-artifacts: false
linux-bionic-py3_7-clang8-xla-build:
if: false
name: linux-bionic-py3_7-clang8-xla
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-bionic-py3_7-clang8-xla
docker-image-name: xla_base
linux-bionic-py3_7-clang8-xla-test:
name: linux-bionic-py3_7-clang8-xla
uses: ./.github/workflows/_linux-test.yml
needs: linux-bionic-py3_7-clang8-xla-build
with:
build-environment: linux-bionic-py3_7-clang8-xla
docker-image: ${{ needs.linux-bionic-py3_7-clang8-xla-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "xla", shard: 1, num_shards: 1, runner: "linux.2xlarge" },
]}
win-vs2019-cpu-py3-build:
name: win-vs2019-cpu-py3
uses: ./.github/workflows/_win-build.yml
with:
build-environment: win-vs2019-cpu-py3
cuda-version: cpu
win-vs2019-cpu-py3-test:
name: win-vs2019-cpu-py3
uses: ./.github/workflows/_win-test.yml
needs: win-vs2019-cpu-py3-build
with:
build-environment: win-vs2019-cpu-py3
cuda-version: cpu
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 2, runner: "windows.4xlarge" },
{ config: "default", shard: 2, num_shards: 2, runner: "windows.4xlarge" },
]}
# please ensure that this and its corresponding job in trunk.yml are in sync
win-vs2019-cuda11_6-py3-build:
# don't run build twice on master
if: github.event_name == 'pull_request'
name: win-vs2019-cuda11.6-py3
uses: ./.github/workflows/_win-build.yml
with:
build-environment: win-vs2019-cuda11.6-py3
cuda-version: "11.6"
linux-xenial-cuda11_3-py3_7-gcc7-bazel-test:
name: linux-xenial-cuda11.3-py3.7-gcc7-bazel-test
uses: ./.github/workflows/_bazel-build-test.yml
with:
build-environment: linux-xenial-cuda11.3-py3.7-gcc7-bazel-test
docker-image-name: pytorch-linux-xenial-cuda11.3-cudnn8-py3-gcc7
linux-xenial-py3-clang5-android-ndk-r19c-gradle-custom-build-single:
name: linux-xenial-py3-clang5-android-ndk-r19c-gradle-custom-build-single
uses: ./.github/workflows/_android-build-test.yml
with:
build-environment: linux-xenial-py3-clang5-android-ndk-r19c-gradle-custom-build-single
docker-image-name: pytorch-linux-xenial-py3-clang5-android-ndk-r19c
linux-xenial-py3-clang5-android-ndk-r19c-gradle-custom-build-single-full-jit:
name: linux-xenial-py3-clang5-android-ndk-r19c-gradle-custom-build-single-full-jit
uses: ./.github/workflows/_android-build-test.yml
with:
build-environment: linux-xenial-py3-clang5-android-ndk-r19c-gradle-custom-build-single-full-jit
docker-image-name: pytorch-linux-xenial-py3-clang5-android-ndk-r19c
# https://github.com/pytorch/pytorch/issues/78540
# linux-focal-py3_7-gcc7-mobile-lightweight-dispatch-build:
# if: false()
# name: linux-focal-py3.7-gcc7-mobile-lightweight-dispatch-build
# uses: ./.github/workflows/_linux-build.yml
# with:
# build-environment: linux-focal-py3.7-gcc7-mobile-lightweight-dispatch-build
# docker-image-name: pytorch-linux-focal-py3.7-gcc7
# build-generates-artifacts: false
linux-xenial-cuda11_3-py3_7-gcc7-deploy-build:
name: linux-xenial-cuda11_3-py3_7-gcc7-deploy
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-xenial-cuda11.3-py3.7-gcc7-deploy
docker-image-name: pytorch-linux-xenial-cuda11.3-cudnn8-py3-gcc7
deploy-linux-xenial-cuda11_3-py3_7-gcc7-test:
name: linux-xenial-cuda11_3-py3_7-gcc7-deploy
uses: ./.github/workflows/_linux-test.yml
needs: linux-xenial-cuda11_3-py3_7-gcc7-deploy-build
with:
build-environment: linux-xenial-cuda11.3-py3.7-gcc7-deploy
docker-image: ${{ needs.linux-xenial-cuda11_3-py3_7-gcc7-deploy-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "deploy", shard: 1, num_shards: 1, runner: "linux.4xlarge.nvidia.gpu" },
]}
# please ensure that this and its corresponding job in trunk.yml are in sync
linux-bionic-rocm5_1-py3_7-build:
# don't run build twice on master
if: github.event_name == 'pull_request'
name: linux-bionic-rocm5.1-py3.7
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-bionic-rocm5.1-py3.7
docker-image-name: pytorch-linux-bionic-rocm5.1-py3.7