mirror of
https://github.com/actions/python-versions.git
synced 2025-12-15 15:32:11 +00:00
Compare commits
39 Commits
3.8.14-300
...
3.8.15-360
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
04ce6b25b8 | ||
|
|
1248039d12 | ||
|
|
150cd39a1c | ||
|
|
93c66279f2 | ||
|
|
14f269ec5f | ||
|
|
188d4c2fb8 | ||
|
|
99b9e07db6 | ||
|
|
875651ccf2 | ||
|
|
f6ede0f473 | ||
|
|
60672e10e2 | ||
|
|
188c9d47fd | ||
|
|
01c7f11a0c | ||
|
|
2cd33e8674 | ||
|
|
16feed7bc1 | ||
|
|
fe8bc0106f | ||
|
|
4cb1787f1c | ||
|
|
c81386e1fd | ||
|
|
b37d4148f9 | ||
|
|
9b2450c6ee | ||
|
|
a6c0fa93f8 | ||
|
|
929dab97d0 | ||
|
|
149b806fe5 | ||
|
|
1c70aa4fc9 | ||
|
|
379db95d31 | ||
|
|
105f6b74ad | ||
|
|
0d8f04f6f8 | ||
|
|
11c48b4025 | ||
|
|
e7a13ade71 | ||
|
|
024142b9c3 | ||
|
|
5988ec7f4a | ||
|
|
1982aae0b6 | ||
|
|
1e1d9f9032 | ||
|
|
a1a012d197 | ||
|
|
ff7fd271bf | ||
|
|
3b05f53807 | ||
|
|
a28c508174 | ||
|
|
9db1c7f445 | ||
|
|
41636d5136 | ||
|
|
18ea6bb558 |
6
.github/workflows/codeql-analysis.yml
vendored
6
.github/workflows/codeql-analysis.yml
vendored
@@ -42,7 +42,7 @@ jobs:
|
|||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v1
|
uses: github/codeql-action/init@v2
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
@@ -53,7 +53,7 @@ jobs:
|
|||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
- name: Autobuild
|
- name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@v1
|
uses: github/codeql-action/autobuild@v2
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
# 📚 https://git.io/JvXDl
|
# 📚 https://git.io/JvXDl
|
||||||
@@ -67,4 +67,4 @@ jobs:
|
|||||||
# make release
|
# make release
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@v1
|
uses: github/codeql-action/analyze@v2
|
||||||
|
|||||||
2
.github/workflows/create-pr.yml
vendored
2
.github/workflows/create-pr.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
name: Create Pull Request
|
name: Create Pull Request
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
|
|||||||
9
.github/workflows/get-python-versions.yml
vendored
9
.github/workflows/get-python-versions.yml
vendored
@@ -12,12 +12,13 @@ defaults:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
find_new_versions:
|
find_new_versions:
|
||||||
|
if: github.repository_owner == 'actions'
|
||||||
name: Find new versions
|
name: Find new versions
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
versions_output: ${{ steps.Get_new_versions.outputs.TOOL_VERSIONS }}
|
versions_output: ${{ steps.Get_new_versions.outputs.TOOL_VERSIONS }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
@@ -32,7 +33,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
|
TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
@@ -62,7 +63,7 @@ jobs:
|
|||||||
TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
|
TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
|
||||||
environment: Get Available Tools Versions - Publishing Approval
|
environment: Get Available Tools Versions - Publishing Approval
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
@@ -81,7 +82,7 @@ jobs:
|
|||||||
needs: [find_new_versions, check_new_versions, trigger_builds]
|
needs: [find_new_versions, check_new_versions, trigger_builds]
|
||||||
if: failure()
|
if: failure()
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ jobs:
|
|||||||
Install-Module Pester -Force -Scope CurrentUser
|
Install-Module Pester -Force -Scope CurrentUser
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
Import-Module Pester
|
Import-Module Pester
|
||||||
Invoke-Pester -Configuration @{
|
Invoke-Pester -Configuration @{
|
||||||
|
|||||||
24
.github/workflows/python-builder.yml
vendored
24
.github/workflows/python-builder.yml
vendored
@@ -38,7 +38,7 @@ jobs:
|
|||||||
- name: Generate execution matrix
|
- name: Generate execution matrix
|
||||||
id: generate-matrix
|
id: generate-matrix
|
||||||
run: |
|
run: |
|
||||||
$configurations = "${{ github.event.inputs.platforms || 'ubuntu-18.04,ubuntu-20.04,ubuntu-22.04,macos-10.15,windows-2019_x64,windows-2019_x86' }}".Split(",").Trim()
|
[String[]]$configurations = "${{ github.event.inputs.platforms || 'ubuntu-18.04,ubuntu-20.04,ubuntu-22.04,macos-10.15,windows-2019_x64,windows-2019_x86' }}".Split(",").Trim()
|
||||||
$matrix = @()
|
$matrix = @()
|
||||||
|
|
||||||
foreach ($configuration in $configurations) {
|
foreach ($configuration in $configurations) {
|
||||||
@@ -56,7 +56,7 @@ jobs:
|
|||||||
'arch' = $arch
|
'arch' = $arch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo "::set-output name=matrix::$($matrix | ConvertTo-Json -Compress)"
|
echo "matrix=$($matrix | ConvertTo-Json -Compress -AsArray)" >> $env:GITHUB_OUTPUT
|
||||||
|
|
||||||
build_python:
|
build_python:
|
||||||
needs: generate_matrix
|
needs: generate_matrix
|
||||||
@@ -70,7 +70,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Check out repository code
|
- name: Check out repository code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ jobs:
|
|||||||
-Platform ${{ matrix.platform }} -Architecture ${{ matrix.arch }}
|
-Platform ${{ matrix.platform }} -Architecture ${{ matrix.arch }}
|
||||||
|
|
||||||
- name: Publish artifact
|
- name: Publish artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ${{ env.ARTIFACT_NAME }}
|
name: ${{ env.ARTIFACT_NAME }}
|
||||||
path: ${{ runner.temp }}/artifact
|
path: ${{ runner.temp }}/artifact
|
||||||
@@ -97,7 +97,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Check out repository code
|
- name: Check out repository code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
@@ -105,7 +105,7 @@ jobs:
|
|||||||
run: ./helpers/clean-toolcache.ps1 -ToolName "Python"
|
run: ./helpers/clean-toolcache.ps1 -ToolName "Python"
|
||||||
|
|
||||||
- name: Download artifact
|
- name: Download artifact
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
path: ${{ runner.temp }}
|
path: ${{ runner.temp }}
|
||||||
|
|
||||||
@@ -131,7 +131,7 @@ jobs:
|
|||||||
working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
|
working-directory: ${{ runner.temp }}/${{ env.ARTIFACT_NAME }}
|
||||||
|
|
||||||
- name: Setup Python ${{ env.VERSION }}
|
- name: Setup Python ${{ env.VERSION }}
|
||||||
uses: actions/setup-python@v3
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: ${{ env.VERSION }}
|
python-version: ${{ env.VERSION }}
|
||||||
architecture: ${{ matrix.arch }}
|
architecture: ${{ matrix.arch }}
|
||||||
@@ -168,7 +168,7 @@ jobs:
|
|||||||
needs: test_python
|
needs: test_python
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@v2
|
- uses: actions/download-artifact@v3
|
||||||
|
|
||||||
- name: Publish Release ${{ env.VERSION }}
|
- name: Publish Release ${{ env.VERSION }}
|
||||||
id: create_release
|
id: create_release
|
||||||
@@ -182,7 +182,7 @@ jobs:
|
|||||||
Python ${{ env.VERSION }}
|
Python ${{ env.VERSION }}
|
||||||
|
|
||||||
- name: Upload release assets
|
- name: Upload release assets
|
||||||
uses: actions/github-script@v2
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
script: |
|
script: |
|
||||||
@@ -190,7 +190,7 @@ jobs:
|
|||||||
for (let artifactDir of fs.readdirSync('.')) {
|
for (let artifactDir of fs.readdirSync('.')) {
|
||||||
let artifactName = fs.readdirSync(`${artifactDir}`)[0];
|
let artifactName = fs.readdirSync(`${artifactDir}`)[0];
|
||||||
console.log(`Upload ${artifactName} asset`);
|
console.log(`Upload ${artifactName} asset`);
|
||||||
github.repos.uploadReleaseAsset({
|
github.rest.repos.uploadReleaseAsset({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
release_id: ${{ steps.create_release.outputs.id }},
|
release_id: ${{ steps.create_release.outputs.id }},
|
||||||
@@ -205,11 +205,11 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Trigger "Create Pull Request" workflow
|
- name: Trigger "Create Pull Request" workflow
|
||||||
uses: actions/github-script@v3
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.PERSONAL_TOKEN }}
|
github-token: ${{ secrets.PERSONAL_TOKEN }}
|
||||||
script: |
|
script: |
|
||||||
github.actions.createWorkflowDispatch({
|
github.rest.actions.createWorkflowDispatch({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
workflow_id: 'create-pr.yml',
|
workflow_id: 'create-pr.yml',
|
||||||
|
|||||||
2
.github/workflows/python-versions-runner.yml
vendored
2
.github/workflows/python-versions-runner.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Check out repository code
|
- name: Check out repository code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Trigger python workflow
|
- name: Trigger python workflow
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
2
.github/workflows/releases-validation.yml
vendored
2
.github/workflows/releases-validation.yml
vendored
@@ -18,7 +18,7 @@ jobs:
|
|||||||
python: [3.5.4, 3.6.7, 3.7.5, 3.8.1]
|
python: [3.5.4, 3.6.7, 3.7.5, 3.8.1]
|
||||||
steps:
|
steps:
|
||||||
- name: setup-python ${{ matrix.python }}
|
- name: setup-python ${{ matrix.python }}
|
||||||
uses: actions/setup-python@v3
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python }}
|
python-version: ${{ matrix.python }}
|
||||||
|
|
||||||
|
|||||||
5
.github/workflows/validate-manifest.yml
vendored
5
.github/workflows/validate-manifest.yml
vendored
@@ -19,9 +19,10 @@ defaults:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validation:
|
validation:
|
||||||
|
if: github.repository_owner == 'actions'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
@@ -34,7 +35,7 @@ jobs:
|
|||||||
needs: [validation]
|
needs: [validation]
|
||||||
if: failure()
|
if: failure()
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
|
|
||||||
|
|||||||
10
README.md
10
README.md
@@ -1,16 +1,16 @@
|
|||||||
# Python for Actions
|
# Python for Actions
|
||||||
This repository contains the code and scripts that we use to build Python packages used in [virtual-environments](https://github.com/actions/virtual-environments) and accessible through the [setup-python](https://github.com/actions/setup-python) Action.
|
This repository contains the code and scripts that we use to build Python packages used in [runner-images](https://github.com/actions/runner-images) and accessible through the [setup-python](https://github.com/actions/setup-python) Action.
|
||||||
File [versions-manifest.json](./versions-manifest.json) contains the list of available and released versions.
|
File [versions-manifest.json](./versions-manifest.json) contains the list of available and released versions.
|
||||||
|
|
||||||
> Caution: this is prepared for and only permitted for use by actions `virtual-environments` and `setup-python` action.
|
> Caution: this is prepared for and only permitted for use by actions `runner-images` and `setup-python` action.
|
||||||
|
|
||||||
**Status**: Currently under development and in use for beta and preview actions. This repo is undergoing rapid changes.
|
**Status**: Currently under development and in use for beta and preview actions. This repo is undergoing rapid changes.
|
||||||
|
|
||||||
Some versions are pre-installed on [virtual-environments](https://github.com/actions/virtual-environments) images.
|
Some versions are pre-installed on [runner-images](https://github.com/actions/runner-images) images.
|
||||||
More versions will (soon!) be available to install on-the-fly through the [`setup-python`](https://github.com/actions/setup-python) action.
|
More versions will (soon!) be available to install on-the-fly through the [`setup-python`](https://github.com/actions/setup-python) action.
|
||||||
|
|
||||||
## Adding new versions
|
## Adding new versions
|
||||||
We are trying to build and release new versions of Python as soon as they are released. Please open an issue in [actions/virtual-environments](https://github.com/actions/virtual-environments) if any versions are missing.
|
We are trying to build and release new versions of Python as soon as they are released. Please open an issue in [actions/setup-python](https://github.com/actions/setup-python/issues) if any versions are missing.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure
|
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure
|
||||||
|
|||||||
@@ -83,4 +83,92 @@ class macOSPythonBuilder : NixPythonBuilder {
|
|||||||
|
|
||||||
Execute-Command -Command $configureString
|
Execute-Command -Command $configureString
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[string] GetPkgName() {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Return Python installation Package.
|
||||||
|
#>
|
||||||
|
|
||||||
|
$nativeVersion = Convert-Version -version $this.Version
|
||||||
|
$architecture = "-macos11"
|
||||||
|
$extension = ".pkg"
|
||||||
|
|
||||||
|
$pkg = "python-${nativeVersion}${architecture}${extension}"
|
||||||
|
|
||||||
|
return $pkg
|
||||||
|
}
|
||||||
|
|
||||||
|
[uri] GetPkgUri() {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Get base Python URI and return complete URI for Python installation package.
|
||||||
|
#>
|
||||||
|
|
||||||
|
$base = $this.GetBaseUri()
|
||||||
|
$versionName = $this.GetBaseVersion()
|
||||||
|
$pkg = $this.GetPkgName()
|
||||||
|
|
||||||
|
$uri = "${base}/${versionName}/${pkg}"
|
||||||
|
|
||||||
|
return $uri
|
||||||
|
}
|
||||||
|
|
||||||
|
[string] DownloadPkg() {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Download Python installation executable into artifact location.
|
||||||
|
#>
|
||||||
|
|
||||||
|
$pkgUri = $this.GetPkgUri()
|
||||||
|
|
||||||
|
Write-Host "Sources URI: $pkgUri"
|
||||||
|
$pkgLocation = Download-File -Uri $pkgUri -OutputFolder $this.WorkFolderLocation
|
||||||
|
Write-Debug "Done; Package location: $pkgLocation"
|
||||||
|
|
||||||
|
New-Item -Path $this.WorkFolderLocation -Name "build_output.txt" -ItemType File
|
||||||
|
return $pkgLocation
|
||||||
|
}
|
||||||
|
|
||||||
|
[void] CreateInstallationScriptPkg() {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Create Python artifact installation script based on specified template.
|
||||||
|
#>
|
||||||
|
|
||||||
|
$installationTemplateLocation = Join-Path -Path $this.InstallationTemplatesLocation -ChildPath "macos-pkg-setup-template.sh"
|
||||||
|
$installationTemplateContent = Get-Content -Path $installationTemplateLocation -Raw
|
||||||
|
$installationScriptLocation = New-Item -Path $this.WorkFolderLocation -Name $this.InstallationScriptName -ItemType File
|
||||||
|
|
||||||
|
$variablesToReplace = @{
|
||||||
|
"{{__VERSION_FULL__}}" = $this.Version;
|
||||||
|
"{{__PKG_NAME__}}" = $this.GetPkgName();
|
||||||
|
}
|
||||||
|
|
||||||
|
$variablesToReplace.keys | ForEach-Object { $installationTemplateContent = $installationTemplateContent.Replace($_, $variablesToReplace[$_]) }
|
||||||
|
$installationTemplateContent | Out-File -FilePath $installationScriptLocation
|
||||||
|
Write-Debug "Done; Installation script location: $installationScriptLocation)"
|
||||||
|
}
|
||||||
|
|
||||||
|
[void] Build() {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Generates Python artifact from downloaded Python installation executable.
|
||||||
|
#>
|
||||||
|
|
||||||
|
$PkgVersion = [semver]"3.11.0-beta.1"
|
||||||
|
|
||||||
|
if ($this.Version -ge $PkgVersion) {
|
||||||
|
Write-Host "Download Python $($this.Version) [$($this.Architecture)] package..."
|
||||||
|
$this.DownloadPkg()
|
||||||
|
|
||||||
|
Write-Host "Create installation script..."
|
||||||
|
$this.CreateInstallationScriptPkg()
|
||||||
|
} else {
|
||||||
|
([NixPythonBuilder]$this).Build()
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Archive artifact"
|
||||||
|
$this.ArchiveArtifact()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
helpers
2
helpers
Submodule helpers updated: 6f1aa3ce73...896369fc7d
78
installers/macos-pkg-setup-template.sh
Normal file
78
installers/macos-pkg-setup-template.sh
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
set -e
|
||||||
|
|
||||||
|
PYTHON_FULL_VERSION="{{__VERSION_FULL__}}"
|
||||||
|
PYTHON_PKG_NAME="{{__PKG_NAME__}}"
|
||||||
|
MAJOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 1)
|
||||||
|
MINOR_VERSION=$(echo $PYTHON_FULL_VERSION | cut -d '.' -f 2)
|
||||||
|
|
||||||
|
PYTHON_MAJOR=python$MAJOR_VERSION
|
||||||
|
PYTHON_MAJOR_DOT_MINOR=python$MAJOR_VERSION.$MINOR_VERSION
|
||||||
|
PYTHON_MAJOR_MINOR=python$MAJOR_VERSION$MINOR_VERSION
|
||||||
|
|
||||||
|
if [ -z ${AGENT_TOOLSDIRECTORY+x} ]; then
|
||||||
|
# No AGENT_TOOLSDIRECTORY on GitHub images
|
||||||
|
TOOLCACHE_ROOT=$RUNNER_TOOL_CACHE
|
||||||
|
else
|
||||||
|
TOOLCACHE_ROOT=$AGENT_TOOLSDIRECTORY
|
||||||
|
fi
|
||||||
|
|
||||||
|
PYTHON_TOOLCACHE_PATH=$TOOLCACHE_ROOT/Python
|
||||||
|
PYTHON_TOOLCACHE_VERSION_PATH=$PYTHON_TOOLCACHE_PATH/$PYTHON_FULL_VERSION
|
||||||
|
PYTHON_TOOLCACHE_VERSION_ARCH_PATH=$PYTHON_TOOLCACHE_VERSION_PATH/x64
|
||||||
|
PYTHON_FRAMEWORK_PATH="/Library/Frameworks/Python.framework/Versions/${MAJOR_VERSION}.${MINOR_VERSION}"
|
||||||
|
PYTHON_APPLICATION_PATH="/Applications/Python ${MAJOR_VERSION}.${MINOR_VERSION}"
|
||||||
|
|
||||||
|
echo "Check if Python hostedtoolcache folder exist..."
|
||||||
|
if [ ! -d $PYTHON_TOOLCACHE_PATH ]; then
|
||||||
|
echo "Creating Python hostedtoolcache folder..."
|
||||||
|
mkdir -p $PYTHON_TOOLCACHE_PATH
|
||||||
|
else
|
||||||
|
# remove ALL other directories for same major.minor python versions
|
||||||
|
find $PYTHON_TOOLCACHE_PATH -name "${MAJOR_VERSION}.${MINOR_VERSION}.*"|while read python_version;do
|
||||||
|
python_version_x64="$python_version/x64"
|
||||||
|
if [ -e "$python_version_x64" ];then
|
||||||
|
echo "Deleting Python $python_version_x64"
|
||||||
|
rm -rf "$python_version_x64"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Install Python binaries from prebuilt package"
|
||||||
|
sudo installer -pkg $PYTHON_PKG_NAME -target /
|
||||||
|
|
||||||
|
echo "Create hostedtoolcach symlinks (Required for the backward compatibility)"
|
||||||
|
echo "Create Python $PYTHON_FULL_VERSION folder"
|
||||||
|
mkdir -p $PYTHON_TOOLCACHE_VERSION_ARCH_PATH
|
||||||
|
cd $PYTHON_TOOLCACHE_VERSION_ARCH_PATH
|
||||||
|
|
||||||
|
ln -s "${PYTHON_FRAMEWORK_PATH}/bin" bin
|
||||||
|
ln -s "${PYTHON_FRAMEWORK_PATH}/include" include
|
||||||
|
ln -s "${PYTHON_FRAMEWORK_PATH}/share" share
|
||||||
|
ln -s "${PYTHON_FRAMEWORK_PATH}/lib" lib
|
||||||
|
|
||||||
|
echo "Create additional symlinks (Required for the UsePythonVersion Azure Pipelines task and the setup-python GitHub Action)"
|
||||||
|
ln -s ./bin/$PYTHON_MAJOR_DOT_MINOR python
|
||||||
|
|
||||||
|
cd bin/
|
||||||
|
|
||||||
|
# This symlink already exists if Python version with the same major.minor version is installed,
|
||||||
|
# since we do not remove the framework folder
|
||||||
|
if [ ! -f $PYTHON_MAJOR_MINOR ]; then
|
||||||
|
ln -s $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f python ]; then
|
||||||
|
ln -s $PYTHON_MAJOR_DOT_MINOR python
|
||||||
|
fi
|
||||||
|
|
||||||
|
chmod +x ../python $PYTHON_MAJOR $PYTHON_MAJOR_DOT_MINOR $PYTHON_MAJOR_MINOR python
|
||||||
|
|
||||||
|
echo "Upgrading pip..."
|
||||||
|
./python -m ensurepip
|
||||||
|
./python -m pip install --ignore-installed pip --disable-pip-version-check --no-warn-script-location
|
||||||
|
|
||||||
|
echo "Install OpenSSL certificates"
|
||||||
|
sh -e "${PYTHON_APPLICATION_PATH}/Install Certificates.command"
|
||||||
|
|
||||||
|
echo "Create complete file"
|
||||||
|
touch $PYTHON_TOOLCACHE_VERSION_PATH/x64.complete
|
||||||
@@ -56,7 +56,7 @@ Describe "Tests" {
|
|||||||
# }
|
# }
|
||||||
# }
|
# }
|
||||||
|
|
||||||
if (($Version -ge "3.2.0") -and -not ([semver]"$($Version.Major).$($Version.Minor)" -eq [semver]"3.11" -and $Version.PreReleaseLabel)) {
|
if (($Version -ge "3.2.0") -and ($Version -lt "3.11.0")) {
|
||||||
It "Check if sqlite3 module is installed" {
|
It "Check if sqlite3 module is installed" {
|
||||||
"python ./sources/python-sqlite3.py" | Should -ReturnZeroExitCode
|
"python ./sources/python-sqlite3.py" | Should -ReturnZeroExitCode
|
||||||
}
|
}
|
||||||
@@ -96,4 +96,8 @@ Describe "Tests" {
|
|||||||
"./dist/simple-test" | Should -ReturnZeroExitCode
|
"./dist/simple-test" | Should -ReturnZeroExitCode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
It "Check urlopen with HTTPS works" {
|
||||||
|
"python ./sources/python-urlopen-https.py" | Should -ReturnZeroExitCode
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,12 @@ os_type = platform.system()
|
|||||||
version = sys.argv[1]
|
version = sys.argv[1]
|
||||||
nativeVersion = sys.argv[2]
|
nativeVersion = sys.argv[2]
|
||||||
|
|
||||||
|
versions=version.split(".")
|
||||||
|
version_major=int(versions[0])
|
||||||
|
version_minor=int(versions[1])
|
||||||
|
|
||||||
|
pkg_installer = os_type == 'Darwin' and (version_major == 3 and version_minor >= 11)
|
||||||
|
|
||||||
lib_dir_path = sysconfig.get_config_var('LIBDIR')
|
lib_dir_path = sysconfig.get_config_var('LIBDIR')
|
||||||
ld_library_name = sysconfig.get_config_var('LDLIBRARY')
|
ld_library_name = sysconfig.get_config_var('LDLIBRARY')
|
||||||
|
|
||||||
@@ -19,7 +25,11 @@ have_libreadline = sysconfig.get_config_var("HAVE_LIBREADLINE")
|
|||||||
### Define expected variables
|
### Define expected variables
|
||||||
if os_type == 'Linux': expected_ld_library_extension = 'so'
|
if os_type == 'Linux': expected_ld_library_extension = 'so'
|
||||||
if os_type == 'Darwin': expected_ld_library_extension = 'dylib'
|
if os_type == 'Darwin': expected_ld_library_extension = 'dylib'
|
||||||
expected_lib_dir_path = '{0}/Python/{1}/x64/lib'.format(os.getenv("AGENT_TOOLSDIRECTORY"), version)
|
|
||||||
|
if pkg_installer:
|
||||||
|
expected_lib_dir_path = f'/Library/Frameworks/Python.framework/Versions/{version_major}.{version_minor}/lib'
|
||||||
|
else:
|
||||||
|
expected_lib_dir_path = f'{os.getenv("AGENT_TOOLSDIRECTORY")}/Python/{version}/x64/lib'
|
||||||
|
|
||||||
# Check modules
|
# Check modules
|
||||||
### Validate libraries path
|
### Validate libraries path
|
||||||
@@ -38,7 +48,8 @@ if is_shared:
|
|||||||
exit(1)
|
exit(1)
|
||||||
else:
|
else:
|
||||||
print('%s was built without shared extensions' % ld_library_name)
|
print('%s was built without shared extensions' % ld_library_name)
|
||||||
exit(1)
|
if not pkg_installer:
|
||||||
|
exit(1)
|
||||||
|
|
||||||
### Validate macOS
|
### Validate macOS
|
||||||
if os_type == 'Darwin':
|
if os_type == 'Darwin':
|
||||||
@@ -59,12 +70,15 @@ if os_type == 'Darwin':
|
|||||||
|
|
||||||
if openssl_includes != expected_openssl_includes:
|
if openssl_includes != expected_openssl_includes:
|
||||||
print('Invalid openssl_includes: %s; Expected: %s' % (openssl_includes, expected_openssl_includes))
|
print('Invalid openssl_includes: %s; Expected: %s' % (openssl_includes, expected_openssl_includes))
|
||||||
exit(1)
|
if not pkg_installer:
|
||||||
|
exit(1)
|
||||||
if openssl_ldflags != expected_openssl_ldflags:
|
if openssl_ldflags != expected_openssl_ldflags:
|
||||||
print('Invalid openssl_ldflags: %s; Expected: %s' % (openssl_ldflags, expected_openssl_ldflags))
|
print('Invalid openssl_ldflags: %s; Expected: %s' % (openssl_ldflags, expected_openssl_ldflags))
|
||||||
exit(1)
|
if not pkg_installer:
|
||||||
|
exit(1)
|
||||||
|
|
||||||
### Validate libreadline
|
### Validate libreadline
|
||||||
if not have_libreadline:
|
if sys.version_info < (3, 12):
|
||||||
print('Missing libreadline')
|
if not have_libreadline:
|
||||||
exit(1)
|
print('Missing libreadline')
|
||||||
|
exit(1)
|
||||||
@@ -271,6 +271,12 @@ if sys.version_info >= (3, 11) and platform.system() == 'Linux' and '18.04' in p
|
|||||||
standard_library.remove('tkinter')
|
standard_library.remove('tkinter')
|
||||||
standard_library.remove('turtle')
|
standard_library.remove('turtle')
|
||||||
|
|
||||||
|
# 'smtpd', 'asyncore' and 'asynchat' modules have been removed from Python 3.12
|
||||||
|
if sys.version_info >= (3, 12):
|
||||||
|
standard_library.remove('smtpd')
|
||||||
|
standard_library.remove('asyncore')
|
||||||
|
standard_library.remove('asynchat')
|
||||||
|
|
||||||
# Remove tkinter and Easter eggs
|
# Remove tkinter and Easter eggs
|
||||||
excluded_modules = [
|
excluded_modules = [
|
||||||
'antigravity',
|
'antigravity',
|
||||||
|
|||||||
10
tests/sources/python-urlopen-https.py
Normal file
10
tests/sources/python-urlopen-https.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info[0] == 2:
|
||||||
|
from urllib2 import urlopen
|
||||||
|
else:
|
||||||
|
from urllib.request import urlopen
|
||||||
|
|
||||||
|
response = urlopen("https://raw.githubusercontent.com/actions/python-versions/c641695f6a07526c18f10e374e503e649fef9427/.gitignore")
|
||||||
|
data = response.read()
|
||||||
|
assert len(data) == 140, len(data)
|
||||||
@@ -1,4 +1,188 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "3.12.0-alpha.2",
|
||||||
|
"stable": false,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.12.0-alpha.2-3524742960",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.2-darwin-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "darwin",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.2-3524742960/python-3.12.0-alpha.2-darwin-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.2-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.2-3524742960/python-3.12.0-alpha.2-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.2-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.2-3524742960/python-3.12.0-alpha.2-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.2-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.2-3524742960/python-3.12.0-alpha.2-linux-22.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.2-win32-x64.zip",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "win32",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.2-3524742960/python-3.12.0-alpha.2-win32-x64.zip"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.2-win32-x86.zip",
|
||||||
|
"arch": "x86",
|
||||||
|
"platform": "win32",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.2-3524742960/python-3.12.0-alpha.2-win32-x86.zip"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "3.12.0-alpha.1",
|
||||||
|
"stable": false,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.12.0-alpha.1-3427281458",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.1-darwin-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "darwin",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.1-3427281458/python-3.12.0-alpha.1-darwin-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.1-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.1-3427281458/python-3.12.0-alpha.1-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.1-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.1-3427281458/python-3.12.0-alpha.1-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.1-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.1-3427281458/python-3.12.0-alpha.1-linux-22.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.1-win32-x64.zip",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "win32",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.1-3427281458/python-3.12.0-alpha.1-win32-x64.zip"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.12.0-alpha.1-win32-x86.zip",
|
||||||
|
"arch": "x86",
|
||||||
|
"platform": "win32",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.1-3427281458/python-3.12.0-alpha.1-win32-x86.zip"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "3.11.0",
|
||||||
|
"stable": true,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.11.0-3328127706",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-darwin-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "darwin",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-3328127706/python-3.11.0-darwin-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-3328127706/python-3.11.0-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-3328127706/python-3.11.0-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-3328127706/python-3.11.0-linux-22.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-win32-x64.zip",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "win32",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-3328127706/python-3.11.0-win32-x64.zip"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-win32-x86.zip",
|
||||||
|
"arch": "x86",
|
||||||
|
"platform": "win32",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-3328127706/python-3.11.0-win32-x86.zip"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "3.11.0-rc.2",
|
||||||
|
"stable": false,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.11.0-rc.2-3172748327",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-rc.2-darwin-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "darwin",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-rc.2-3172748327/python-3.11.0-rc.2-darwin-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-rc.2-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-rc.2-3172748327/python-3.11.0-rc.2-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-rc.2-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-rc.2-3172748327/python-3.11.0-rc.2-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-rc.2-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-rc.2-3172748327/python-3.11.0-rc.2-linux-22.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-rc.2-win32-x64.zip",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "win32",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-rc.2-3172748327/python-3.11.0-rc.2-win32-x64.zip"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.11.0-rc.2-win32-x86.zip",
|
||||||
|
"arch": "x86",
|
||||||
|
"platform": "win32",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.0-rc.2-3172748327/python-3.11.0-rc.2-win32-x86.zip"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "3.11.0-rc.1",
|
"version": "3.11.0-rc.1",
|
||||||
"stable": false,
|
"stable": false,
|
||||||
@@ -548,6 +732,52 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"version": "3.10.8",
|
||||||
|
"stable": true,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.10.8-3271105491",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.10.8-darwin-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "darwin",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.8-3271105491/python-3.10.8-darwin-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.10.8-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.8-3271105491/python-3.10.8-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.10.8-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.8-3271105491/python-3.10.8-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.10.8-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.8-3271105491/python-3.10.8-linux-22.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.10.8-win32-x64.zip",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "win32",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.8-3271105491/python-3.10.8-win32-x64.zip"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.10.8-win32-x86.zip",
|
||||||
|
"arch": "x86",
|
||||||
|
"platform": "win32",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.10.8-3271105491/python-3.10.8-win32-x86.zip"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "3.10.7",
|
"version": "3.10.7",
|
||||||
"stable": true,
|
"stable": true,
|
||||||
@@ -1465,6 +1695,68 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"version": "3.9.15",
|
||||||
|
"stable": true,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.9.15-3271275280",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.9.15-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.15-3271275280/python-3.9.15-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.9.15-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.15-3271275280/python-3.9.15-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.9.15-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.15-3271275280/python-3.9.15-linux-22.04-x64.tar.gz"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "3.9.14",
|
||||||
|
"stable": true,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.9.14-3008346885",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.9.14-darwin-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "darwin",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.14-3008346885/python-3.9.14-darwin-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.9.14-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.14-3008346885/python-3.9.14-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.9.14-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.14-3008346885/python-3.9.14-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.9.14-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.14-3008346885/python-3.9.14-linux-22.04-x64.tar.gz"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "3.9.13",
|
"version": "3.9.13",
|
||||||
"stable": true,
|
"stable": true,
|
||||||
@@ -2343,6 +2635,74 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"version": "3.8.15",
|
||||||
|
"stable": true,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.8.15-3582057865",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.8.15-darwin-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "darwin",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.15-3582057865/python-3.8.15-darwin-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.8.15-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.15-3582057865/python-3.8.15-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.8.15-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.15-3582057865/python-3.8.15-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.8.15-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.15-3582057865/python-3.8.15-linux-22.04-x64.tar.gz"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "3.8.14",
|
||||||
|
"stable": true,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.8.14-3008344966",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.8.14-darwin-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "darwin",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.14-3008344966/python-3.8.14-darwin-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.8.14-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.14-3008344966/python-3.8.14-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.8.14-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.14-3008344966/python-3.8.14-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.8.14-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.8.14-3008344966/python-3.8.14-linux-22.04-x64.tar.gz"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "3.8.13",
|
"version": "3.8.13",
|
||||||
"stable": true,
|
"stable": true,
|
||||||
@@ -2930,6 +3290,74 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"version": "3.7.15",
|
||||||
|
"stable": true,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.7.15-3272001243",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.7.15-darwin-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "darwin",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.7.15-3272001243/python-3.7.15-darwin-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.7.15-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.7.15-3272001243/python-3.7.15-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.7.15-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.7.15-3272001243/python-3.7.15-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.7.15-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.7.15-3272001243/python-3.7.15-linux-22.04-x64.tar.gz"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "3.7.14",
|
||||||
|
"stable": true,
|
||||||
|
"release_url": "https://github.com/actions/python-versions/releases/tag/3.7.14-3008342067",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"filename": "python-3.7.14-darwin-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "darwin",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.7.14-3008342067/python-3.7.14-darwin-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.7.14-linux-18.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "18.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.7.14-3008342067/python-3.7.14-linux-18.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.7.14-linux-20.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "20.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.7.14-3008342067/python-3.7.14-linux-20.04-x64.tar.gz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "python-3.7.14-linux-22.04-x64.tar.gz",
|
||||||
|
"arch": "x64",
|
||||||
|
"platform": "linux",
|
||||||
|
"platform_version": "22.04",
|
||||||
|
"download_url": "https://github.com/actions/python-versions/releases/download/3.7.14-3008342067/python-3.7.14-linux-22.04-x64.tar.gz"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "3.7.13",
|
"version": "3.7.13",
|
||||||
"stable": true,
|
"stable": true,
|
||||||
|
|||||||
Reference in New Issue
Block a user