Compare commits

..

15 Commits

Author SHA1 Message Date
priya-kinthali
06dc095b4e Update build-python-packages.yml with 7z 2024-06-14 14:11:25 +05:30
priya-kinthali
e30e34e23e Update build-python-packages.yml update test step 2024-06-14 13:55:58 +05:30
priya-kinthali
73291940e4 Update build-python-packages.yml with 7-zip 2024-06-14 13:47:26 +05:30
priya-kinthali
34b290bd68 Update build-python-packages.yml with git 2024-06-14 13:40:41 +05:30
priya-kinthali
1283f694e2 Update build-python-packages.yml with git install 2024-06-14 13:35:55 +05:30
priya-kinthali
2c36fe8085 Update build-python-packages.yml added path 2024-06-14 12:39:08 +05:30
priya-kinthali
d23614881d Update build-python-packages.yml with choc 2024-06-14 12:33:18 +05:30
priya-kinthali
0f8c345fbf Update build-python-packages.yml 2024-06-14 12:24:41 +05:30
priya-kinthali
173dacbc09 Update build-python-packages.yml install powershell 2024-06-14 12:20:55 +05:30
priya-kinthali
4605ddf7b1 Update build-python-packages.yml add path 2024-06-14 12:14:16 +05:30
priya-kinthali
2cdf3ee87d Update build-python-packages.yml to check git version 2024-06-14 12:08:54 +05:30
priya-kinthali
29399f642a Update build-python-packages.yml 2024-06-14 12:03:33 +05:30
priya-kinthali
14816f3ddf Update build-python-packages.yml with submodule 2024-06-14 11:59:18 +05:30
priya-kinthali
140f416786 Update build-python-packages.yml with setup git 2024-06-14 11:47:21 +05:30
priya-kinthali
e229f1522b Update win-python-builder.psm1 2024-06-14 11:33:43 +05:30
7 changed files with 463 additions and 2277 deletions

View File

@@ -15,7 +15,7 @@ on:
PLATFORMS: PLATFORMS:
description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)' description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)'
required: true required: true
default: 'ubuntu-20.04,ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-13_x64,macos-14_arm64,windows-2019_x64,windows-2019_x86,windows-2019_arm64' 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'
pull_request: pull_request:
paths-ignore: paths-ignore:
- 'versions-manifest.json' - 'versions-manifest.json'
@@ -39,7 +39,7 @@ jobs:
- name: Generate execution matrix - name: Generate execution matrix
id: generate-matrix id: generate-matrix
run: | run: |
[String[]]$configurations = "${{ inputs.platforms || 'ubuntu-20.04,ubuntu-22.04,ubuntu-22.04_arm64,ubuntu-24.04,ubuntu-24.04_arm64,macos-13,macos-14_arm64,windows-2019_x64,windows-2019_x86,windows-2019_arm64' }}".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' }}".Split(",").Trim()
$matrix = @() $matrix = @()
foreach ($configuration in $configurations) { foreach ($configuration in $configurations) {
@@ -51,17 +51,6 @@ jobs:
"*macos*" { $platform = 'darwin' } "*macos*" { $platform = 'darwin' }
"*windows*" { $platform = 'win32' } "*windows*" { $platform = 'win32' }
} }
if ($configuration -eq "ubuntu-22.04_arm64") {
$os = "setup-actions-ubuntu-arm64-2-core"
}
elseif ($configuration -eq "ubuntu-24.04_arm64") {
$os = "setup-actions-ubuntu24-arm64-2-core"
}
elseif ($configuration -eq "windows-2019_arm64") {
$os = "setup-actions-windows-arm64-4-core"
}
$matrix += @{ $matrix += @{
'platform' = $platform 'platform' = $platform
'os' = $os 'os' = $os
@@ -80,35 +69,51 @@ jobs:
env: env:
ARTIFACT_NAME: python-${{ inputs.VERSION || '3.12.3' }}-${{ matrix.platform }}-${{ matrix.arch }} ARTIFACT_NAME: python-${{ inputs.VERSION || '3.12.3' }}-${{ matrix.platform }}-${{ matrix.arch }}
steps: steps:
- name: Setup Environment on Windows ARM64 Runner
if: matrix.os == 'setup-actions-windows-arm64-4-core' - name: Install Chocolatey
shell: powershell shell: powershell
run: | run: |
# Install Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) 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 echo "C:\ProgramData\Chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Install PowerShell
# Install PowerShell shell: cmd
run: |
choco install powershell-core -y choco install powershell-core -y
- name: Add PowerShell to PATH
shell: powershell
run: |
echo "C:\Program Files\PowerShell\7" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 echo "C:\Program Files\PowerShell\7" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install Git - name: Install Git
shell: cmd
run: |
choco install git -y choco install git -y
- name: Add Git to PATH
shell: powershell
run: |
echo "C:\Program Files\Git\cmd" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 echo "C:\Program Files\Git\cmd" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Check git version
run: |
# Install 7-Zip git --version
choco install 7zip -y
echo "C:\ProgramData\chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Check out repository code - name: Check out repository code
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
submodules: true submodules: true
- name: Install 7-Zip
shell: cmd
run: |
choco install 7zip -y
- name: Add 7-Zip to PATH
shell: powershell
run: |
echo "C:\ProgramData\chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Build Python ${{ env.VERSION }} - name: Build Python ${{ env.VERSION }}
run: | run: |
./builders/build-python.ps1 -Version $env:VERSION ` ./builders/build-python.ps1 -Version $env:VERSION `
@@ -131,29 +136,35 @@ jobs:
env: env:
ARTIFACT_NAME: python-${{ inputs.VERSION || '3.12.3' }}-${{ matrix.platform }}-${{ matrix.arch }} ARTIFACT_NAME: python-${{ inputs.VERSION || '3.12.3' }}-${{ matrix.platform }}-${{ matrix.arch }}
steps: steps:
- name: Setup Environment on Windows ARM64 Runner
if: matrix.os == 'setup-actions-windows-arm64-4-core' - name: Install Chocolatey
shell: powershell shell: powershell
run: | run: |
# Install Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) 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 echo "C:\ProgramData\Chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Install PowerShell
# Install PowerShell shell: cmd
run: |
choco install powershell-core -y choco install powershell-core -y
- name: Add PowerShell to PATH
shell: powershell
run: |
echo "C:\Program Files\PowerShell\7" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 echo "C:\Program Files\PowerShell\7" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
# Install Git - name: Install Git
shell: cmd
run: |
choco install git -y choco install git -y
- name: Add Git to PATH
shell: powershell
run: |
echo "C:\Program Files\Git\cmd" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 echo "C:\Program Files\Git\cmd" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Check git version
run: |
# Install 7-Zip git --version
choco install 7zip -y
echo "C:\ProgramData\chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Check out repository code - name: Check out repository code
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
@@ -173,6 +184,15 @@ jobs:
name: ${{ env.ARTIFACT_NAME }} name: ${{ env.ARTIFACT_NAME }}
path: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }} path: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
- name: Install 7-Zip
shell: cmd
run: |
choco install 7zip -y
- name: Add 7-Zip to PATH
shell: powershell
run: |
echo "C:\ProgramData\chocolatey\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Extract files - name: Extract files
run: | run: |
if ('${{ matrix.platform }}' -eq 'win32') { if ('${{ matrix.platform }}' -eq 'win32') {
@@ -294,3 +314,4 @@ jobs:
workflow_id: 'create-pr.yml', workflow_id: 'create-pr.yml',
ref: 'main' ref: 'main'
}); });

