mirror of
https://github.com/actions/python-versions.git
synced 2025-12-15 23:36:44 +00:00
Compare commits
33 Commits
3.9.18-111
...
arm64test
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9ad4c1fcaa | ||
|
|
3f1c6125df | ||
|
|
b1d12fe818 | ||
|
|
d464ee3cc6 | ||
|
|
61e93b288d | ||
|
|
8d965711ba | ||
|
|
b228cba84e | ||
|
|
fd9b186705 | ||
|
|
a15689f2ac | ||
|
|
be0e5a895c | ||
|
|
04c0db46b5 | ||
|
|
cb822fbaf1 | ||
|
|
1d262fc400 | ||
|
|
06ec0e912f | ||
|
|
30c053652b | ||
|
|
411060a14d | ||
|
|
45c77b2a3a | ||
|
|
3af71f81fb | ||
|
|
2031f98157 | ||
|
|
ac6f4c6a01 | ||
|
|
a185c39c53 | ||
|
|
9c2e25fa64 | ||
|
|
c87f998dfb | ||
|
|
a18ca9186b | ||
|
|
12f1ddaf19 | ||
|
|
22bd58f5ab | ||
|
|
91d36e5783 | ||
|
|
567e9060f4 | ||
|
|
10da5bd845 | ||
|
|
b6f9ad0531 | ||
|
|
0d0f3060e3 | ||
|
|
948f51aaf0 | ||
|
|
43b4fed22f |
116
.github/workflows/build-python-packages.yml
vendored
116
.github/workflows/build-python-packages.yml
vendored
@@ -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-12_x64,macos-14_arm64,windows-2019_x64,windows-2019_x86,windows-2019_arm64'
|
default: 'setup-actions-windows-arm64-4-core'
|
||||||
pull_request:
|
pull_request:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- 'versions-manifest.json'
|
- 'versions-manifest.json'
|
||||||
@@ -28,20 +28,36 @@ env:
|
|||||||
VERSION: ${{ inputs.VERSION || '3.12.3' }}
|
VERSION: ${{ inputs.VERSION || '3.12.3' }}
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: pwsh
|
shell: 'C:\Program Files\PowerShell\7\pwsh.exe -Command {0}'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
generate_matrix:
|
install_Pwsh_git:
|
||||||
|
runs-on: setup-actions-windows-arm64-4-core
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- run: |
|
||||||
|
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'))
|
||||||
|
choco install -y pwsh
|
||||||
|
choco install -y git --version=2.18.0
|
||||||
|
'C:\Program Files\PowerShell\7\' | Out-File $env:GITHUB_PATH -Append
|
||||||
|
'C:\Program Files\Git\bin' | Out-File $env:GITHUB_PATH -Append
|
||||||
|
shell: powershell
|
||||||
|
|
||||||
|
generate_matrix:
|
||||||
|
needs: [install_Pwsh_git]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
matrix: ${{ steps.generate-matrix.outputs.matrix }}
|
matrix: ${{ steps.generate-matrix.outputs.matrix }}
|
||||||
steps:
|
steps:
|
||||||
- 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-12,macos-14_arm64,windows-2019_x64,windows-2019_x86,windows-2019_arm64' }}".Split(",").Trim()
|
[String[]]$configurations = "${{ inputs.platforms || 'ubuntu-20.04,ubuntu-22.04,ubuntu-24.04,macos-11,macos-11_arm64,windows-2019_x64,windows-2019_x86' }}".Split(",").Trim()
|
||||||
$matrix = @()
|
$matrix = @()
|
||||||
|
|
||||||
foreach ($configuration in $configurations) {
|
foreach ($configuration in $configurations) {
|
||||||
$parts = $configuration.Split("_")
|
$parts = $configuration.Split("_")
|
||||||
$os = $parts[0]
|
$os = $parts[0]
|
||||||
@@ -51,17 +67,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
|
||||||
@@ -69,9 +74,10 @@ jobs:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo "matrix=$($matrix | ConvertTo-Json -Compress -AsArray)" >> $env:GITHUB_OUTPUT
|
echo "matrix=$($matrix | ConvertTo-Json -Compress -AsArray)" >> $env:GITHUB_OUTPUT
|
||||||
|
|
||||||
build_python:
|
build_python:
|
||||||
needs: generate_matrix
|
|
||||||
|
needs: [install_Pwsh_git, generate_matrix]
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -80,40 +86,16 @@ 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'
|
|
||||||
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
|
- name: Check out repository code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: false
|
||||||
|
|
||||||
- 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 `
|
||||||
-Platform ${{ matrix.platform }} -Architecture ${{ matrix.arch }}
|
-Platform ${{ matrix.platform }} -Architecture ${{ matrix.arch }}
|
||||||
|
|
||||||
- name: Publish artifact
|
- name: Publish artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
@@ -121,8 +103,8 @@ jobs:
|
|||||||
path: ${{ runner.temp }}/artifact
|
path: ${{ runner.temp }}/artifact
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
test_python:
|
test_python:
|
||||||
needs: [generate_matrix, build_python]
|
needs: [install_Pwsh_git, generate_matrix, build_python]
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -131,33 +113,11 @@ 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'
|
|
||||||
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
|
- name: Check out repository code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: false
|
||||||
|
|
||||||
- name: Fully cleanup the toolcache directory before testing
|
- name: Fully cleanup the toolcache directory before testing
|
||||||
run: ./helpers/clean-toolcache.ps1 -ToolName "Python"
|
run: ./helpers/clean-toolcache.ps1 -ToolName "Python"
|
||||||
@@ -214,7 +174,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
Install-Module Pester -Force -Scope CurrentUser -SkipPublisherCheck
|
Install-Module Pester -Force -Scope CurrentUser
|
||||||
Import-Module Pester
|
Import-Module Pester
|
||||||
$pesterContainer = New-PesterContainer -Path './python-tests.ps1' -Data @{
|
$pesterContainer = New-PesterContainer -Path './python-tests.ps1' -Data @{
|
||||||
Version="${{ env.VERSION }}";
|
Version="${{ env.VERSION }}";
|
||||||
@@ -228,13 +188,14 @@ jobs:
|
|||||||
}
|
}
|
||||||
working-directory: ${{ github.workspace }}/tests
|
working-directory: ${{ github.workspace }}/tests
|
||||||
|
|
||||||
publish_release:
|
publish_release:
|
||||||
name: Publish release
|
name: Publish release
|
||||||
if: github.event_name == 'workflow_dispatch' && inputs.PUBLISH_RELEASES
|
if: github.event_name == 'workflow_dispatch' && inputs.PUBLISH_RELEASES
|
||||||
needs: test_python
|
needs: test_python
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@v4
|
- uses: actions/download-artifact@v4
|
||||||
|
|
||||||
|
|
||||||
- name: Publish Release ${{ env.VERSION }}
|
- name: Publish Release ${{ env.VERSION }}
|
||||||
id: create_release
|
id: create_release
|
||||||
@@ -278,7 +239,7 @@ jobs:
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
trigger_pr:
|
trigger_pr:
|
||||||
name: Trigger "Create Pull Request" workflow
|
name: Trigger "Create Pull Request" workflow
|
||||||
needs: publish_release
|
needs: publish_release
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -294,3 +255,4 @@ jobs:
|
|||||||
workflow_id: 'create-pr.yml',
|
workflow_id: 'create-pr.yml',
|
||||||
ref: 'main'
|
ref: 'main'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
3
.github/workflows/codeql-analysis.yml
vendored
3
.github/workflows/codeql-analysis.yml
vendored
@@ -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']"
|
||||||
|
|
||||||
@@ -97,7 +97,6 @@ class NixPythonBuilder : PythonBuilder {
|
|||||||
|
|
||||||
$variablesToReplace = @{
|
$variablesToReplace = @{
|
||||||
"{{__VERSION_FULL__}}" = $this.Version;
|
"{{__VERSION_FULL__}}" = $this.Version;
|
||||||
"{{__ARCH__}}" = $this.Architecture;
|
|
||||||
}
|
}
|
||||||
$variablesToReplace.keys | ForEach-Object { $installationTemplateContent = $installationTemplateContent.Replace($_, $variablesToReplace[$_]) }
|
$variablesToReplace.keys | ForEach-Object { $installationTemplateContent = $installationTemplateContent.Replace($_, $variablesToReplace[$_]) }
|
||||||
|
|
||||||
|
|||||||
@@ -60,8 +60,6 @@ class WinPythonBuilder : PythonBuilder {
|
|||||||
} else {
|
} else {
|
||||||
$ArchitectureExtension = ".amd64"
|
$ArchitectureExtension = ".amd64"
|
||||||
}
|
}
|
||||||
}elseif ($this.Architecture -eq "arm64") {
|
|
||||||
$ArchitectureExtension = "-arm64"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $ArchitectureExtension
|
return $ArchitectureExtension
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
PYTHON_FULL_VERSION="{{__VERSION_FULL__}}"
|
PYTHON_FULL_VERSION="{{__VERSION_FULL__}}"
|
||||||
ARCH="{{__ARCH__}}"
|
|
||||||
MAJOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 1)
|
MAJOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 1)
|
||||||
MINOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 2)
|
MINOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 2)
|
||||||
|
|
||||||
@@ -18,7 +17,7 @@ fi
|
|||||||
|
|
||||||
PYTHON_TOOLCACHE_PATH=$TOOLCACHE_ROOT/Python
|
PYTHON_TOOLCACHE_PATH=$TOOLCACHE_ROOT/Python
|
||||||
PYTHON_TOOLCACHE_VERSION_PATH=$PYTHON_TOOLCACHE_PATH/$PYTHON_FULL_VERSION
|
PYTHON_TOOLCACHE_VERSION_PATH=$PYTHON_TOOLCACHE_PATH/$PYTHON_FULL_VERSION
|
||||||
PYTHON_TOOLCACHE_VERSION_ARCH_PATH=$PYTHON_TOOLCACHE_VERSION_PATH/$ARCH
|
PYTHON_TOOLCACHE_VERSION_ARCH_PATH=$PYTHON_TOOLCACHE_VERSION_PATH/x64
|
||||||
|
|
||||||
echo "Check if Python hostedtoolcache folder exist..."
|
echo "Check if Python hostedtoolcache folder exist..."
|
||||||
if [ ! -d $PYTHON_TOOLCACHE_PATH ]; then
|
if [ ! -d $PYTHON_TOOLCACHE_PATH ]; then
|
||||||
@@ -55,4 +54,4 @@ export PIP_ROOT_USER_ACTION=ignore
|
|||||||
./python -m pip install --upgrade --force-reinstall pip --disable-pip-version-check --no-warn-script-location
|
./python -m pip install --upgrade --force-reinstall pip --disable-pip-version-check --no-warn-script-location
|
||||||
|
|
||||||
echo "Create complete file"
|
echo "Create complete file"
|
||||||
touch $PYTHON_TOOLCACHE_VERSION_PATH/$ARCH.complete
|
touch $PYTHON_TOOLCACHE_VERSION_PATH/x64.complete
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ if os_type == 'Darwin': expected_ld_library_extension = 'dylib'
|
|||||||
if pkg_installer:
|
if pkg_installer:
|
||||||
expected_lib_dir_path = f'/Library/Frameworks/Python.framework/Versions/{version_major}.{version_minor}/lib'
|
expected_lib_dir_path = f'/Library/Frameworks/Python.framework/Versions/{version_major}.{version_minor}/lib'
|
||||||
else:
|
else:
|
||||||
expected_lib_dir_path = f'{os.getenv("AGENT_TOOLSDIRECTORY")}/Python/{version}/{architecture}/lib'
|
expected_lib_dir_path = f'{os.getenv("AGENT_TOOLSDIRECTORY")}/Python/{version}/x64/lib'
|
||||||
|
|
||||||
# Check modules
|
# Check modules
|
||||||
### Validate libraries path
|
### Validate libraries path
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user