mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 12:20:52 +01:00
[ci] delete unused templates
These were confusing people, so get rid of them as they are unused. Pull Request resolved: https://github.com/pytorch/pytorch/pull/74926 Approved by: https://github.com/seemethere
This commit is contained in:
parent
b0d7cd0111
commit
c6102048b8
122
.github/templates/android_ci_full_workflow.yml.j2
vendored
122
.github/templates/android_ci_full_workflow.yml.j2
vendored
|
|
@ -1,122 +0,0 @@
|
|||
{%- extends "linux_ci_workflow.yml.j2" -%}
|
||||
{% import 'common_android.yml.j2' as common_android %}
|
||||
{%- set exclude_test = true -%}
|
||||
{% block name -%}
|
||||
# Template is at: .github/templates/android_ci_full_workflow.yml.j2
|
||||
# Generation script: .github/scripts/generate_ci_workflows.py
|
||||
name: !{{ build_environment }}
|
||||
{%- endblock %}
|
||||
|
||||
{% block build +%}
|
||||
# building and testing in a single job since bazel runs only small subset of tests
|
||||
build-and-test:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
runs-on: !{{ test_runner_type }}
|
||||
env:
|
||||
JOB_BASE_NAME: !{{ build_environment }}-build-and-test
|
||||
NUM_TEST_SHARDS: !{{ num_test_shards }}
|
||||
steps:
|
||||
- name: print labels
|
||||
run: echo "${PR_LABELS}"
|
||||
!{{ common.setup_ec2_linux() }}
|
||||
!{{ common.checkout() }}
|
||||
!{{ common.calculate_docker_image(false) }}
|
||||
- name: Pull Docker image
|
||||
run: |
|
||||
!{{ common.add_retry_to_env() }}
|
||||
retry docker pull "${DOCKER_IMAGE}"
|
||||
- name: Determine shm-size
|
||||
run: |
|
||||
shm_size="1g"
|
||||
case "${BUILD_ENVIRONMENT}" in
|
||||
*cuda*)
|
||||
shm_size="2g"
|
||||
;;
|
||||
*rocm*)
|
||||
shm_size="8g"
|
||||
;;
|
||||
esac
|
||||
echo "SHM_SIZE=${shm_size}" >> "${GITHUB_ENV}"
|
||||
- name: Output disk space left
|
||||
run: |
|
||||
sudo df -H
|
||||
- name: Preserve github env variables for use in docker
|
||||
run: |
|
||||
env | grep '^GITHUB' > "/tmp/github_env_${GITHUB_RUN_ID}"
|
||||
!{{ common.parse_ref() }}
|
||||
!{{ common_android.build_android("pytorch-linux-xenial-py3-clang5-android-ndk-r19c-arm-v7a-build", "arm_v7a") }}
|
||||
!{{ common_android.build_android("pytorch-linux-xenial-py3-clang5-android-ndk-r19c-arm-v8a-build", "arm_v8a") }}
|
||||
!{{ common_android.build_android("pytorch-linux-xenial-py3-clang5-android-ndk-r19c-x86_32-build", "x86_32") }}
|
||||
!{{ common_android.build_android("pytorch-linux-xenial-py3-clang5-android-ndk-r19c-x86_64-build", "x86_64") }}
|
||||
- name: Build final artifact
|
||||
env:
|
||||
BRANCH: ${{ steps.parse-ref.outputs.branch }}
|
||||
run: |
|
||||
set -eux
|
||||
|
||||
# x86_32
|
||||
export id_x86_32
|
||||
id_x86_32=$(docker run -e GRADLE_OFFLINE=1 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -t -d -w /var/lib/jenkins "${DOCKER_IMAGE}-x86_32")
|
||||
|
||||
# Putting everything together
|
||||
docker cp "${GITHUB_WORKSPACE}/build_android_install_arm_v7a" "${id_x86_32}:/var/lib/jenkins/workspace/build_android_install_arm_v7a"
|
||||
docker cp "${GITHUB_WORKSPACE}/build_android_install_x86_64" "${id_x86_32}:/var/lib/jenkins/workspace/build_android_install_x86_64"
|
||||
docker cp "${GITHUB_WORKSPACE}/build_android_install_arm_v8a" "${id_x86_32}:/var/lib/jenkins/workspace/build_android_install_arm_v8a"
|
||||
docker cp "${GITHUB_WORKSPACE}/build_android_install_x86_32" "${id_x86_32}:/var/lib/jenkins/workspace/build_android_install_x86_32"
|
||||
|
||||
# run gradle buildRelease
|
||||
(echo "sudo chown -R jenkins workspace && cd workspace && ./.circleci/scripts/build_android_gradle.sh" | docker exec \
|
||||
-e BUILD_ENVIRONMENT="pytorch-linux-xenial-py3-clang5-android-ndk-r19c-gradle-build" \
|
||||
-e MAX_JOBS="$(nproc --ignore=2)" \
|
||||
-e AWS_DEFAULT_REGION \
|
||||
-e IS_GHA \
|
||||
-e PR_NUMBER \
|
||||
-e SHA1 \
|
||||
-e BRANCH \
|
||||
-e GITHUB_RUN_ID \
|
||||
-e SCCACHE_BUCKET \
|
||||
-e XLA_CLANG_CACHE_S3_BUCKET_NAME \
|
||||
-e CUSTOM_TEST_ARTIFACT_BUILD_DIR \
|
||||
-e SKIP_SCCACHE_INITIALIZATION=1 \
|
||||
-e TORCH_CUDA_ARCH_LIST \
|
||||
-e PR_LABELS \
|
||||
-e http_proxy="!{{ common.squid_proxy }}" -e https_proxy="!{{ common.squid_proxy }}" -e no_proxy="!{{ common.squid_no_proxy }}" \
|
||||
--env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
|
||||
--user jenkins \
|
||||
-u jenkins -i "${id_x86_32}" bash) 2>&1
|
||||
|
||||
mkdir -p "${GITHUB_WORKSPACE}/build_android_artifacts"
|
||||
docker cp "${id_x86_32}:/var/lib/jenkins/workspace/android/artifacts.tgz" "${GITHUB_WORKSPACE}/build_android_artifacts/"
|
||||
echo "id_x86_32=${id_x86_32}" >> "${GITHUB_ENV}"
|
||||
|
||||
!{{ common_android.upload_android_binary_size("prebuilt", "${GITHUB_WORKSPACE}/build_android_artifacts/artifacts.tgz") }}
|
||||
- uses: !{{ common.upload_artifact_s3_action }}
|
||||
name: Store PyTorch Android Build Artifacts on S3
|
||||
with:
|
||||
name: ${{ env.BUILD_ENVIRONMENT }}
|
||||
retention-days: 14
|
||||
if-no-files-found: error
|
||||
path:
|
||||
build_android_artifacts/artifacts.tgz
|
||||
|
||||
- name: Publish android snapshot
|
||||
if: ${{ github.event_name == 'push' && github.event.ref == 'refs/heads/nightly' }}
|
||||
env:
|
||||
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 }}
|
||||
run: |
|
||||
set -eux
|
||||
# shellcheck disable=SC2154
|
||||
(echo "cd workspace && ./.circleci/scripts/publish_android_snapshot.sh" | docker exec \
|
||||
-e BUILD_ENVIRONMENT="pytorch-linux-xenial-py3-clang5-android-ndk-r19c-gradle-publish-snapshot" \
|
||||
-e SONATYPE_NEXUS_USERNAME \
|
||||
-e SONATYPE_NEXUS_PASSWORD \
|
||||
-e ANDROID_SIGN_KEY \
|
||||
-e ANDROID_SIGN_PASS \
|
||||
-e http_proxy="!{{ common.squid_proxy }}" -e https_proxy="!{{ common.squid_proxy }}" -e no_proxy="!{{ common.squid_no_proxy }}" \
|
||||
-u jenkins -i "$id_x86_32" bash) 2>&1
|
||||
|
||||
!{{ common.teardown_ec2_linux() }}
|
||||
{%- endblock %}
|
||||
94
.github/templates/android_ci_workflow.yml.j2
vendored
94
.github/templates/android_ci_workflow.yml.j2
vendored
|
|
@ -1,94 +0,0 @@
|
|||
{%- extends "linux_ci_workflow.yml.j2" -%}
|
||||
{% import 'common_android.yml.j2' as common_android %}
|
||||
{%- set exclude_test = true -%}
|
||||
{% block name -%}
|
||||
# Template is at: .github/templates/android_ci_workflow.yml.j2
|
||||
# Generation script: .github/scripts/generate_ci_workflows.py
|
||||
name: !{{ build_environment }}
|
||||
{%- endblock %}
|
||||
|
||||
{% block build +%}
|
||||
# building and testing in a single job since bazel runs only small subset of tests
|
||||
build-and-test:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
runs-on: !{{ test_runner_type }}
|
||||
env:
|
||||
JOB_BASE_NAME: !{{ build_environment }}-build-and-test
|
||||
NUM_TEST_SHARDS: !{{ num_test_shards }}
|
||||
steps:
|
||||
- name: print labels
|
||||
run: echo "${PR_LABELS}"
|
||||
!{{ common.setup_ec2_linux() }}
|
||||
!{{ common.checkout() }}
|
||||
!{{ common.calculate_docker_image(false) }}
|
||||
- name: Pull Docker image
|
||||
run: |
|
||||
!{{ common.add_retry_to_env() }}
|
||||
retry docker pull "${DOCKER_IMAGE}"
|
||||
- name: Determine shm-size
|
||||
run: |
|
||||
shm_size="1g"
|
||||
case "${BUILD_ENVIRONMENT}" in
|
||||
*cuda*)
|
||||
shm_size="2g"
|
||||
;;
|
||||
*rocm*)
|
||||
shm_size="8g"
|
||||
;;
|
||||
esac
|
||||
echo "SHM_SIZE=${shm_size}" >> "${GITHUB_ENV}"
|
||||
- name: Output disk space left
|
||||
run: |
|
||||
sudo df -H
|
||||
- name: Preserve github env variables for use in docker
|
||||
run: |
|
||||
env | grep '^GITHUB' > "/tmp/github_env_${GITHUB_RUN_ID}"
|
||||
- name: Build
|
||||
run: |
|
||||
set -e
|
||||
# Unlike other gradle jobs, it's not worth building libtorch in a separate CI job and share via docker, because:
|
||||
# 1) Not shareable: it's custom selective build, which is different from default libtorch mobile build;
|
||||
# 2) Not parallelizable by architecture: it only builds libtorch for one architecture;
|
||||
|
||||
echo "DOCKER_IMAGE: ${DOCKER_IMAGE}"
|
||||
time docker pull "${DOCKER_IMAGE}" >/dev/null
|
||||
|
||||
export BUILD_LITE_INTERPRETER
|
||||
BUILD_LITE_INTERPRETER="1"
|
||||
if [[ "${BUILD_ENVIRONMENT}" == *"full-jit" ]]; then
|
||||
BUILD_LITE_INTERPRETER="0"
|
||||
fi
|
||||
|
||||
git submodule sync && git submodule update -q --init --recursive --depth 1 --jobs 0
|
||||
export id
|
||||
id=$(docker run -e BUILD_ENVIRONMENT \
|
||||
-e JOB_BASE_NAME \
|
||||
-e MAX_JOBS="$(nproc --ignore=2)" \
|
||||
-e SCCACHE_BUCKET \
|
||||
-e CUSTOM_TEST_ARTIFACT_BUILD_DIR \
|
||||
-e PR_LABELS \
|
||||
-e SKIP_SCCACHE_INITIALIZATION=1 \
|
||||
-e TORCH_CUDA_ARCH_LIST \
|
||||
-e BUILD_LITE_INTERPRETER \
|
||||
-e http_proxy="!{{ common.squid_proxy }}" -e https_proxy="!{{ common.squid_proxy }}" -e no_proxy="!{{ common.squid_no_proxy }}" \
|
||||
--env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
|
||||
--security-opt seccomp=unconfined \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--tty \
|
||||
--detach \
|
||||
--user jenkins \
|
||||
-v "$(pwd):/var/lib/jenkins/workspace" \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--security-opt seccomp=unconfined \
|
||||
-t -d -w /var/lib/jenkins "${DOCKER_IMAGE}")
|
||||
|
||||
export COMMAND
|
||||
# shellcheck disable=SC2016
|
||||
COMMAND='(echo "sudo chown -R jenkins workspace && cd workspace && ./.circleci/scripts/build_android_gradle.sh" | docker exec -u jenkins -e BUILD_LITE_INTERPRETER -e GRADLE_OFFLINE=1 -i "$id" bash) 2>&1'
|
||||
echo "${COMMAND}" > ./command.sh && bash ./command.sh
|
||||
# Skip docker push as this job is purely for size analysis purpose.
|
||||
# Result binaries are already in `/home/circleci/project/` as it's mounted instead of copied.
|
||||
!{{ common.parse_ref() }}
|
||||
!{{ common_android.upload_android_binary_size("custom-build-single", "") }}
|
||||
!{{ common.teardown_ec2_linux() }}
|
||||
{%- endblock %}
|
||||
116
.github/templates/bazel_ci_workflow.yml.j2
vendored
116
.github/templates/bazel_ci_workflow.yml.j2
vendored
|
|
@ -1,116 +0,0 @@
|
|||
{%- extends "linux_ci_workflow.yml.j2" -%}
|
||||
{% import 'common_android.yml.j2' as common_android %}
|
||||
{%- set exclude_test = true -%}
|
||||
{% block name -%}
|
||||
# Template is at: .github/templates/bazel_ci_workflow.yml.j2
|
||||
# Generation script: .github/scripts/generate_ci_workflows.py
|
||||
name: !{{ build_environment }}
|
||||
{%- endblock %}
|
||||
|
||||
{% block build +%}
|
||||
# building and testing in a single job since bazel runs only small subset of tests
|
||||
build-and-test:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
runs-on: !{{ test_runner_type }}
|
||||
env:
|
||||
JOB_BASE_NAME: !{{ build_environment }}-build-and-test
|
||||
NUM_TEST_SHARDS: !{{ num_test_shards }}
|
||||
GIT_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
|
||||
steps:
|
||||
- name: print labels
|
||||
run: echo "${PR_LABELS}"
|
||||
!{{ common.setup_ec2_linux() }}
|
||||
!{{ common.checkout() }}
|
||||
!{{ common.calculate_docker_image(false) }}
|
||||
- name: Pull Docker image
|
||||
run: |
|
||||
!{{ common.add_retry_to_env() }}
|
||||
retry docker pull "${DOCKER_IMAGE}"
|
||||
- name: Determine shm-size
|
||||
run: |
|
||||
shm_size="1g"
|
||||
case "${BUILD_ENVIRONMENT}" in
|
||||
*cuda*)
|
||||
shm_size="2g"
|
||||
;;
|
||||
*rocm*)
|
||||
shm_size="8g"
|
||||
;;
|
||||
esac
|
||||
echo "SHM_SIZE=${shm_size}" >> "${GITHUB_ENV}"
|
||||
- name: Output disk space left
|
||||
run: |
|
||||
sudo df -H
|
||||
- name: Preserve github env variables for use in docker
|
||||
run: |
|
||||
env | grep '^GITHUB' > "/tmp/github_env_${GITHUB_RUN_ID}"
|
||||
- name: Build
|
||||
run: |
|
||||
# detached container should get cleaned up by teardown_ec2_linux
|
||||
container_name=$(docker run \
|
||||
-e BUILD_ENVIRONMENT \
|
||||
-e JOB_BASE_NAME \
|
||||
-e MAX_JOBS="$(nproc --ignore=2)" \
|
||||
-e SCCACHE_BUCKET \
|
||||
-e CUSTOM_TEST_ARTIFACT_BUILD_DIR \
|
||||
-e PR_LABELS \
|
||||
-e SKIP_SCCACHE_INITIALIZATION=1 \
|
||||
-e TORCH_CUDA_ARCH_LIST \
|
||||
-e http_proxy="!{{ common.squid_proxy }}" -e https_proxy="!{{ common.squid_proxy }}" -e no_proxy="!{{ common.squid_no_proxy }}" \
|
||||
--env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
|
||||
--security-opt seccomp=unconfined \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--tty \
|
||||
--detach \
|
||||
--user jenkins \
|
||||
-v "${GITHUB_WORKSPACE}:/var/lib/jenkins/workspace" \
|
||||
-w /var/lib/jenkins/workspace \
|
||||
"${DOCKER_IMAGE}"
|
||||
)
|
||||
docker exec -t "${container_name}" sh -c 'sudo chown -R jenkins . && sudo chown -R jenkins /dev && .jenkins/pytorch/build.sh'
|
||||
!{{ common.parse_ref() }}
|
||||
!{{ common_android.upload_android_binary_size("", "")}}
|
||||
- name: Test
|
||||
# Time out the test phase after 3.5 hours
|
||||
timeout-minutes: 210
|
||||
run: |
|
||||
# detached container should get cleaned up by teardown_ec2_linux
|
||||
export SHARD_NUMBER=0
|
||||
# TODO: Stop building test binaries as part of the build phase
|
||||
# Make sure we copy test results from bazel-testlogs symlink to
|
||||
# a regular directory ./test/test-reports
|
||||
container_name=$(docker run \
|
||||
-e BUILD_ENVIRONMENT \
|
||||
-e CUSTOM_TEST_ARTIFACT_BUILD_DIR \
|
||||
-e GITHUB_ACTIONS \
|
||||
-e GIT_DEFAULT_BRANCH="$GIT_DEFAULT_BRANCH" \
|
||||
-e IN_CI \
|
||||
-e SHARD_NUMBER \
|
||||
-e NUM_TEST_SHARDS \
|
||||
-e JOB_BASE_NAME \
|
||||
-e MAX_JOBS="$(nproc --ignore=2)" \
|
||||
-e SCCACHE_BUCKET \
|
||||
-e PR_LABELS \
|
||||
-e http_proxy="!{{ common.squid_proxy }}" -e https_proxy="!{{ common.squid_proxy }}" -e no_proxy="!{{ common.squid_no_proxy }}" \
|
||||
--env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
|
||||
--security-opt seccomp=unconfined \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--shm-size="${SHM_SIZE}" \
|
||||
--tty \
|
||||
--detach \
|
||||
--user jenkins \
|
||||
-v "${GITHUB_WORKSPACE}:/var/lib/jenkins/workspace" \
|
||||
-w /var/lib/jenkins/workspace \
|
||||
"${DOCKER_IMAGE}"
|
||||
)
|
||||
docker exec -t "${container_name}" sh -c 'sudo chown -R jenkins . && sudo chown -R jenkins /dev && .jenkins/pytorch/test.sh && cp -Lr ./bazel-testlogs ./test/test-reports'
|
||||
- name: Chown workspace
|
||||
if: always()
|
||||
run: |
|
||||
# Ensure the working directory gets chowned back to the current user
|
||||
docker run --rm -v "$(pwd)":/v -w /v "${ALPINE_IMAGE}" chown -R "$(id -u):$(id -g)" .
|
||||
!{{ common.upload_test_reports(name='bazel') }}
|
||||
!{{ common.upload_downloaded_files(name='bazel') }}
|
||||
!{{ common.upload_test_statistics(build_environment) }}
|
||||
!{{ common.teardown_ec2_linux() }}
|
||||
{%- endblock %}
|
||||
78
.github/templates/common_android.yml.j2
vendored
78
.github/templates/common_android.yml.j2
vendored
|
|
@ -1,78 +0,0 @@
|
|||
{% import 'common.yml.j2' as common %}
|
||||
|
||||
{%- macro upload_android_binary_size(build_type, artifacts) -%}
|
||||
- name: Display and upload binary build size statistics (Click Me)
|
||||
# temporary hack: set CIRCLE_* vars, until we update
|
||||
# tools/stats/print_test_stats.py to natively support GitHub Actions
|
||||
env:
|
||||
AWS_DEFAULT_REGION: us-east-1
|
||||
SCRIBE_GRAPHQL_ACCESS_TOKEN: ${{ secrets.SCRIBE_GRAPHQL_ACCESS_TOKEN }}
|
||||
BRANCH: ${{ steps.parse-ref.outputs.branch }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
SHA1: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
TAG: ${{ steps.parse-ref.outputs.tag }}
|
||||
WORKFLOW_ID: '${{ github.run_id }}'
|
||||
run: |
|
||||
# The artifact file is created inside docker container, which contains the result binaries.
|
||||
# Now unpackage it into the project folder. The subsequent script will scan project folder
|
||||
# to locate result binaries and report their sizes.
|
||||
# If artifact file is not provided it assumes that the project folder has been mounted in
|
||||
# the docker during build and already contains the result binaries, so this step can be skipped.
|
||||
export ARTIFACTS=!{{ artifacts }}
|
||||
if [ -n "${ARTIFACTS}" ]; then
|
||||
tar xf "${ARTIFACTS}" -C "${GITHUB_WORKSPACE}"
|
||||
cd "${GITHUB_WORKSPACE}"
|
||||
fi
|
||||
COMMIT_TIME=$(git log --max-count=1 --format=%ct || echo 0)
|
||||
export COMMIT_TIME
|
||||
ANDROID_BUILD_TYPE=!{{ build_type}}
|
||||
export ANDROID_BUILD_TYPE
|
||||
pip3 install requests==2.26 boto3==1.16.34
|
||||
python3 -m tools.stats.upload_binary_size_to_scuba "android" || exit 0
|
||||
{%- endmacro -%}
|
||||
|
||||
{%- macro build_android(env_name, container_suffix) -%}
|
||||
- name: Build-!{{ container_suffix }}
|
||||
env:
|
||||
BRANCH: ${{ steps.parse-ref.outputs.branch }}
|
||||
run: |
|
||||
# detached container should get cleaned up by teardown_ec2_linux
|
||||
#!/bin/bash -eo pipefail
|
||||
# Pull Docker image and run build
|
||||
time docker pull "${DOCKER_IMAGE}" >/dev/null
|
||||
echo "${DOCKER_IMAGE}"
|
||||
export container_name
|
||||
container_name=$(docker run \
|
||||
-e BUILD_ENVIRONMENT=!{{ env_name }} \
|
||||
-e JOB_BASE_NAME \
|
||||
-e MAX_JOBS="$(nproc --ignore=2)" \
|
||||
-e AWS_DEFAULT_REGION \
|
||||
-e IS_GHA \
|
||||
-e PR_NUMBER \
|
||||
-e SHA1 \
|
||||
-e BRANCH \
|
||||
-e GITHUB_RUN_ID \
|
||||
-e SCCACHE_BUCKET \
|
||||
-e XLA_CLANG_CACHE_S3_BUCKET_NAME \
|
||||
-e CUSTOM_TEST_ARTIFACT_BUILD_DIR \
|
||||
-e SKIP_SCCACHE_INITIALIZATION=1 \
|
||||
-e TORCH_CUDA_ARCH_LIST \
|
||||
-e PR_LABELS \
|
||||
-e http_proxy="!{{ common.squid_proxy }}" -e https_proxy="!{{ common.squid_proxy }}" -e no_proxy="!{{ common.squid_no_proxy }}" \
|
||||
--env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
|
||||
--security-opt seccomp=unconfined \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--tty \
|
||||
--detach \
|
||||
--user jenkins \
|
||||
-w /var/lib/jenkins/workspace \
|
||||
"${DOCKER_IMAGE}"
|
||||
)
|
||||
git submodule sync && git submodule update -q --init --recursive --depth 1 --jobs 0
|
||||
docker cp "${GITHUB_WORKSPACE}/." "${container_name}:/var/lib/jenkins/workspace"
|
||||
(echo "sudo chown -R jenkins . && .jenkins/pytorch/build.sh && find ${BUILD_ROOT} -type f -name "*.a" -or -name "*.o" -delete" | docker exec -u jenkins -i "${container_name}" bash) 2>&1
|
||||
|
||||
# Copy install binaries back
|
||||
mkdir -p "${GITHUB_WORKSPACE}/build_android_install_!{{ container_suffix }}"
|
||||
docker cp "${container_name}:/var/lib/jenkins/workspace/build_android/install" "${GITHUB_WORKSPACE}/build_android_install_!{{ container_suffix }}"
|
||||
{%- endmacro -%}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
{% import 'common.yml.j2' as common %}
|
||||
|
||||
{%- block name -%}
|
||||
# Template is at: .github/templates/docker_builds_ci_workflow.yml.j2
|
||||
# Generation script: .github/scripts/generate_ci_workflows.py
|
||||
name: !{{ build_environment }}
|
||||
{%- endblock %}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
paths:
|
||||
- '.circleci/docker/**'
|
||||
- '.github/workflows/generated-docker-builds.yml'
|
||||
{%- if is_scheduled %}
|
||||
schedule:
|
||||
- cron: !{{ is_scheduled }}
|
||||
{%- endif %}
|
||||
!{{ common.concurrency(build_environment) }}
|
||||
|
||||
env:
|
||||
ALPINE_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/tool/alpine"
|
||||
AWS_DEFAULT_REGION: us-east-1
|
||||
|
||||
jobs:
|
||||
{% block docker_build +%}
|
||||
docker-build:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
runs-on: linux.2xlarge
|
||||
timeout-minutes: !{{ common.timeout_minutes }}
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
{%- for docker_image in docker_images %}
|
||||
- docker_image_base: '!{{ docker_image }}'
|
||||
docker_image_short_name: '!{{ docker_image.split('/')[-1] }}'
|
||||
{%- endfor %}
|
||||
env:
|
||||
DOCKER_IMAGE_BASE: '${{ matrix.docker_image_base }}'
|
||||
name: docker-build (${{ matrix.docker_image_short_name }})
|
||||
steps:
|
||||
!{{ common.setup_ec2_linux() }}
|
||||
!{{ common.checkout() }}
|
||||
!{{ common.calculate_docker_image(true) }}
|
||||
- name: Pull Docker image
|
||||
run: |
|
||||
!{{ common.add_retry_to_env() }}
|
||||
retry docker pull "${DOCKER_IMAGE}"
|
||||
!{{ common.parse_ref() }}
|
||||
!{{ common.teardown_ec2_linux() }}
|
||||
- name: Hold runner for 2 hours or until ssh sessions have drained
|
||||
# Always hold for active ssh sessions
|
||||
if: always()
|
||||
run: .github/scripts/wait_for_ssh_to_drain.sh
|
||||
- name: Clean up docker images
|
||||
if: always()
|
||||
run: |
|
||||
# Prune all of the docker images
|
||||
docker system prune -af
|
||||
{%- endblock %}
|
||||
184
.github/templates/ios_ci_workflow.yml.j2
vendored
184
.github/templates/ios_ci_workflow.yml.j2
vendored
|
|
@ -1,184 +0,0 @@
|
|||
{% import 'common.yml.j2' as common %}
|
||||
|
||||
{%- block name -%}
|
||||
# Template is at: .github/templates/ios_ci_workflow.yml.j2
|
||||
# Generation script: .github/scripts/generate_ci_workflows.py
|
||||
name: !{{ build_environment }}
|
||||
{%- endblock %}
|
||||
|
||||
on:
|
||||
{%- if is_default %}
|
||||
pull_request:
|
||||
{%- endif %}
|
||||
{%- if is_scheduled %}
|
||||
schedule:
|
||||
- cron: !{{ is_scheduled }}
|
||||
{%- endif %}
|
||||
push:
|
||||
{%- if not is_scheduled %}
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
- release/*
|
||||
{%- endif %}
|
||||
{%- for label in ciflow_config.labels | sort %}
|
||||
{%- if loop.first %}
|
||||
tags:
|
||||
{%- endif %}
|
||||
{%- if label != "ciflow/default" %}
|
||||
- '!{{ label }}/*'
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
BUILD_ENVIRONMENT: !{{ build_environment }}
|
||||
IN_CI: 1
|
||||
IS_GHA: 1
|
||||
IOS_PLATFORM: !{{ ios_platform }}
|
||||
IOS_ARCH: !{{ ios_arch }}
|
||||
!{{ common.set_xcode_version(xcode_version) }}
|
||||
|
||||
jobs:
|
||||
{% block build +%}
|
||||
build:
|
||||
# NOTE: These builds will not run successfully without running on `pytorch/pytorch` due to the limitations
|
||||
# of accessing secrets from forked pull requests and IOS' dependency on secrets for their build/test
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
runs-on: macos-10.15
|
||||
timeout-minutes: !{{ common.timeout_minutes }}
|
||||
env:
|
||||
JOB_BASE_NAME: !{{ build_environment }}-build
|
||||
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 }}
|
||||
PR_LABELS: ${{ toJson(github.event.pull_request.labels.*.name) }}
|
||||
steps:
|
||||
- name: print labels
|
||||
run: echo "${PR_LABELS}"
|
||||
!{{ common.checkout() }}
|
||||
- name: Populate CI build options
|
||||
run: |
|
||||
# Most builds use the lite interpreter, if certain builds shouldn't
|
||||
# build the lite interpreter this env variable should get over-written
|
||||
# in the following case statement
|
||||
echo "BUILD_LITE_INTERPRETER=1" >> "${GITHUB_ENV}"
|
||||
|
||||
case ${BUILD_ENVIRONMENT} in
|
||||
*metal*)
|
||||
echo "USE_PYTORCH_METAL=1" >> "${GITHUB_ENV}"
|
||||
;;
|
||||
*full_jit*)
|
||||
echo "BUILD_LITE_INTERPRETER=0" >> "${GITHUB_ENV}"
|
||||
;;
|
||||
*custom*)
|
||||
echo "SELECTED_OP_LIST=${GITHUB_WORKSPACE}/ios/TestApp/custom_build/mobilenetv2.yaml" >> "${GITHUB_ENV}"
|
||||
;;
|
||||
*coreml*)
|
||||
echo "USE_COREML_DELEGATE=1" >> "${GITHUB_ENV}"
|
||||
;;
|
||||
esac
|
||||
- name: Install brew dependencies
|
||||
run: |
|
||||
# Install dependencies
|
||||
brew install libtool
|
||||
- name: Install conda and dependencies
|
||||
run: |
|
||||
# Install conda, setup-miniconda messes with the path that messes with the ruby stuff we do later on
|
||||
curl --retry 3 -o "${RUNNER_TEMP}/conda.sh" https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||
chmod +x "${RUNNER_TEMP}/conda.sh"
|
||||
/bin/bash "${RUNNER_TEMP}/conda.sh" -b -p "${RUNNER_TEMP}/anaconda"
|
||||
echo "${RUNNER_TEMP}/anaconda/bin" >> "${GITHUB_PATH}"
|
||||
# shellcheck disable=SC1091
|
||||
source "${RUNNER_TEMP}/anaconda/bin/activate"
|
||||
conda install -y \
|
||||
cffi \
|
||||
cmake \
|
||||
mkl \
|
||||
mkl-include \
|
||||
ninja \
|
||||
numpy \
|
||||
pyyaml \
|
||||
requests \
|
||||
setuptools \
|
||||
typing_extensions
|
||||
- name: Run Fastlane
|
||||
run: |
|
||||
set -x
|
||||
cd ios/TestApp
|
||||
# install fastlane
|
||||
sudo gem install bundler && bundle install
|
||||
# install certificates
|
||||
echo "${IOS_CERT_KEY_2022}" >> cert.txt
|
||||
base64 --decode cert.txt -o Certificates.p12
|
||||
rm cert.txt
|
||||
bundle exec fastlane install_root_cert
|
||||
bundle exec fastlane install_dev_cert
|
||||
# install the provisioning profile
|
||||
PROFILE=PyTorch_CI_2022.mobileprovision
|
||||
PROVISIONING_PROFILES=~/Library/MobileDevice/Provisioning\ Profiles
|
||||
mkdir -pv "${PROVISIONING_PROFILES}"
|
||||
cd "${PROVISIONING_PROFILES}"
|
||||
echo "${IOS_SIGN_KEY_2022}" >> cert.txt
|
||||
base64 --decode cert.txt -o ${PROFILE}
|
||||
rm cert.txt
|
||||
- name: Build
|
||||
run: |
|
||||
# shellcheck disable=SC1091
|
||||
source "${RUNNER_TEMP}/anaconda/bin/activate"
|
||||
export TCLLIBPATH="/usr/local/lib"
|
||||
python -VV
|
||||
export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname "$(which conda)")/../"}
|
||||
scripts/build_ios.sh
|
||||
- name: Run Build Test
|
||||
run: |
|
||||
PROFILE=PyTorch_CI_2022
|
||||
# run the ruby build script
|
||||
if ! [ -x "$(command -v xcodebuild)" ]; then
|
||||
echo 'Error: xcodebuild is not installed.'
|
||||
exit 1
|
||||
fi
|
||||
if [ "${IOS_PLATFORM}" != "SIMULATOR" ]; then
|
||||
ruby scripts/xcode_build.rb -i build_ios/install -x ios/TestApp/TestApp.xcodeproj -p "${IOS_PLATFORM}" -c "${PROFILE}" -t "${IOS_DEV_TEAM_ID}"
|
||||
else
|
||||
ruby scripts/xcode_build.rb -i build_ios/install -x ios/TestApp/TestApp.xcodeproj -p "${IOS_PLATFORM}"
|
||||
fi
|
||||
{%- if ios_platform == "SIMULATOR" %}
|
||||
- name: Run Simulator Tests
|
||||
run: |
|
||||
# shellcheck disable=SC1091
|
||||
source "${RUNNER_TEMP}/anaconda/bin/activate"
|
||||
pip3 install --pre torch torchvision torchaudio -f https://download.pytorch.org/whl/nightly/cpu/torch_nightly.html
|
||||
# generate models for differnet backends
|
||||
cd "${GITHUB_WORKSPACE}/ios/TestApp/benchmark"
|
||||
mkdir -p ../models
|
||||
if [ "${USE_COREML_DELEGATE}" == 1 ]; then
|
||||
pip install coremltools==5.0b5
|
||||
pip install six==1.16.0
|
||||
python coreml_backend.py
|
||||
else
|
||||
python trace_model.py
|
||||
fi
|
||||
if [ "${BUILD_LITE_INTERPRETER}" == 1 ]; then
|
||||
echo "Setting up the TestApp for LiteInterpreter"
|
||||
ruby setup.rb --lite 1
|
||||
else
|
||||
echo "Setting up the TestApp for Full JIT"
|
||||
ruby setup.rb
|
||||
fi
|
||||
cd "${GITHUB_WORKSPACE}/ios/TestApp"
|
||||
instruments -s -devices
|
||||
if [ "${BUILD_LITE_INTERPRETER}" == 1 ]; then
|
||||
if [ "${USE_COREML_DELEGATE}" == 1 ]; then
|
||||
fastlane scan --only_testing TestAppTests/TestAppTests/testCoreML
|
||||
else
|
||||
fastlane scan --only_testing TestAppTests/TestAppTests/testLiteInterpreter
|
||||
fi
|
||||
else
|
||||
fastlane scan --only_testing TestAppTests/TestAppTests/testFullJIT
|
||||
fi
|
||||
{%- endif -%}
|
||||
{% endblock +%}
|
||||
|
||||
!{{ common.concurrency(build_environment) }}
|
||||
422
.github/templates/linux_ci_workflow.yml.j2
vendored
422
.github/templates/linux_ci_workflow.yml.j2
vendored
|
|
@ -1,422 +0,0 @@
|
|||
{% import 'common.yml.j2' as common %}
|
||||
|
||||
{%- block name -%}
|
||||
# Template is at: .github/templates/linux_ci_workflow.yml.j2
|
||||
# Generation script: .github/scripts/generate_ci_workflows.py
|
||||
name: !{{ build_environment }}
|
||||
{%- endblock %}
|
||||
|
||||
!{{ common.gen_dispatch_rules(on_pull_request, is_scheduled, ciflow_config.labels, branches, enable_doc_jobs) }}
|
||||
|
||||
env:
|
||||
BUILD_ENVIRONMENT: !{{ build_environment }}
|
||||
DOCKER_IMAGE_BASE: !{{ docker_image_base }}
|
||||
SCCACHE_BUCKET: ossci-compiler-cache-circleci-v2
|
||||
XLA_CLANG_CACHE_S3_BUCKET_NAME: ossci-compiler-clang-cache-circleci-xla
|
||||
TORCH_CUDA_ARCH_LIST: 5.2
|
||||
IN_CI: 1
|
||||
IS_GHA: 1
|
||||
# This is used for the phase of adding wheel tests only, will be removed once completed
|
||||
IN_WHEEL_TEST: 1
|
||||
# Used for custom_opertor, jit_hooks, custom_backend, see .jenkins/pytorch/build.sh
|
||||
CUSTOM_TEST_ARTIFACT_BUILD_DIR: build/custom_test_artifacts
|
||||
ALPINE_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/tool/alpine"
|
||||
PR_LABELS: ${{ toJson(github.event.pull_request.labels.*.name) }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
AWS_DEFAULT_REGION: us-east-1
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
SHA1: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
PYTORCH_RETRY_TEST_CASES: 1
|
||||
{%- if enable_xla_test == 1 %}
|
||||
# This is used for XLA tests only
|
||||
XLA_CUDA: 0
|
||||
XLA_IMAGE_TAG: v0.2
|
||||
{%- endif %}
|
||||
{%- if build_with_debug %}
|
||||
DEBUG: 1
|
||||
{%- endif %}
|
||||
!{{ common.concurrency(build_environment) }}
|
||||
|
||||
jobs:
|
||||
{% block build +%}
|
||||
build:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
runs-on: linux.2xlarge
|
||||
timeout-minutes: !{{ common.timeout_minutes }}
|
||||
env:
|
||||
JOB_BASE_NAME: !{{ build_environment }}-build
|
||||
outputs:
|
||||
docker_image: ${{ steps.calculate-tag.outputs.docker_image }}
|
||||
steps:
|
||||
- name: print labels
|
||||
run: echo "${PR_LABELS}"
|
||||
!{{ common.setup_ec2_linux() }}
|
||||
!{{ common.checkout() }}
|
||||
{%- if enable_xla_test == 1 %}
|
||||
- name: Calculate docker image tag
|
||||
id: calculate-tag
|
||||
run: |
|
||||
echo "XLA workflow uses pre-built test image at ${XLA_IMAGE_TAG}"
|
||||
DOCKER_TAG=$(git rev-parse HEAD:.circleci/docker)
|
||||
echo "DOCKER_TAG=${DOCKER_TAG}" >> "${GITHUB_ENV}"
|
||||
echo "DOCKER_IMAGE=${DOCKER_IMAGE_BASE}:${XLA_IMAGE_TAG}" >> "${GITHUB_ENV}"
|
||||
echo "::set-output name=docker_tag::${DOCKER_TAG}"
|
||||
echo "::set-output name=docker_image::${DOCKER_IMAGE_BASE}:${XLA_IMAGE_TAG}"
|
||||
{%- else %}
|
||||
!{{ common.calculate_docker_image(false) }}
|
||||
{%- endif %}
|
||||
- name: Pull Docker image
|
||||
run: |
|
||||
!{{ common.add_retry_to_env() }}
|
||||
retry docker pull "${DOCKER_IMAGE}"
|
||||
!{{ common.parse_ref() }}
|
||||
- name: Build
|
||||
env:
|
||||
BRANCH: ${{ steps.parse-ref.outputs.branch }}
|
||||
run: |
|
||||
# detached container should get cleaned up by teardown_ec2_linux
|
||||
container_name=$(docker run \
|
||||
-e BUILD_ENVIRONMENT \
|
||||
-e JOB_BASE_NAME \
|
||||
-e MAX_JOBS="$(nproc --ignore=2)" \
|
||||
-e AWS_DEFAULT_REGION \
|
||||
-e IS_GHA \
|
||||
-e PR_NUMBER \
|
||||
-e SHA1 \
|
||||
-e BRANCH \
|
||||
-e GITHUB_RUN_ID \
|
||||
-e SCCACHE_BUCKET \
|
||||
{%- if enable_xla_test == 1 %}
|
||||
-e XLA_CUDA \
|
||||
{%- endif %}
|
||||
-e XLA_CLANG_CACHE_S3_BUCKET_NAME \
|
||||
-e CUSTOM_TEST_ARTIFACT_BUILD_DIR \
|
||||
-e SKIP_SCCACHE_INITIALIZATION=1 \
|
||||
-e TORCH_CUDA_ARCH_LIST \
|
||||
-e PR_LABELS \
|
||||
-e http_proxy="!{{ common.squid_proxy }}" -e https_proxy="!{{ common.squid_proxy }}" -e no_proxy="!{{ common.squid_no_proxy }}" \
|
||||
--env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
|
||||
--security-opt seccomp=unconfined \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--tty \
|
||||
--detach \
|
||||
--user jenkins \
|
||||
-v "${GITHUB_WORKSPACE}:/var/lib/jenkins/workspace" \
|
||||
-w /var/lib/jenkins/workspace \
|
||||
"${DOCKER_IMAGE}"
|
||||
)
|
||||
docker exec -t "${container_name}" sh -c 'sudo chown -R jenkins . && .jenkins/pytorch/build.sh'
|
||||
- name: Display and upload binary build size statistics (Click Me)
|
||||
# temporary hack: set CIRCLE_* vars, until we update
|
||||
# tools/stats/print_test_stats.py to natively support GitHub Actions
|
||||
env:
|
||||
SCRIBE_GRAPHQL_ACCESS_TOKEN: ${{ secrets.SCRIBE_GRAPHQL_ACCESS_TOKEN }}
|
||||
BRANCH: ${{ steps.parse-ref.outputs.branch }}
|
||||
TAG: ${{ steps.parse-ref.outputs.tag }}
|
||||
WORKFLOW_ID: '${{ github.run_id }}'
|
||||
run: |
|
||||
COMMIT_TIME=$(git log --max-count=1 --format=%ct || echo 0)
|
||||
export COMMIT_TIME
|
||||
pip3 install requests==2.26 boto3==1.16.34
|
||||
python3 -m tools.stats.upload_binary_size_to_scuba || exit 0
|
||||
- name: Chown workspace
|
||||
run: |
|
||||
# Ensure the working directory gets chowned back to the current user
|
||||
docker run --rm -v "$(pwd)":/v -w /v "${ALPINE_IMAGE}" chown -R "$(id -u):$(id -g)" .
|
||||
{%- if build_generates_artifacts %}
|
||||
- name: Archive artifacts into zip
|
||||
run: |
|
||||
zip -1 -r artifacts.zip dist/ build/custom_test_artifacts build/lib build/bin .pytorch-test-times.json
|
||||
- uses: !{{ common.upload_artifact_s3_action }}
|
||||
name: Store PyTorch Build Artifacts on S3
|
||||
with:
|
||||
name: ${{ env.BUILD_ENVIRONMENT }}
|
||||
retention-days: 14
|
||||
if-no-files-found: error
|
||||
path:
|
||||
artifacts.zip
|
||||
{%- endif %}
|
||||
!{{ common.teardown_ec2_linux() }}
|
||||
- name: Hold runner for 2 hours or until ssh sessions have drained
|
||||
# Always hold for active ssh sessions
|
||||
if: always()
|
||||
run: .github/scripts/wait_for_ssh_to_drain.sh
|
||||
- name: Clean up docker images
|
||||
if: always()
|
||||
run: |
|
||||
# Prune all of the docker images
|
||||
docker system prune -af
|
||||
{%- endblock %}
|
||||
{%- if not exclude_test %}
|
||||
{% block test +%}
|
||||
{%- for test_job in test_jobs %}
|
||||
!{{ test_job.id }}:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
name: !{{ test_job.name }}
|
||||
needs: build
|
||||
runs-on: !{{ test_job.runner }}
|
||||
timeout-minutes: !{{ timeout_after + 30 }}
|
||||
env:
|
||||
GIT_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
|
||||
DOCKER_IMAGE: ${{ needs.build.outputs.docker_image }}
|
||||
JOB_BASE_NAME: !{{ build_environment }}-test
|
||||
TEST_CONFIG: !{{ test_job.config }}
|
||||
SHARD_NUMBER: !{{ test_job.shard }}
|
||||
NUM_TEST_SHARDS: !{{ test_job.num_shards }}
|
||||
PR_BODY: ${{ github.event.pull_request.body }}
|
||||
steps:
|
||||
{%- if 'rocm' in test_runner_type %}
|
||||
!{{ common.setup_rocm_linux() }}
|
||||
{%- else %}
|
||||
!{{ common.setup_ec2_linux() }}
|
||||
{%- endif %}
|
||||
!{{ common.checkout() }}
|
||||
- name: Pull Docker image
|
||||
run: |
|
||||
!{{ common.add_retry_to_env() }}
|
||||
retry docker pull "${DOCKER_IMAGE}"
|
||||
{%- if 'rocm' in test_runner_type and "nogpu" not in test_job.config %}
|
||||
- name: ROCm set GPU_FLAG
|
||||
run: |
|
||||
echo "GPU_FLAG=--device=/dev/mem --device=/dev/kfd --device=/dev/dri --group-add video --group-add daemon" >> "${GITHUB_ENV}"
|
||||
{%- elif "cuda" in build_environment and "nogpu" not in test_job.config %}
|
||||
- uses: nick-fields/retry@71062288b76e2b6214ebde0e673ce0de1755740a
|
||||
name: Install nvidia driver, nvidia-docker runtime, set GPU_FLAG
|
||||
with:
|
||||
timeout_minutes: 10
|
||||
max_attempts: 3
|
||||
command: |
|
||||
set -ex
|
||||
bash .github/scripts/install_nvidia_utils_linux.sh
|
||||
echo "GPU_FLAG=--gpus all" >> "${GITHUB_ENV}"
|
||||
{%- endif %}
|
||||
- name: Determine shm-size
|
||||
run: |
|
||||
shm_size="1g"
|
||||
case "${BUILD_ENVIRONMENT}" in
|
||||
*cuda*)
|
||||
shm_size="2g"
|
||||
;;
|
||||
*rocm*)
|
||||
shm_size="8g"
|
||||
;;
|
||||
esac
|
||||
echo "SHM_SIZE=${shm_size}" >> "${GITHUB_ENV}"
|
||||
- uses: seemethere/download-artifact-s3@0504774707cbc8603d7dca922e8026eb8bf3b47b
|
||||
name: Download PyTorch Build Artifacts
|
||||
with:
|
||||
name: ${{ env.BUILD_ENVIRONMENT }}
|
||||
- name: Unzip artifacts
|
||||
run: |
|
||||
unzip -o artifacts.zip
|
||||
- name: Output disk space left
|
||||
run: |
|
||||
{%- if 'rocm' in test_runner_type %}
|
||||
df -H
|
||||
{%- else %}
|
||||
sudo df -H
|
||||
{%- endif %}
|
||||
!{{ common.parse_ref() }}
|
||||
- name: Test
|
||||
env:
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
BRANCH: ${{ steps.parse-ref.outputs.branch }}
|
||||
# Time out the test phase after !{{ timeout_after }} minutes
|
||||
timeout-minutes: !{{ timeout_after }}
|
||||
run: |
|
||||
set -x
|
||||
|
||||
if [[ $TEST_CONFIG == 'multigpu' ]]; then
|
||||
TEST_COMMAND=.jenkins/pytorch/multigpu-test.sh
|
||||
elif [[ $BUILD_ENVIRONMENT == *onnx* ]]; then
|
||||
TEST_COMMAND=.jenkins/caffe2/test.sh
|
||||
else
|
||||
TEST_COMMAND=.jenkins/pytorch/test.sh
|
||||
fi
|
||||
{%- if 'rocm' not in test_runner_type %}
|
||||
PROXY_ENV=
|
||||
# NOTE: XLA multiprocessing tests appear to have issues with squid proxy, going to disable for now
|
||||
# We should investigate whether or not there's a list of hostnames we can add to no_proxy to
|
||||
# make it so that we shouldn't have to fully disable squid for XLA tests
|
||||
if [[ $TEST_CONFIG != 'xla' ]]; then
|
||||
# shellcheck disable=SC2089
|
||||
PROXY_ENV="-e http_proxy=!{{ common.squid_proxy }} -e https_proxy=!{{ common.squid_proxy }} -e no_proxy=!{{ common.squid_no_proxy }}"
|
||||
fi
|
||||
{%- endif %}
|
||||
# detached container should get cleaned up by teardown_ec2_linux
|
||||
# TODO: Stop building test binaries as part of the build phase
|
||||
# Used for GPU_FLAG since that doesn't play nice
|
||||
# shellcheck disable=SC2086,SC2090
|
||||
container_name=$(docker run \
|
||||
${GPU_FLAG:-} \
|
||||
-e BUILD_ENVIRONMENT \
|
||||
-e PR_NUMBER \
|
||||
-e CUSTOM_TEST_ARTIFACT_BUILD_DIR \
|
||||
-e GITHUB_ACTIONS \
|
||||
-e IN_CI \
|
||||
-e IS_GHA \
|
||||
-e BRANCH \
|
||||
-e SHA1 \
|
||||
-e AWS_DEFAULT_REGION \
|
||||
-e IN_WHEEL_TEST \
|
||||
-e SHARD_NUMBER \
|
||||
-e JOB_BASE_NAME \
|
||||
-e TEST_CONFIG \
|
||||
-e NUM_TEST_SHARDS \
|
||||
-e PR_BODY \
|
||||
-e PYTORCH_RETRY_TEST_CASES \
|
||||
-e PR_LABELS \
|
||||
-e MAX_JOBS="$(nproc --ignore=2)" \
|
||||
-e SCCACHE_BUCKET \
|
||||
{%- if enable_xla_test == 1 %}
|
||||
-e XLA_CUDA \
|
||||
{%- endif %}
|
||||
-e XLA_CLANG_CACHE_S3_BUCKET_NAME \
|
||||
{%- if 'rocm' not in test_runner_type %}
|
||||
${PROXY_ENV} \
|
||||
{%- endif %}
|
||||
--env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
|
||||
--ulimit stack=10485760:83886080 \
|
||||
--security-opt seccomp=unconfined \
|
||||
--cap-add=SYS_PTRACE \
|
||||
{%- if 'rocm' not in test_runner_type %}
|
||||
--ipc=host \
|
||||
{%- endif %}
|
||||
--shm-size="${SHM_SIZE}" \
|
||||
--tty \
|
||||
--detach \
|
||||
--name="${container_name}" \
|
||||
--user jenkins \
|
||||
-v "${GITHUB_WORKSPACE}:/var/lib/jenkins/workspace" \
|
||||
-w /var/lib/jenkins/workspace \
|
||||
"${DOCKER_IMAGE}"
|
||||
)
|
||||
{%- if 'rocm' in test_runner_type %}
|
||||
# jenkins user does not have write permission to mounted workspace; work-around by copying within container to jenkins home
|
||||
docker exec -t "${container_name}" sh -c "cd .. && cp -R workspace pytorch && cd pytorch && pip install dist/*.whl && ${TEST_COMMAND}"
|
||||
# copy test results back to the mounted workspace, needed sudo, resulting permissions were correct
|
||||
docker exec -t "${container_name}" sh -c "cd ../pytorch && sudo cp -R test/test-reports ../workspace/test"
|
||||
{%- else %}
|
||||
docker exec -t "${container_name}" sh -c "sudo chown -R jenkins . && pip install dist/*.whl && ${TEST_COMMAND}"
|
||||
{%- endif %}
|
||||
{%- if 'rocm' not in test_runner_type %}
|
||||
- name: Chown workspace
|
||||
if: always()
|
||||
run: |
|
||||
# Ensure the working directory gets chowned back to the current user
|
||||
docker run --rm -v "$(pwd)":/v -w /v "${ALPINE_IMAGE}" chown -R "$(id -u):$(id -g)" .
|
||||
{%- endif %}
|
||||
!{{ common.render_test_results() }}
|
||||
{%- if 'rocm' in test_runner_type %}
|
||||
!{{ common.upload_downloaded_files(name='linux', use_s3=False, config=test_job.config, shard=test_job.shard, num_shards=test_job.num_shards, runner=test_job.runner) }}
|
||||
!{{ common.upload_test_reports(name='linux', artifact_name="test-reports", use_s3=False, config=test_job.config, shard=test_job.shard, num_shards=test_job.num_shards, runner=test_job.runner) }}
|
||||
{%- else %}
|
||||
!{{ common.upload_downloaded_files(name='linux', config=test_job.config, shard=test_job.shard, num_shards=test_job.num_shards, runner=test_job.runner) }}
|
||||
!{{ common.upload_test_reports(name='linux', config=test_job.config, shard=test_job.shard, num_shards=test_job.num_shards, runner=test_job.runner) }}
|
||||
!{{ common.upload_cores(config=test_job.config, shard=test_job.shard) }}
|
||||
{%- endif %}
|
||||
!{{ common.upload_test_statistics(build_environment) }}
|
||||
{%- if 'rocm' in test_runner_type %}
|
||||
!{{ common.teardown_rocm_linux() }}
|
||||
{%- else %}
|
||||
!{{ common.teardown_ec2_linux() }}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{% endblock %}
|
||||
{%- endif -%}
|
||||
{%- if enable_doc_jobs %}
|
||||
build-docs:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
runs-on: linux.2xlarge
|
||||
timeout-minutes: !{{ common.timeout_minutes }}
|
||||
strategy:
|
||||
matrix:
|
||||
docs_type: [cpp, python]
|
||||
needs: [build]
|
||||
env:
|
||||
DOCKER_IMAGE: ${{ needs.build.outputs.docker_image }}
|
||||
DOCS_TYPE: ${{ matrix.docs_type }}
|
||||
WITH_PUSH: ${{ github.event_name == 'schedule' || startsWith(github.event.ref, 'refs/tags/v') }}
|
||||
steps:
|
||||
!{{ common.setup_ec2_linux() }}
|
||||
!{{ common.checkout() }}
|
||||
- name: Pull Docker image
|
||||
run: |
|
||||
!{{ common.add_retry_to_env() }}
|
||||
retry docker pull "${DOCKER_IMAGE}"
|
||||
- uses: seemethere/download-artifact-s3@0504774707cbc8603d7dca922e8026eb8bf3b47b
|
||||
name: Download PyTorch Build Artifacts
|
||||
with:
|
||||
name: ${{ env.BUILD_ENVIRONMENT }}
|
||||
- name: Unzip artifacts
|
||||
run: |
|
||||
unzip -o artifacts.zip
|
||||
{%- if is_scheduled %}
|
||||
- name: Generate netrc (only for docs-push)
|
||||
if: ${{ github.event_name == 'schedule' || startsWith(github.event.ref, 'refs/tags/v') }}
|
||||
env:
|
||||
GITHUB_PYTORCHBOT_TOKEN: ${{ secrets.GH_PYTORCHBOT_TOKEN }}
|
||||
run: |
|
||||
# set credentials for https pushing
|
||||
echo "machine github.com" > "${RUNNER_TEMP}/.netrc"
|
||||
echo "login pytorchbot" >> "${RUNNER_TEMP}/.netrc"
|
||||
echo "password ${GITHUB_PYTORCHBOT_TOKEN}" >> "${RUNNER_TEMP}/.netrc"
|
||||
{%- endif %}
|
||||
- name: Build ${{ matrix.docs_type }} docs
|
||||
run: |
|
||||
set -ex
|
||||
time docker pull "${DOCKER_IMAGE}" > /dev/null
|
||||
# Convert refs/tags/v1.12.0rc3 into 1.12
|
||||
if [[ "${GITHUB_REF}" =~ ^refs/tags/v([0-9]+\.[0-9]+)\.* ]]; then
|
||||
target="${BASH_REMATCH[1]}"
|
||||
else
|
||||
target="master"
|
||||
fi
|
||||
# detached container should get cleaned up by teardown_ec2_linux
|
||||
container_name=$(docker run \
|
||||
-e BUILD_ENVIRONMENT \
|
||||
-e CUSTOM_TEST_ARTIFACT_BUILD_DIR \
|
||||
-e IN_CI \
|
||||
-e MAX_JOBS="$(nproc --ignore=2)" \
|
||||
-e SHA1="$GITHUB_SHA" \
|
||||
-e DOCS_VERSION="${target}" \
|
||||
-e DOCS_TYPE \
|
||||
-e PR_LABELS \
|
||||
-e WITH_PUSH \
|
||||
--env-file="/tmp/github_env_${GITHUB_RUN_ID}" \
|
||||
--security-opt seccomp=unconfined \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--tty \
|
||||
--detach \
|
||||
--user jenkins \
|
||||
{%- if is_scheduled %}
|
||||
-v "${RUNNER_TEMP}/.netrc":/var/lib/jenkins/.netrc \
|
||||
{%- endif %}
|
||||
-v "${GITHUB_WORKSPACE}:/var/lib/jenkins/workspace" \
|
||||
-w /var/lib/jenkins/workspace \
|
||||
"${DOCKER_IMAGE}"
|
||||
)
|
||||
docker exec -t "${container_name}" bash -c "sudo chown -R jenkins . && pip install dist/*.whl && ./.circleci/scripts/${DOCS_TYPE}_doc_push_script.sh"
|
||||
- name: Chown workspace
|
||||
run: |
|
||||
# Ensure the working directory gets chowned back to the current user
|
||||
docker run --rm -v "$(pwd)":/v -w /v "${ALPINE_IMAGE}" chown -R "$(id -u):$(id -g)" .
|
||||
- uses: !{{ common.upload_artifact_s3_action }}
|
||||
name: Upload Python Docs Preview
|
||||
if: ${{ github.event_name == 'pull_request' && matrix.docs_type == 'python' }}
|
||||
with:
|
||||
retention-days: 14
|
||||
s3-bucket: doc-previews
|
||||
if-no-files-found: error
|
||||
path: pytorch.github.io/docs/master/
|
||||
s3-prefix: pytorch/${{ github.event.pull_request.number }}
|
||||
- uses: !{{ common.upload_artifact_s3_action }}
|
||||
name: Upload C++ Docs Preview
|
||||
if: ${{ github.event_name == 'pull_request' && matrix.docs_type == 'cpp' }}
|
||||
with:
|
||||
retention-days: 14
|
||||
if-no-files-found: error
|
||||
s3-bucket: doc-previews
|
||||
path: cppdocs/
|
||||
s3-prefix: pytorch/${{ github.event.pull_request.number }}/cppdocs
|
||||
{%- endif -%}
|
||||
111
.github/templates/macos_ci_workflow.yml.j2
vendored
111
.github/templates/macos_ci_workflow.yml.j2
vendored
|
|
@ -1,111 +0,0 @@
|
|||
{% import 'common.yml.j2' as common %}
|
||||
|
||||
{%- block name -%}
|
||||
# Template is at: .github/templates/macos_ci_workflow.yml.j2
|
||||
# Generation script: .github/scripts/generate_ci_workflows.py
|
||||
name: !{{ build_environment }}
|
||||
{%- endblock %}
|
||||
|
||||
!{{ common.gen_dispatch_rules(is_default, is_scheduled, ciflow_config.labels) }}
|
||||
|
||||
# For setup-miniconda, see https://github.com/conda-incubator/setup-miniconda/issues/179
|
||||
defaults:
|
||||
run:
|
||||
shell: bash -e -l {0}
|
||||
env:
|
||||
BUILD_ENVIRONMENT: !{{ build_environment }}
|
||||
COMPACT_JOB_NAME: !{{ build_environment }}
|
||||
IN_CI: 1
|
||||
IS_GHA: 1
|
||||
PYTORCH_RETRY_TEST_CASES: 1
|
||||
!{{ common.set_xcode_version(xcode_version) }}
|
||||
|
||||
jobs:
|
||||
{% block build +%}
|
||||
build:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
runs-on: !{{ test_runner_type }}
|
||||
env:
|
||||
JOB_BASE_NAME: !{{ build_environment }}
|
||||
# For sccache access (only on non-forked PRs)
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.MACOS_SCCACHE_S3_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.MACOS_SCCACHE_S3_SECRET_ACCESS_KEY }}
|
||||
PR_LABELS: ${{ toJson(github.event.pull_request.labels.*.name) }}
|
||||
steps:
|
||||
- name: print labels
|
||||
run: echo "${PR_LABELS}"
|
||||
!{{ common.checkout() }}
|
||||
!{{ common.setup_miniconda("3.8") }}
|
||||
- name: Install macOS homebrew dependencies
|
||||
run: |
|
||||
# Install dependencies
|
||||
brew install libomp
|
||||
- name: Install sccache (only for non-forked PRs, and pushes to trunk)
|
||||
if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
|
||||
run: |
|
||||
sudo curl --retry 3 https://s3.amazonaws.com/ossci-macos/sccache_v2.15 --output /usr/local/bin/sccache
|
||||
sudo chmod +x /usr/local/bin/sccache
|
||||
echo "SCCACHE_BUCKET=ossci-compiler-cache-circleci-v2" >> "${GITHUB_ENV}"
|
||||
- name: Build
|
||||
run: |
|
||||
echo "CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname "$(which conda)")/../"}" >> "${GITHUB_ENV}"
|
||||
.jenkins/pytorch/macos-build.sh
|
||||
{%- if build_generates_artifacts %}
|
||||
- name: Archive artifacts into zip
|
||||
run: |
|
||||
zip -1 -r artifacts.zip dist/
|
||||
- uses: actions/upload-artifact@v2
|
||||
name: Store PyTorch Build Artifacts on GHA
|
||||
with:
|
||||
name: ${{ env.BUILD_ENVIRONMENT }}
|
||||
retention-days: 14
|
||||
if-no-files-found: error
|
||||
path:
|
||||
artifacts.zip
|
||||
{%- endif %}
|
||||
{% endblock +%}
|
||||
{%- if not exclude_test %}
|
||||
{% block test +%}
|
||||
{%- for test_job in test_jobs %}
|
||||
!{{ test_job.id }}:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
name: !{{ test_job.name }}
|
||||
needs: build
|
||||
runs-on: !{{ test_job.runner }}
|
||||
timeout-minutes: !{{ common.timeout_minutes }}
|
||||
env:
|
||||
GIT_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
|
||||
JOB_BASE_NAME: !{{ build_environment }}-test
|
||||
TEST_CONFIG: !{{ test_job.config }}
|
||||
SHARD_NUMBER: !{{ test_job.shard }}
|
||||
NUM_TEST_SHARDS: !{{ test_job.num_shards }}
|
||||
PR_BODY: ${{ github.event.pull_request.body }}
|
||||
steps:
|
||||
!{{ common.checkout(submodules="false") }}
|
||||
- uses: actions/download-artifact@v2
|
||||
name: Download PyTorch Build Artifacts from GHA
|
||||
with:
|
||||
name: ${{ env.BUILD_ENVIRONMENT }}
|
||||
path: .
|
||||
- name: Unzip artifacts
|
||||
run: |
|
||||
unzip -o artifacts.zip
|
||||
!{{ common.setup_miniconda("3.8") }}
|
||||
- name: Install macOS homebrew dependencies
|
||||
run: |
|
||||
# Install dependencies
|
||||
brew install libomp
|
||||
!{{ common.parse_ref() }}
|
||||
- name: Test
|
||||
run: |
|
||||
python3 -mpip install dist/*.whl
|
||||
.jenkins/pytorch/macos-test.sh
|
||||
!{{ common.render_test_results() }}
|
||||
!{{ common.upload_downloaded_files(name='macos', config=test_job.config, shard=test_job.shard, num_shards=test_job.num_shards, runner=test_job.runner, artifact_name="test-jsons", use_s3=False) }}
|
||||
!{{ common.upload_test_reports("macos", config=test_job.config, shard=test_job.shard, num_shards=test_job.num_shards, runner=test_job.runner, artifact_name="test-reports", use_s3=False) }}
|
||||
!{{ common.upload_test_statistics(build_environment, needs_credentials=True) }}
|
||||
{%- endfor %}
|
||||
{% endblock +%}
|
||||
{%- endif %}
|
||||
|
||||
!{{ common.concurrency(build_environment) }}
|
||||
187
.github/templates/windows_ci_workflow.yml.j2
vendored
187
.github/templates/windows_ci_workflow.yml.j2
vendored
|
|
@ -1,187 +0,0 @@
|
|||
{% import 'common.yml.j2' as common %}
|
||||
|
||||
{%- macro wait_and_kill_ssh() -%}
|
||||
- name: Wait until all sessions have drained
|
||||
shell: powershell
|
||||
if: always()
|
||||
timeout-minutes: 120
|
||||
run: |
|
||||
.github\scripts\wait_for_ssh_to_drain.ps1
|
||||
- name: Kill active ssh sessions if still around (Useful if workflow was cancelled)
|
||||
shell: powershell
|
||||
if: always()
|
||||
run: |
|
||||
.github\scripts\kill_active_ssh_sessions.ps1
|
||||
{%- endmacro -%}
|
||||
|
||||
# Template is at: .github/templates/windows_ci_workflow.yml.j2
|
||||
# Generation script: .github/scripts/generate_ci_workflows.py
|
||||
name: !{{ build_environment }}
|
||||
|
||||
!{{ common.gen_dispatch_rules(on_pull_request, is_scheduled, ciflow_config.labels) }}
|
||||
|
||||
env:
|
||||
BUILD_ENVIRONMENT: !{{ build_environment }}
|
||||
BUILD_WHEEL: 1
|
||||
MAX_JOBS: 8
|
||||
CUDA_VERSION: "!{{ cuda_version }}"
|
||||
IN_CI: 1
|
||||
IS_GHA: 1
|
||||
INSTALL_WINDOWS_SDK: 1
|
||||
PYTHON_VERSION: "3.8"
|
||||
PYTORCH_RETRY_TEST_CASES: 1
|
||||
PR_LABELS: ${{ toJson(github.event.pull_request.labels.*.name) }}
|
||||
SCCACHE_BUCKET: "ossci-compiler-cache"
|
||||
VC_PRODUCT: "BuildTools"
|
||||
VC_VERSION: ""
|
||||
VS_VERSION: "16.8.6"
|
||||
VC_YEAR: "2019"
|
||||
ALPINE_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/tool/alpine"
|
||||
no_proxy: !{{ common.squid_no_proxy }}
|
||||
AWS_DEFAULT_REGION: us-east-1
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
SHA1: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
{%- if build_with_debug %}
|
||||
DEBUG: 1
|
||||
{%- endif %}
|
||||
{%- if cuda_version != "cpu" %}
|
||||
TORCH_CUDA_ARCH_LIST: "7.0"
|
||||
{%- endif %}
|
||||
USE_CUDA: !{{ 1 if cuda_version != "cpu" else 0 }}
|
||||
|
||||
!{{ common.concurrency(build_environment) }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
runs-on: "windows.4xlarge"
|
||||
timeout-minutes: !{{ common.timeout_minutes }}
|
||||
env:
|
||||
JOB_BASE_NAME: !{{ build_environment }}-build
|
||||
http_proxy: "!{{ common. squid_proxy }}"
|
||||
https_proxy: "!{{ common.squid_proxy }}"
|
||||
steps:
|
||||
- name: print labels
|
||||
run: echo "${PR_LABELS}"
|
||||
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||
uses: seemethere/add-github-ssh-key@v1
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
!{{ common.checkout() }}
|
||||
!{{ common.display_ec2_information() }}
|
||||
- name: Install Visual Studio 2019 toolchain
|
||||
shell: powershell
|
||||
run: |
|
||||
.\.circleci\scripts\vs_install.ps1
|
||||
{%- if cuda_version != "cpu" %}
|
||||
- name: Install Cuda
|
||||
shell: bash
|
||||
run: |
|
||||
.circleci/scripts/windows_cuda_install.sh
|
||||
- name: Install Cudnn
|
||||
shell: bash
|
||||
run: |
|
||||
.circleci/scripts/windows_cudnn_install.sh
|
||||
{%- endif %}
|
||||
- uses: actions/setup-python@v2
|
||||
name: Setup Python3
|
||||
with:
|
||||
python-version: '3.x'
|
||||
!{{ common.parse_ref() }}
|
||||
- name: Build
|
||||
shell: bash
|
||||
env:
|
||||
PYTORCH_FINAL_PACKAGE_DIR: /c/${{ github.run_id }}/build-results/
|
||||
BRANCH: ${{ steps.parse-ref.outputs.branch }}
|
||||
run: |
|
||||
.jenkins/pytorch/win-build.sh
|
||||
# Upload to github so that people can click and download artifacts
|
||||
- name: Upload artifacts to s3
|
||||
uses: !{{ common.upload_artifact_s3_action }}
|
||||
with:
|
||||
retention-days: 14
|
||||
if-no-files-found: error
|
||||
name: ${{ env.BUILD_ENVIRONMENT }}
|
||||
path: C:\${{ github.run_id }}\build-results
|
||||
!{{ common.wait_and_kill_ssh_windows() }}
|
||||
- name: Cleanup build-results and workspaces
|
||||
if: always()
|
||||
shell: bash
|
||||
env:
|
||||
PYTORCH_FINAL_PACKAGE_DIR: /c/${{ github.run_id }}/build-results/
|
||||
# Should remove the entirety of pytorch-${{ github.run_id }}
|
||||
run: |
|
||||
rm -rf "${PYTORCH_FINAL_PACKAGE_DIR}"
|
||||
rm -rf ./*
|
||||
|
||||
{%- for test_job in test_jobs %}
|
||||
!{{ test_job.id }}:
|
||||
if: ${{ github.repository_owner == 'pytorch' }}
|
||||
name: !{{ test_job.name }}
|
||||
timeout-minutes: !{{ timeout_after + 30 }}
|
||||
env:
|
||||
JOB_BASE_NAME: !{{ build_environment }}-test
|
||||
SHARD_NUMBER: !{{ test_job.shard }}
|
||||
NUM_TEST_SHARDS: !{{ test_job.num_shards }}
|
||||
TEST_CONFIG: !{{ test_job.config }}
|
||||
http_proxy: "!{{ common.squid_proxy }}"
|
||||
https_proxy: "!{{ common.squid_proxy }}"
|
||||
PR_BODY: ${{ github.event.pull_request.body }}
|
||||
needs: build
|
||||
runs-on: !{{ test_job.runner }}
|
||||
steps:
|
||||
!{{ common.display_ec2_information() }}
|
||||
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)"
|
||||
uses: seemethere/add-github-ssh-key@v1
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
!{{ common.checkout() }}
|
||||
- name: Install Visual Studio 2019 toolchain
|
||||
shell: powershell
|
||||
run: |
|
||||
.\.circleci\scripts\vs_install.ps1
|
||||
{%- if cuda_version != "cpu" and not test_job.config == 'force_on_cpu' %}
|
||||
- name: Install Cuda
|
||||
shell: bash
|
||||
run: |
|
||||
.circleci/scripts/windows_cuda_install.sh
|
||||
- name: Install Cudnn
|
||||
shell: bash
|
||||
run: |
|
||||
.circleci/scripts/windows_cudnn_install.sh
|
||||
{%- endif %}
|
||||
- uses: seemethere/download-artifact-s3@0504774707cbc8603d7dca922e8026eb8bf3b47b
|
||||
name: Download PyTorch Build Artifacts
|
||||
with:
|
||||
name: ${{ env.BUILD_ENVIRONMENT }}
|
||||
path: C:\${{ github.run_id }}\build-results
|
||||
- name: Check build-results folder
|
||||
shell: powershell
|
||||
run: |
|
||||
tree /F C:\$Env:GITHUB_RUN_ID\build-results
|
||||
# Needed for coverage in win-test.sh
|
||||
- uses: actions/setup-python@v2
|
||||
name: Setup Python3
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: Test
|
||||
shell: bash
|
||||
env:
|
||||
PYTORCH_FINAL_PACKAGE_DIR: /c/${{ github.run_id }}/build-results/
|
||||
# Time out the test phase after !{{ timeout_after }} minutes
|
||||
timeout-minutes: !{{ timeout_after }}
|
||||
run: |
|
||||
.jenkins/pytorch/win-test.sh
|
||||
!{{ common.upload_downloaded_files(name='windows', config=test_job.config, shard=test_job.shard, num_shards=test_job.num_shards, runner=test_job.runner) }}
|
||||
!{{ common.upload_test_reports(name='windows', config=test_job.config, shard=test_job.shard, num_shards=test_job.num_shards, runner=test_job.runner) }}
|
||||
!{{ common.render_test_results() }}
|
||||
!{{ common.wait_and_kill_ssh_windows() }}
|
||||
!{{ common.parse_ref() }}
|
||||
!{{ common.upload_test_statistics(build_environment) }}
|
||||
- name: Cleanup workspace
|
||||
if: always()
|
||||
shell: bash
|
||||
# Should remove the entirety of pytorch-${{ github.run_id }}
|
||||
run: |
|
||||
rm -rf ./*
|
||||
{%- endfor %}
|
||||
Loading…
Reference in New Issue
Block a user