From 606312b02e632bd36f84e69b3389984c278ed6b6 Mon Sep 17 00:00:00 2001 From: aparnajyothi-y <147696841+aparnajyothi-y@users.noreply.github.com> Date: Thu, 20 Jun 2024 14:45:24 +0530 Subject: [PATCH] Update build-python-packages.yml --- .github/workflows/build-python-packages.yml | 66 ++++++++++++++++++--- 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-python-packages.yml b/.github/workflows/build-python-packages.yml index a7db99b..ed32fdf 100644 --- a/.github/workflows/build-python-packages.yml +++ b/.github/workflows/build-python-packages.yml @@ -15,7 +15,7 @@ on: PLATFORMS: description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)' required: true - default: 'ubuntu-20.04,ubuntu-20.04_arm64,ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-11_x64,macos-14_arm64,windows-2019_x64,windows-2019_x86' + default: 'ubuntu-20.04,ubuntu-20.04_arm64,ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-11_x64,macos-14_arm64,windows-2019_x64,windows-2019_x86,windows-2019_arm64' pull_request: paths-ignore: - 'versions-manifest.json' @@ -39,26 +39,33 @@ jobs: - name: Generate execution matrix id: generate-matrix run: | - [String[]]$configurations = "${{ inputs.platforms || 'ubuntu-20.04,ubuntu-20.04_arm64,ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-11,macos-14_arm64,windows-2019_x64,windows-2019_x86' }}".Split(",").Trim() + [String[]]$configurations = "${{ inputs.platforms || 'ubuntu-20.04,ubuntu-20.04_arm64,ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-11,macos-14_arm64,windows-2019_x64,windows-2019_x86,windows-2019_arm64' }}".Split(",").Trim() $matrix = @() foreach ($configuration in $configurations) { $parts = $configuration.Split("_") $os = $parts[0] $arch = if ($parts[1]) {$parts[1]} else {"x64"} + switch -wildcard ($os) { "*ubuntu*" { $platform = $os.Replace("ubuntu","linux")} "*macos*" { $platform = 'darwin' } "*windows*" { $platform = 'win32' } } + + if ($configuration -eq "windows-2019_arm64") { + $os = "setup-actions-windows-arm64-4-core" + } $matrix += @{ 'platform' = $platform 'os' = $os 'arch' = $arch + + } } echo "matrix=$($matrix | ConvertTo-Json -Compress -AsArray)" >> $env:GITHUB_OUTPUT - + build_python: needs: generate_matrix strategy: @@ -70,16 +77,38 @@ jobs: ARTIFACT_NAME: python-${{ inputs.VERSION || '3.12.3' }}-${{ 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@v4 with: submodules: true + - name: Build Python ${{ env.VERSION }} run: | ./builders/build-python.ps1 -Version $env:VERSION ` -Platform ${{ matrix.platform }} -Architecture ${{ matrix.arch }} - - name: Publish artifact uses: actions/upload-artifact@v4 with: @@ -97,7 +126,30 @@ jobs: env: ARTIFACT_NAME: python-${{ inputs.VERSION || '3.12.3' }}-${{ 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@v4 with: @@ -117,6 +169,7 @@ jobs: name: ${{ env.ARTIFACT_NAME }} path: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }} + - name: Extract files run: | if ('${{ matrix.platform }}' -eq 'win32') { @@ -155,7 +208,6 @@ jobs: run: | $pythonLocation = which python if ('${{ matrix.platform }}' -eq 'darwin') { otool -L $pythonLocation } else { ldd $pythonLocation } - - name: Run tests run: | Install-Module Pester -Force -Scope CurrentUser -SkipPublisherCheck @@ -190,7 +242,6 @@ jobs: release_name: ${{ env.VERSION }} body: | Python ${{ env.VERSION }} - - name: Generate hash for packages run: | $childItems = Get-Childitem -Path '.' @@ -238,4 +289,3 @@ jobs: workflow_id: 'create-pr.yml', ref: 'main' }); -