View File

@@ -13,5 +13,4 @@ jobs:
name: CodeQL analysis name: CodeQL analysis
uses: actions/reusable-workflows/.github/workflows/codeql-analysis.yml@main uses: actions/reusable-workflows/.github/workflows/codeql-analysis.yml@main
with: with:
languages: '["python"]' languages: "['python']"

View File

@@ -14,8 +14,8 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04, macos-13] os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04]
python: [3.9.13, 3.10.11, 3.11.8, 3.12.7, 3.13.0] python: [3.9.13, 3.10.11, 3.11.8]
steps: steps:
- name: setup-python ${{ matrix.python }} - name: setup-python ${{ matrix.python }}
uses: actions/setup-python@v5 uses: actions/setup-python@v5

View File

@@ -68,10 +68,10 @@ class macOSPythonBuilder : NixPythonBuilder {
### and then add the appropriate paths for the header and library files to configure command. ### and then add the appropriate paths for the header and library files to configure command.
### Link to documentation (https://cpython-devguide.readthedocs.io/setup/#build-dependencies) ### Link to documentation (https://cpython-devguide.readthedocs.io/setup/#build-dependencies)
if ($this.Version -lt "3.7.0") { if ($this.Version -lt "3.7.0") {
$env:LDFLAGS = "-L/usr/local/opt/openssl@3/lib -L/usr/local/opt/zlib/lib" $env:LDFLAGS = "-L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/zlib/lib"
$env:CFLAGS = "-I/usr/local/opt/openssl@3/include -I/usr/local/opt/zlib/include" $env:CFLAGS = "-I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/zlib/include"
} else { } else {
$configureString += " --with-openssl=/usr/local/opt/openssl@3" $configureString += " --with-openssl=/usr/local/opt/openssl@1.1"
# For Python 3.7.2 and 3.7.3 we need to provide PATH for zlib to pack it properly. Otherwise the build will fail # For Python 3.7.2 and 3.7.3 we need to provide PATH for zlib to pack it properly. Otherwise the build will fail
# with the error: zipimport.ZipImportError: can't decompress data; zlib not available # with the error: zipimport.ZipImportError: can't decompress data; zlib not available

View File

@@ -54,15 +54,15 @@ else:
if os_type == 'Darwin': if os_type == 'Darwin':
### Validate openssl links ### Validate openssl links
if version_major == 3 and version_minor < 7: if version_major == 3 and version_minor < 7:
expected_ldflags = '-L/usr/local/opt/openssl@3/lib' expected_ldflags = '-L/usr/local/opt/openssl@1.1/lib'
ldflags = sysconfig.get_config_var('LDFLAGS') ldflags = sysconfig.get_config_var('LDFLAGS')
if not expected_ldflags in ldflags: if not expected_ldflags in ldflags:
print('Invalid ldflags: %s; Expected: %s' % (ldflags, expected_ldflags)) print('Invalid ldflags: %s; Expected: %s' % (ldflags, expected_ldflags))
exit(1) exit(1)
else: else:
expected_openssl_includes = '-I/usr/local/opt/openssl@3/include' expected_openssl_includes = '-I/usr/local/opt/openssl@1.1/include'
expected_openssl_ldflags ='-L/usr/local/opt/openssl@3/lib' expected_openssl_ldflags ='-L/usr/local/opt/openssl@1.1/lib'
openssl_includes = sysconfig.get_config_var('OPENSSL_INCLUDES') openssl_includes = sysconfig.get_config_var('OPENSSL_INCLUDES')
openssl_ldflags = sysconfig.get_config_var('OPENSSL_LDFLAGS') openssl_ldflags = sysconfig.get_config_var('OPENSSL_LDFLAGS')

File diff suppressed because it is too large Load Diff