periodic-win-vs2019-cuda11.1-py3 #360
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# @generated DO NOT EDIT MANUALLY | |
# Template is at: .github/templates/windows_ci_workflow.yml.j2 | |
# Generation script: .github/scripts/generate_ci_workflows.py | |
name: periodic-win-vs2019-cuda11.1-py3 | |
on: | |
pull_request: | |
types: [unassigned] | |
schedule: | |
- cron: 45 0,4,8,12,16,20 * * * | |
workflow_dispatch: | |
env: | |
BUILD_ENVIRONMENT: periodic-win-vs2019-cuda11.1-py3 | |
BUILD_WHEEL: 1 | |
CUDA_VERSION: "11.1" | |
IN_CI: 1 | |
INSTALL_WINDOWS_SDK: 1 | |
PYTHON_VERSION: "3.8" | |
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: localhost,127.0.0.1,github.com,amazonaws.com,s3.amazonaws.com,169.254.169.254,169.254.170.2,/var/run/docker.sock | |
TORCH_CUDA_ARCH_LIST: "7.0" | |
USE_CUDA: 1 | |
concurrency: | |
group: periodic-win-vs2019-cuda11.1-py3-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }} | |
cancel-in-progress: true | |
jobs: | |
ciflow_should_run: | |
runs-on: ubuntu-18.04 | |
if: ${{ (github.repository == 'pytorch/pytorch') && ((github.event_name != 'pull_request') || (github.event.assignee.login != 'pytorchbot' ) || (github.event.action !='unassigned') || (contains(github.event.pull_request.labels.*.name, 'ciflow/all') || contains(github.event.pull_request.labels.*.name, 'ciflow/cuda') || contains(github.event.pull_request.labels.*.name, 'ciflow/scheduled') || contains(github.event.pull_request.labels.*.name, 'ciflow/win'))) }} | |
steps: | |
- name: noop | |
run: echo running ciflow_should_run | |
build: | |
runs-on: "windows.4xlarge" | |
defaults: | |
run: | |
working-directory: pytorch-${{ github.run_id }} | |
needs: [ciflow_should_run] | |
env: | |
JOB_BASE_NAME: periodic-win-vs2019-cuda11.1-py3-build | |
http_proxy: "http://internal-tf-lb-20210727220640487900000002-835786077.us-east-1.elb.amazonaws.com:3128" | |
https_proxy: "http://internal-tf-lb-20210727220640487900000002-835786077.us-east-1.elb.amazonaws.com:3128" | |
steps: | |
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)" | |
uses: seemethere/add-github-ssh-key@v1 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Checkout PyTorch | |
uses: zhouzhuojie/checkout@05b13c9a0d21f08f6d5e64a1d5042246d13619d9 | |
with: | |
submodules: recursive | |
path: pytorch-${{ github.run_id }} | |
# deep clone, to allow use of git merge-base | |
fetch-depth: 0 | |
- name: Display EC2 information | |
shell: bash | |
run: | | |
set -euo pipefail | |
function get_ec2_metadata() { | |
# Pulled from instance metadata endpoint for EC2 | |
# see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html | |
category=$1 | |
curl -fsSL "http://169.254.169.254/latest/meta-data/${category}" | |
} | |
echo "ami-id: $(get_ec2_metadata ami-id)" | |
echo "instance-id: $(get_ec2_metadata instance-id)" | |
echo "instance-type: $(get_ec2_metadata instance-type)" | |
- name: Install Visual Studio 2019 toolchain | |
shell: powershell | |
run: | | |
.\.circleci\scripts\vs_install.ps1 | |
- name: Install Cuda | |
shell: bash | |
run: | | |
.circleci/scripts/windows_cuda_install.sh | |
- name: Install Cudnn | |
shell: bash | |
run: | | |
.circleci/scripts/windows_cudnn_install.sh | |
- name: Build | |
shell: bash | |
env: | |
PYTORCH_FINAL_PACKAGE_DIR: /c/${{ github.run_id }}/build-results/ | |
run: | | |
.jenkins/pytorch/win-build.sh | |
# Upload to github so that people can click and download artifacts | |
- name: Upload artifacts to Github | |
if: always() | |
uses: actions/upload-artifact@v2 | |
# Don't fail on upload to GH since it's only for user convenience | |
continue-on-error: true | |
with: | |
retention-days: 14 | |
if-no-files-found: error | |
name: ${{ env.BUILD_ENVIRONMENT }} | |
path: C:\${{ github.run_id }}\build-results | |
- name: Upload artifacts to s3 | |
if: always() | |
uses: seemethere/upload-artifact-s3@v3 | |
with: | |
retention-days: 14 | |
if-no-files-found: error | |
name: ${{ env.BUILD_ENVIRONMENT }} | |
path: C:\${{ github.run_id }}\build-results | |
- 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 | |
- 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 ./* | |
generate-test-matrix: | |
needs: [ciflow_should_run] | |
runs-on: ubuntu-18.04 | |
env: | |
TEST_RUNNER_TYPE: windows.8xlarge.nvidia.gpu | |
NUM_TEST_SHARDS: 2 | |
NUM_TEST_SHARDS_ON_PULL_REQUEST: 2 | |
PR_BODY: ${{ github.event.pull_request.body }} | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
render-matrix: ${{ steps.set-matrix.outputs.render-matrix }} | |
ignore-disabled-issues: ${{ steps.set-matrix.outputs.ignore-disabled-issues }} | |
container: | |
image: python:3.9 | |
steps: | |
- name: Install dependencies | |
run: pip install typing-extensions==3.10 | |
- name: Clone pytorch/pytorch | |
uses: zhouzhuojie/checkout@05b13c9a0d21f08f6d5e64a1d5042246d13619d9 | |
- name: Generating test matrix | |
id: set-matrix | |
run: .github/scripts/generate_pytorch_test_matrix.py | |
test: | |
env: | |
JOB_BASE_NAME: periodic-win-vs2019-cuda11.1-py3-test | |
SHARD_NUMBER: ${{ matrix.shard }} | |
NUM_TEST_SHARDS: ${{ matrix.num_shards }} | |
TEST_CONFIG: ${{ matrix.config }} | |
http_proxy: "http://internal-tf-lb-20210727220640487900000002-835786077.us-east-1.elb.amazonaws.com:3128" | |
https_proxy: "http://internal-tf-lb-20210727220640487900000002-835786077.us-east-1.elb.amazonaws.com:3128" | |
RUN_SMOKE_TESTS_ONLY_ON_PR: False | |
PYTORCH_IGNORE_DISABLED_ISSUES: ${{ needs.generate-test-matrix.outputs.ignore-disabled-issues }} | |
CONTINUE_THROUGH_ERROR: ${{ github.repository == 'pytorch/pytorch' && (github.event_name == 'push' || github.event_name == 'schedule') }} | |
needs: [build, generate-test-matrix, ciflow_should_run] | |
strategy: | |
matrix: ${{ fromJson(needs.generate-test-matrix.outputs.matrix) }} | |
fail-fast: false | |
runs-on: ${{ matrix.runner }} | |
defaults: | |
run: | |
working-directory: pytorch-${{ github.run_id }} | |
steps: | |
- name: Checkout PyTorch | |
uses: zhouzhuojie/checkout@05b13c9a0d21f08f6d5e64a1d5042246d13619d9 | |
with: | |
submodules: recursive | |
path: pytorch-${{ github.run_id }} | |
# deep clone, to allow use of git merge-base | |
fetch-depth: 0 | |
- name: Display EC2 information | |
shell: bash | |
run: | | |
set -euo pipefail | |
function get_ec2_metadata() { | |
# Pulled from instance metadata endpoint for EC2 | |
# see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html | |
category=$1 | |
curl -fsSL "http://169.254.169.254/latest/meta-data/${category}" | |
} | |
echo "ami-id: $(get_ec2_metadata ami-id)" | |
echo "instance-id: $(get_ec2_metadata instance-id)" | |
echo "instance-type: $(get_ec2_metadata instance-type)" | |
- name: "[FB EMPLOYEES] Enable SSH (Click me for login details)" | |
uses: seemethere/add-github-ssh-key@v1 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Install Visual Studio 2019 toolchain | |
shell: powershell | |
run: | | |
.\.circleci\scripts\vs_install.ps1 | |
- name: Install Cuda | |
shell: bash | |
run: | | |
.circleci/scripts/windows_cuda_install.sh | |
- name: Install Cudnn | |
shell: bash | |
run: | | |
.circleci/scripts/windows_cudnn_install.sh | |
- 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/ | |
run: | | |
if [[ $NUM_TEST_SHARDS -ne 2 ]]; then | |
export SHARD_NUMBER=0 | |
fi | |
if [[ -n $GITHUB_HEAD_REF && "$RUN_SMOKE_TESTS_ONLY_ON_PR" == "true" ]]; then | |
export RUN_SMOKE_TESTS_ONLY=1 | |
fi | |
.jenkins/pytorch/win-test.sh | |
- name: Zip test reports for upload | |
if: always() | |
env: | |
FILE_SUFFIX: '${{ github.job }}-${{ matrix.config }}-${{ matrix.shard }}-${{ matrix.num_shards }}-${{ matrix.runner }}' | |
shell: powershell | |
run: | | |
# -ir => recursive include all files in pattern | |
7z a "test-reports-$Env:FILE_SUFFIX.zip" -ir'!test\*.xml' | |
- uses: actions/upload-artifact@v2 | |
name: Store Test Reports | |
if: always() | |
with: | |
name: test-reports-${{ matrix.config }} | |
retention-days: 14 | |
if-no-files-found: error | |
path: | |
pytorch-${{ github.run_id }}/test-reports-*.zip | |
- uses: seemethere/upload-artifact-s3@v3 | |
name: Store Test Reports on S3 | |
if: always() | |
with: | |
retention-days: 14 | |
if-no-files-found: error | |
path: | |
pytorch-${{ github.run_id }}/test-reports-*.zip | |
- name: Install render_test_results dependencies | |
if: always() | |
shell: bash | |
run: | | |
python3 -m pip install junitparser==2.1.1 rich==10.9.0 | |
- name: "[[ Click me for rendered test results (useful for finding failing tests) ]]" | |
if: always() | |
shell: bash | |
# Encoding is weird on windows, just try to default to utf-8 if possible | |
env: | |
PYTHONIOENCODING: "utf-8" | |
run: | | |
python3 tools/render_junit.py test/ | |
- 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 | |
- name: Parse ref | |
id: parse-ref | |
run: .github/scripts/parse_ref.py | |
- name: Display and upload test statistics (Click Me) | |
if: always() | |
# 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 | |
CIRCLE_BRANCH: ${{ steps.parse-ref.outputs.branch }} | |
JOB_BASE_NAME: periodic-win-vs2019-cuda11.1-py3-test | |
CIRCLE_PR_NUMBER: ${{ github.event.pull_request.number }} | |
CIRCLE_SHA1: ${{ github.event.pull_request.head.sha || github.sha }} | |
CIRCLE_TAG: ${{ steps.parse-ref.outputs.tag }} | |
CIRCLE_WORKFLOW_ID: '${{ github.run_id }}_${{ github.run_number }}' | |
shell: bash | |
run: | | |
python3 -m pip install -r requirements.txt | |
python3 -m pip install boto3==1.16.34 | |
python3 -m tools.stats.print_test_stats --upload-to-s3 --compare-with-s3 test | |
- name: Cleanup workspace | |
if: always() | |
shell: bash | |
# Should remove the entirety of pytorch-${{ github.run_id }} | |
run: | | |
rm -rf ./* |