pytorch/.github/workflows/trunk.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

264 lines
10 KiB
YAML

name: trunk
on:
push:
branches:
- master
- main
- release/*
- landchecks/*
tags:
- ciflow/trunk/*
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }}
cancel-in-progress: true
jobs:
parallelnative-linux-focal-py3_7-gcc7-build:
name: parallelnative-linux-focal-py3.7-gcc7
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: parallelnative-linux-focal-py3.7-gcc7
docker-image-name: pytorch-linux-focal-py3.7-gcc7
parallelnative-linux-focal-py3_7-gcc7-test:
name: parallelnative-linux-focal-py3.7-gcc7
uses: ./.github/workflows/_linux-test.yml
needs: parallelnative-linux-focal-py3_7-gcc7-build
with:
build-environment: parallelnative-linux-focal-py3.7-gcc7
docker-image: ${{ needs.parallelnative-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" },
]}
# Build PyTorch with BUILD_CAFFE2=ON
caffe2-linux-focal-py3_7-gcc7-build:
name: caffe2-linux-focal-py3.7-gcc7
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: caffe2-linux-focal-py3.7-gcc7
docker-image-name: pytorch-linux-focal-py3.7-gcc7
linux-bionic-cuda10_2-py3_9-gcc7-build:
name: linux-bionic-cuda10.2-py3.9-gcc7
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-bionic-cuda10.2-py3.9-gcc7
docker-image-name: pytorch-linux-bionic-cuda10.2-cudnn7-py3.9-gcc7
linux-bionic-cuda10_2-py3_9-gcc7-test:
name: linux-bionic-cuda10.2-py3.9-gcc7
uses: ./.github/workflows/_linux-test.yml
needs: linux-bionic-cuda10_2-py3_9-gcc7-build
with:
build-environment: linux-bionic-cuda10.2-py3.9-gcc7
docker-image: ${{ needs.linux-bionic-cuda10_2-py3_9-gcc7-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 2, runner: "linux.4xlarge.nvidia.gpu" },
{ config: "default", shard: 2, num_shards: 2, runner: "linux.4xlarge.nvidia.gpu" },
{ config: "slow", shard: 1, num_shards: 1, runner: "linux.4xlarge.nvidia.gpu" },
{ config: "nogpu_AVX512", shard: 1, num_shards: 1, runner: "linux.2xlarge" },
{ config: "nogpu_NO_AVX2", shard: 1, num_shards: 1, runner: "linux.2xlarge" },
{ config: "jit_legacy", shard: 1, num_shards: 1, 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" },
]}
libtorch-linux-xenial-cuda10_2-py3_7-gcc7-build:
name: libtorch-linux-xenial-cuda10.2-py3.7-gcc7
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: libtorch-linux-xenial-cuda10.2-py3.7-gcc7
docker-image-name: pytorch-linux-xenial-cuda10.2-cudnn7-py3-gcc7
build-generates-artifacts: false
libtorch-linux-bionic-cuda11_6-py3_7-gcc7-build:
name: libtorch-linux-bionic-cuda11.6-py3.7-gcc7
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: libtorch-linux-bionic-cuda11.6-py3.7-gcc7
docker-image-name: pytorch-linux-bionic-cuda11.6-cudnn8-py3-gcc7
build-generates-artifacts: false
# no-ops builds test USE_PER_OPERATOR_HEADERS=0 where ATen/ops is not generated
linux-xenial-cuda11_3-py3_7-gcc7-no-ops-build:
name: linux-xenial-cuda11.3-py3.7-gcc7-no-ops
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-xenial-cuda11.3-py3.7-gcc7-no-ops
docker-image-name: pytorch-linux-xenial-cuda11.3-cudnn8-py3-gcc7
pytorch-linux-xenial-py3-clang5-android-ndk-r19c-build:
name: pytorch-linux-xenial-py3-clang5-android-ndk-r19c-build
uses: ./.github/workflows/_android-full-build-test.yml
with:
build-environment: pytorch-linux-xenial-py3-clang5-android-ndk-r19c-build
docker-image-name: pytorch-linux-xenial-py3-clang5-android-ndk-r19c
secrets:
SONATYPE_NEXUS_USERNAME: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
SONATYPE_NEXUS_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
ANDROID_SIGN_KEY: ${{ secrets.ANDROID_SIGN_KEY }}
ANDROID_SIGN_PASS: ${{ secrets.ANDROID_SIGN_PASS }}
SCRIBE_GRAPHQL_ACCESS_TOKEN: ${{ secrets.SCRIBE_GRAPHQL_ACCESS_TOKEN }}
linux-bionic-py3_7-clang9-slow-build:
name: linux-bionic-py3.7-clang9-slow
uses: ./.github/workflows/_linux-build.yml
with:
build-environment: linux-bionic-py3.7-clang9-slow
docker-image-name: pytorch-linux-bionic-py3.7-clang9
linux-bionic-py3_7-clang9-slow-test:
name: linux-bionic-py3.7-clang9-slow
uses: ./.github/workflows/_linux-test.yml
needs: linux-bionic-py3_7-clang9-slow-build
with:
build-environment: linux-bionic-py3.7-clang9-slow
docker-image: ${{ needs.linux-bionic-py3_7-clang9-slow-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "slow", shard: 1, num_shards: 1, runner: "linux.2xlarge" },
]}
ios-12-5-1-x86-64:
name: ios-12-5-1-x86-64
uses: ./.github/workflows/_ios-build-test.yml
with:
build-environment: ios-12-5-1-x86-64
ios-platform: SIMULATOR
ios-arch: x86_64
secrets:
IOS_CERT_KEY_2022: ${{ secrets.IOS_CERT_KEY_2022 }}
IOS_CERT_SECRET: ${{ secrets.IOS_CERT_SECRET}}
IOS_DEV_TEAM_ID: ${{ secrets.IOS_DEV_TEAM_ID}}
IOS_SIGN_KEY_2022: ${{ secrets.IOS_SIGN_KEY_2022 }}
ios-12-5-1-x86-64-coreml:
name: ios-12-5-1-x86-64-coreml
uses: ./.github/workflows/_ios-build-test.yml
with:
build-environment: ios-12-5-1-x86-64-coreml
ios-platform: SIMULATOR
ios-arch: x86_64
secrets:
IOS_CERT_KEY_2022: ${{ secrets.IOS_CERT_KEY_2022 }}
IOS_CERT_SECRET: ${{ secrets.IOS_CERT_SECRET}}
IOS_DEV_TEAM_ID: ${{ secrets.IOS_DEV_TEAM_ID}}
IOS_SIGN_KEY_2022: ${{ secrets.IOS_SIGN_KEY_2022 }}
macos-11-py3-x86-64-build:
name: macos-11-py3-x86-64
uses: ./.github/workflows/_mac-build.yml
with:
build-environment: macos-11-py3-x86-64
xcode-version: "13.3.1"
runner-type: macos-12
build-generates-artifacts: true
secrets:
MACOS_SCCACHE_S3_ACCESS_KEY_ID: ${{ secrets.MACOS_SCCACHE_S3_ACCESS_KEY_ID }}
MACOS_SCCACHE_S3_SECRET_ACCESS_KEY: ${{ secrets.MACOS_SCCACHE_S3_SECRET_ACCESS_KEY }}
macos-11-py3-x86-64-test:
name: macos-11-py3-x86-64
uses: ./.github/workflows/_mac-test.yml
needs: macos-11-py3-x86-64-build
with:
build-environment: macos-11-py3-x86-64
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 2, runner: "macos-12" },
{ config: "default", shard: 2, num_shards: 2, runner: "macos-12" },
]}
secrets:
AWS_OSSCI_METRICS_V2_ACCESS_KEY_ID: ${{ secrets.AWS_OSSCI_METRICS_V2_ACCESS_KEY_ID }}
AWS_OSSCI_METRICS_V2_SECRET_ACCESS_KEY: ${{ secrets.AWS_OSSCI_METRICS_V2_SECRET_ACCESS_KEY }}
macos-10-15-py3-lite-interpreter-x86-64:
name: macos-10-15-py3-lite-interpreter-x86-64
uses: ./.github/workflows/_mac-build.yml
with:
build-environment: macos-10-15-py3-lite-interpreter-x86-64
xcode-version: "12"
runner-type: macos-10.15
build-generates-artifacts: false
secrets:
MACOS_SCCACHE_S3_ACCESS_KEY_ID: ${{ secrets.MACOS_SCCACHE_S3_ACCESS_KEY_ID }}
MACOS_SCCACHE_S3_SECRET_ACCESS_KEY: ${{ secrets.MACOS_SCCACHE_S3_SECRET_ACCESS_KEY }}
macos-10-15-py3-arm64:
name: macos-10-15-py3-arm64
uses: ./.github/workflows/_mac-build.yml
with:
build-environment: macos-10-15-py3-arm64
xcode-version: "13.3.1"
runner-type: macos-12
build-generates-artifacts: true
secrets:
MACOS_SCCACHE_S3_ACCESS_KEY_ID: ${{ secrets.MACOS_SCCACHE_S3_ACCESS_KEY_ID }}
MACOS_SCCACHE_S3_SECRET_ACCESS_KEY: ${{ secrets.MACOS_SCCACHE_S3_SECRET_ACCESS_KEY }}
macos-12-3-py38-arm64-test:
name: macos-12.3-py3.8-arm64-test
uses: ./.github/workflows/_mac-test-arm64.yml
needs: macos-10-15-py3-arm64
with:
build-environment: macos-10-15-py3-arm64
# please ensure that this and its corresponding job in pull.yml are in sync
win-vs2019-cuda11_6-py3-build:
name: win-vs2019-cuda11.6-py3
uses: ./.github/workflows/_win-build.yml
with:
build-environment: win-vs2019-cuda11.6-py3
cuda-version: "11.6"
win-vs2019-cuda11_6-py3-test:
name: win-vs2019-cuda11.6-py3
uses: ./.github/workflows/_win-test.yml
needs: win-vs2019-cuda11_6-py3-build
with:
build-environment: win-vs2019-cuda11.6-py3
cuda-version: "11.6"
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 5, runner: "windows.8xlarge.nvidia.gpu" },
{ config: "default", shard: 2, num_shards: 5, runner: "windows.8xlarge.nvidia.gpu" },
{ config: "default", shard: 3, num_shards: 5, runner: "windows.8xlarge.nvidia.gpu" },
{ config: "default", shard: 4, num_shards: 5, runner: "windows.8xlarge.nvidia.gpu" },
{ config: "default", shard: 5, num_shards: 5, runner: "windows.8xlarge.nvidia.gpu" },
{ config: "force_on_cpu", shard: 1, num_shards: 1, runner: "windows.4xlarge" },
]}
# please ensure that this and its corresponding job in pull.yml are in sync
linux-bionic-rocm5_1-py3_7-build:
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
linux-bionic-rocm5_1-py3_7-test:
name: linux-bionic-rocm5.1-py3.7
uses: ./.github/workflows/_rocm-test.yml
needs: linux-bionic-rocm5_1-py3_7-build
with:
build-environment: linux-bionic-rocm5.1-py3.7
docker-image: ${{ needs.linux-bionic-rocm5_1-py3_7-build.outputs.docker-image }}
test-matrix: |
{ include: [
{ config: "default", shard: 1, num_shards: 2, runner: "linux.rocm.gpu" },
{ config: "default", shard: 2, num_shards: 2, runner: "linux.rocm.gpu" },
]}
secrets:
AWS_OSSCI_METRICS_V2_ACCESS_KEY_ID: ${{ secrets.AWS_OSSCI_METRICS_V2_ACCESS_KEY_ID }}
AWS_OSSCI_METRICS_V2_SECRET_ACCESS_KEY: ${{ secrets.AWS_OSSCI_METRICS_V2_SECRET_ACCESS_KEY }}
android-emulator-build-test:
name: android-emulator-build-test
uses: ./.github/workflows/_run_android_tests.yml