diff --git a/.github/workflows/build-python-packages.yml b/.github/workflows/build-python-packages.yml index cf09985..bd01903 100644 --- a/.github/workflows/build-python-packages.yml +++ b/.github/workflows/build-python-packages.yml @@ -20,7 +20,7 @@ on: PLATFORMS: description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)' required: true - default: 'ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-15-intel_x64,macos-14_arm64,windows-2022_x64,windows-2022_x86,windows-11_arm64' + default: 'ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-15-intel_x64,macos-14_arm64,windows-2022_x64,windows-2022_x86,windows-2022_arm64' pull_request: paths-ignore: - 'versions-manifest.json' @@ -44,7 +44,7 @@ jobs: - name: Generate execution matrix id: generate-matrix run: | - [String[]]$configurations = "${{ inputs.platforms || 'ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-15-intel,macos-14_arm64,windows-2022_x64,windows-2022_x86,windows-11_arm64' }}".Split(",").Trim() + [String[]]$configurations = "${{ inputs.platforms || 'ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-15-intel,macos-14_arm64,windows-2022_x64,windows-2022_x86,windows-2022_arm64' }}".Split(",").Trim() [String[]]$buildModes = "${{ inputs.threading_build_modes || 'default' }}".Split(",").Trim() $matrix = @() @@ -56,7 +56,11 @@ jobs: switch -wildcard ($os) { "*ubuntu*" { $platform = $os.Replace("ubuntu","linux"); if ($arch -eq "arm64" ) { $os = "${os}-arm" } } "*macos*" { $platform = 'darwin' } - "*windows*" { $platform = 'win32'; if ($arch -eq "arm64" ) { $os = "${os}-arm" } } + "*windows*" { $platform = 'win32' } + } + + if ($configuration -eq "windows-2022_arm64") { + $os = "setup-actions-windows-arm64-4-core" } if ($buildMode -eq "freethreaded") { @@ -85,6 +89,30 @@ jobs: env: ARTIFACT_NAME: python-${{ inputs.VERSION || '3.13.7' }}-${{ matrix.platform }}-${{ matrix.arch }} steps: + - name: Setup Environment on Windows ARM64 Runner + if: matrix.os == 'setup-actions-windows-arm64-4-core' + shell: powershell + run: | + # Install Chocolatey + Set-ExecutionPolicy Bypass -Scope Process -Force + [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 + iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) + echo "C:\ProgramData\Chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 + + # Install PowerShell + choco install powershell-core -y + echo "C:\Program Files\PowerShell\7" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 + + # Install Git + choco install git -y + echo "C:\Program Files\Git\cmd" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 + + + # Install 7-Zip + choco install 7zip -y + echo "C:\ProgramData\chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 + + - name: Check out repository code uses: actions/checkout@v5 with: @@ -112,6 +140,29 @@ jobs: env: ARTIFACT_NAME: python-${{ inputs.VERSION || '3.13.7' }}-${{ matrix.platform }}-${{ matrix.arch }} steps: + - name: Setup Environment on Windows ARM64 Runner + if: matrix.os == 'setup-actions-windows-arm64-4-core' + shell: powershell + run: | + # Install Chocolatey + Set-ExecutionPolicy Bypass -Scope Process -Force + [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 + iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) + echo "C:\ProgramData\Chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 + + # Install PowerShell + choco install powershell-core -y + echo "C:\Program Files\PowerShell\7" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 + + # Install Git + choco install git -y + echo "C:\Program Files\Git\cmd" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 + + + # Install 7-Zip + choco install 7zip -y + echo "C:\ProgramData\chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 + - name: Check out repository code uses: actions/checkout@v5 with: