Add Windows Arm64 Nightly Builds #5
Workflow file for this run
This file contains hidden or 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_arm64_binary_build_workflow.yml.j2 | ||
# Generation script: .github/scripts/generate_ci_workflows.py | ||
name: windows-arm64-binary-libtorch-releaseon: | ||
Check failure on line 5 in .github/workflows/generated-windows-arm64-binary-libtorch-release-main.yml
|
||
push: | ||
branches: | ||
- main | ||
workflow_dispatch: | ||
env: | ||
BUILD_ENVIRONMENT: windows-arm64-binary-libtorch-release | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
PR_NUMBER: ${{ github.event.pull_request.number }} | ||
SHA1: ${{ github.event.pull_request.head.sha || github.sha }} | ||
SKIP_ALL_TESTS: 1 | ||
PYTORCH_ROOT: /pytorch | ||
DOWNLOADS_DIR: c:\temp\downloads | ||
DEPENDENCIES_DIR: c:\temp\dependencies | ||
ENABLE_APL: 1 | ||
MSVC_VERSION : '14.36' | ||
AWS_DEFAULT_REGION: us-east-1 | ||
jobs: | ||
get-label-type: | ||
if: github.repository_owner == 'pytorch' | ||
name: get-label-type | ||
uses: pytorch/pytorch/.github/workflows/_runner-determinator.yml@main | ||
with: | ||
triggering_actor: ${{ github.triggering_actor }} | ||
issue_owner: ${{ github.event.pull_request.user.login || github.event.issue.user.login }} | ||
curr_branch: ${{ github.head_ref || github.ref_name }} | ||
curr_ref_type: ${{ github.ref_type }} | ||
libtorch-cpu-shared-with-deps-release-build: | ||
if: ${{ github.repository_owner == 'pytorch' }} | ||
needs: get-label-type | ||
runs-on: "windows-11-arm64" | ||
timeout-minutes: 240 | ||
env: | ||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch | ||
PACKAGE_TYPE: libtorch | ||
# TODO: This is a legacy variable that we eventually want to get rid of in | ||
# favor of GPU_ARCH_VERSION | ||
DESIRED_CUDA: cpu | ||
GPU_ARCH_TYPE: cpu | ||
SKIP_ALL_TESTS: 1 | ||
LIBTORCH_CONFIG: release | ||
LIBTORCH_VARIANT: shared-with-deps | ||
# This is a dummy value for libtorch to work correctly with our batch scripts | ||
# without this value pip does not get installed for some reason | ||
DESIRED_PYTHON: "3.9" | ||
steps: | ||
# Needed for binary builds, see: https://github.com/pytorch/pytorch/issues/73339#issuecomment-1058981560 | ||
- name: Enable long paths on Windows | ||
shell: powershell | ||
run: | | ||
Set-ItemProperty -Path "HKLM:\\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 | ||
# Since it's just a defensive command, the workflow should continue even the command fails. This step can be | ||
# removed once Windows Defender is removed from the AMI | ||
- name: Disables Windows Defender scheduled and real-time scanning for files in directories used by PyTorch | ||
continue-on-error: true | ||
shell: powershell | ||
run: | | ||
Add-MpPreference -ExclusionPath $(Get-Location).tostring(),$Env:TEMP -ErrorAction Ignore | ||
# Let's both exclude the path and disable Windows Defender completely just to be sure | ||
# that it doesn't interfere | ||
Set-MpPreference -DisableRealtimeMonitoring $True -ErrorAction Ignore | ||
# NOTE: These environment variables are put here so that they can be applied on every job equally | ||
# They are also here because setting them at a workflow level doesn't give us access to the | ||
# runner.temp variable, which we need. | ||
- name: Populate binary env | ||
shell: cmd | ||
run: | | ||
echo BINARY_ENV_FILE=%RUNNER_TEMP%/env>> %GITHUB_ENV% | ||
echo PYTORCH_FINAL_PACKAGE_DIR=%RUNNER_TEMP%/artifacts>> %GITHUB_ENV% | ||
echo WIN_PACKAGE_WORK_DIR=%RUNNER_TEMP%>> %GITHUB_ENV% | ||
- name: Bootstrap folders | ||
shell: cmd | ||
run: | | ||
mkdir "%NIGHTLIES_PYTORCH_ROOT%" | ||
mkdir "%PYTORCH_FINAL_PACKAGE_DIR%" | ||
- name: Git checkout PyTorch | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: "iremyux/pytorch" | ||
ref: "nightly-for-win-arm64" | ||
path: "%PYTORCH_ROOT%" | ||
- name: Bootstrap Git | ||
shell: cmd | ||
run: | | ||
"${PYTORCH_ROOT}/.ci/pytorch/windows/arm64/bootstrap_git.bat" | ||
- name: Remove Pytorch folder | ||
shell: cmd | ||
run: | | ||
rmdir /s /q "%PYTORCH_ROOT%" | ||
- name: Git checkout PyTorch | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: "iremyux/pytorch" | ||
ref: "nightly-for-win-arm64" | ||
path: "%PYTORCH_ROOT%" | ||
submodules: recursive | ||
- name: Bootstrap Python | ||
shell: cmd | ||
run: | | ||
"${PYTORCH_ROOT}/.ci/pytorch/windows/arm64/bootstrap_python.bat" | ||
- name: Bootstrap Build Tools | ||
shell: cmd | ||
run: | | ||
"${PYTORCH_ROOT}/.ci/pytorch/windows/arm64/bootstrap_buildtools.bat" | ||
- name: Bootstrap APL | ||
shell: cmd | ||
run: | | ||
"${PYTORCH_ROOT}/.ci/pytorch/windows/arm64/bootstrap_apl.bat" | ||
- name: Bootstrap Rust | ||
shell: cmd | ||
run: | | ||
"${PYTORCH_ROOT}/.ci/pytorch/windows/arm64/bootstrap_rust.bat" | ||
- name: Bootstrap sccache | ||
shell: cmd | ||
run: | | ||
"${PYTORCH_ROOT}/.ci/pytorch/windows/arm64/bootstrap_sccache.bat" | ||
- name: Populate binary env | ||
shell: bash | ||
run: | | ||
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh" | ||
- name: Build PyTorch binary | ||
shell: bash | ||
run: | | ||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_arm64_build.sh" | ||
- uses: actions/[email protected] | ||
if: always() | ||
with: | ||
name: libtorch-cpu-shared-with-deps-release | ||
retention-days: 14 | ||
if-no-files-found: error | ||
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}" | ||
libtorch-cpu-shared-with-deps-release-test: # Testing | ||
if: ${{ github.repository_owner == 'pytorch' }} | ||
needs: | ||
- libtorch-cpu-shared-with-deps-release-build | ||
- get-label-type | ||
runs-on: "windows-11-arm64" | ||
timeout-minutes: 240 | ||
env: | ||
PYTORCH_ROOT: ${{ github.workspace }}/pytorch | ||
PACKAGE_TYPE: libtorch | ||
# TODO: This is a legacy variable that we eventually want to get rid of in | ||
# favor of GPU_ARCH_VERSION | ||
DESIRED_CUDA: cpu | ||
GPU_ARCH_TYPE: cpu | ||
SKIP_ALL_TESTS: 1 | ||
LIBTORCH_CONFIG: release | ||
LIBTORCH_VARIANT: shared-with-deps | ||
# This is a dummy value for libtorch to work correctly with our batch scripts | ||
# without this value pip does not get installed for some reason | ||
DESIRED_PYTHON: "3.9" | ||
steps: | ||
# NOTE: These environment variables are put here so that they can be applied on every job equally | ||
# They are also here because setting them at a workflow level doesn't give us access to the | ||
# runner.temp variable, which we need. | ||
- name: Populate binary env | ||
shell: cmd | ||
run: | | ||
echo BINARY_ENV_FILE=%RUNNER_TEMP%/env>> %GITHUB_ENV% | ||
echo PYTORCH_FINAL_PACKAGE_DIR=%RUNNER_TEMP%/artifacts>> %GITHUB_ENV% | ||
echo WIN_PACKAGE_WORK_DIR=%RUNNER_TEMP%>> %GITHUB_ENV% | ||
- uses: actions/[email protected] | ||
name: Download Build Artifacts | ||
with: | ||
name: libtorch-cpu-shared-with-deps-release | ||
path: "${{ env.PYTORCH_FINAL_PACKAGE_DIR }}" | ||
- name: Git checkout PyTorch | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: "iremyux/pytorch" | ||
ref: "nightly-for-win-arm64" | ||
path: "%PYTORCH_ROOT%" | ||
- name: Bootstrap Git | ||
shell: cmd | ||
run: | | ||
"${PYTORCH_ROOT}/.ci/pytorch/windows/arm64/bootstrap_git.bat" | ||
- name: Remove Pytorch folder | ||
shell: cmd | ||
run: | | ||
rmdir /s /q "%PYTORCH_ROOT%" | ||
- name: Git checkout PyTorch | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: "iremyux/pytorch" | ||
ref: "nightly-for-win-arm64" | ||
path: "%PYTORCH_ROOT%" | ||
submodules: recursive | ||
- name: Bootstrap APL | ||
shell: cmd | ||
run: | | ||
"${PYTORCH_ROOT}/.ci/pytorch/windows/arm64/bootstrap_apl.bat" | ||
- name: Bootstrap Python | ||
shell: cmd | ||
run: | | ||
"${PYTORCH_ROOT}/.ci/pytorch/windows/arm64/bootstrap_python.bat" | ||
- name: Bootstrap Build Tools | ||
shell: cmd | ||
run: | | ||
"${PYTORCH_ROOT}/.ci/pytorch/windows/arm64/bootstrap_buildtools.bat" | ||
- name: Populate binary env | ||
shell: bash | ||
run: | | ||
"${PYTORCH_ROOT}/.circleci/scripts/binary_populate_env.sh" | ||
- name: Test PyTorch binary | ||
shell: bash | ||
run: | | ||
"${PYTORCH_ROOT}/.circleci/scripts/binary_windows_arm64_test.sh" |