mirror of
https://github.com/actions/python-versions.git
synced 2025-12-15 15:32:11 +00:00
Compare commits
13 Commits
3.11.1-363
...
3.11.0-373
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f99915cae1 | ||
|
|
1fbaf20636 | ||
|
|
a4dd6d4b89 | ||
|
|
80b21460cf | ||
|
|
2e59cc3fa4 | ||
|
|
b7447f0e37 | ||
|
|
b558df2c7a | ||
|
|
6dd0b7502a | ||
|
|
fe45ddc7b4 | ||
|
|
9feffedd12 | ||
|
|
c483dd7702 | ||
|
|
69e05af37b | ||
|
|
626f42cb96 |
@@ -1,16 +1,17 @@
|
||||
name: Build python package
|
||||
|
||||
name: Build Python package
|
||||
run-name: Generate Python ${{ inputs.VERSION || '3.11.0' }}
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
VERSION:
|
||||
description: 'Python version to build and upload'
|
||||
default: '3.9.9'
|
||||
default: '3.11.0'
|
||||
required: true
|
||||
PUBLISH_RELEASES:
|
||||
description: 'Whether to publish releases'
|
||||
required: true
|
||||
default: 'false'
|
||||
type: boolean
|
||||
default: false
|
||||
PLATFORMS:
|
||||
description: 'Platforms for execution in "os" or "os_arch" format (arch is "x64" by default)'
|
||||
required: true
|
||||
@@ -24,7 +25,7 @@ on:
|
||||
- 'main'
|
||||
|
||||
env:
|
||||
VERSION: ${{ github.event.inputs.VERSION || '3.9.9' }}
|
||||
VERSION: ${{ inputs.VERSION || '3.11.0' }}
|
||||
defaults:
|
||||
run:
|
||||
shell: pwsh
|
||||
@@ -38,7 +39,7 @@ jobs:
|
||||
- name: Generate execution matrix
|
||||
id: generate-matrix
|
||||
run: |
|
||||
[String[]]$configurations = "${{ github.event.inputs.platforms || 'ubuntu-18.04,ubuntu-20.04,ubuntu-22.04,macos-11,windows-2019_x64,windows-2019_x86' }}".Split(",").Trim()
|
||||
[String[]]$configurations = "${{ inputs.platforms || 'ubuntu-18.04,ubuntu-20.04,ubuntu-22.04,macos-11,windows-2019_x64,windows-2019_x86' }}".Split(",").Trim()
|
||||
$matrix = @()
|
||||
|
||||
foreach ($configuration in $configurations) {
|
||||
@@ -66,7 +67,7 @@ jobs:
|
||||
include: ${{ fromJson(needs.generate_matrix.outputs.matrix) }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
env:
|
||||
ARTIFACT_NAME: python-${{ github.event.inputs.VERSION || '3.9.9' }}-${{ matrix.platform }}-${{ matrix.arch }}
|
||||
ARTIFACT_NAME: python-${{ inputs.VERSION || '3.11.0' }}-${{ matrix.platform }}-${{ matrix.arch }}
|
||||
steps:
|
||||
|
||||
- name: Check out repository code
|
||||
@@ -93,7 +94,7 @@ jobs:
|
||||
include: ${{ fromJson(needs.generate_matrix.outputs.matrix) }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
env:
|
||||
ARTIFACT_NAME: python-${{ github.event.inputs.VERSION || '3.9.9' }}-${{ matrix.platform }}-${{ matrix.arch }}
|
||||
ARTIFACT_NAME: python-${{ inputs.VERSION || '3.11.0' }}-${{ matrix.platform }}-${{ matrix.arch }}
|
||||
steps:
|
||||
|
||||
- name: Check out repository code
|
||||
@@ -164,7 +165,7 @@ jobs:
|
||||
|
||||
publish_release:
|
||||
name: Publish release
|
||||
if: github.event_name == 'workflow_dispatch' && github.event.inputs.PUBLISH_RELEASES == 'true'
|
||||
if: github.event_name == 'workflow_dispatch' && inputs.PUBLISH_RELEASES
|
||||
needs: test_python
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -207,7 +208,7 @@ jobs:
|
||||
- name: Trigger "Create Pull Request" workflow
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{ secrets.PERSONAL_TOKEN }}
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
github.rest.actions.createWorkflowDispatch({
|
||||
owner: context.repo.owner,
|
||||
33
.github/workflows/create-pr.yml
vendored
33
.github/workflows/create-pr.yml
vendored
@@ -2,32 +2,9 @@ name: Create Pull Request
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: pwsh
|
||||
|
||||
jobs:
|
||||
create_pr:
|
||||
name: Create Pull Request
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Create versions-manifest.json
|
||||
run: |
|
||||
./helpers/packages-generation/manifest-generator.ps1 -RepositoryFullName "$env:GITHUB_REPOSITORY" `
|
||||
-GitHubAccessToken "${{secrets.GITHUB_TOKEN}}" `
|
||||
-OutputFile "./versions-manifest.json" `
|
||||
-ConfigurationFile "./config/python-manifest-config.json"
|
||||
- name: Create GitHub PR
|
||||
run: |
|
||||
$formattedDate = Get-Date -Format "MM/dd/yyyy"
|
||||
./helpers/github/create-pull-request.ps1 `
|
||||
-RepositoryFullName "$env:GITHUB_REPOSITORY" `
|
||||
-AccessToken "${{secrets.GITHUB_TOKEN}}" `
|
||||
-BranchName "update-versions-manifest-file" `
|
||||
-CommitMessage "Update versions-manifest" `
|
||||
-PullRequestTitle "[versions-manifest] Update for release from ${formattedDate}" `
|
||||
-PullRequestBody "Update versions-manifest.json for release from ${formattedDate}"
|
||||
create-pr:
|
||||
uses: actions/versions-package-tools/.github/workflows/create-pr-to-update-manifest.yml@main
|
||||
with:
|
||||
tool-name: "python"
|
||||
secrets: inherit
|
||||
|
||||
95
.github/workflows/get-python-versions.yml
vendored
95
.github/workflows/get-python-versions.yml
vendored
@@ -4,93 +4,10 @@ on:
|
||||
- cron: '0 3,15 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
TOOL_NAME: "Python"
|
||||
defaults:
|
||||
run:
|
||||
shell: pwsh
|
||||
|
||||
jobs:
|
||||
find_new_versions:
|
||||
if: github.repository_owner == 'actions'
|
||||
name: Find new versions
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
versions_output: ${{ steps.Get_new_versions.outputs.TOOL_VERSIONS }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- id: Get_new_versions
|
||||
name: Get new versions
|
||||
run: ./helpers/get-new-tool-versions/get-new-tool-versions.ps1 -ToolName ${{ env.TOOL_NAME }}
|
||||
|
||||
check_new_versions:
|
||||
name: Check new versions
|
||||
runs-on: ubuntu-latest
|
||||
needs: find_new_versions
|
||||
env:
|
||||
TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Check Versions
|
||||
if: env.TOOL_VERSIONS == ''
|
||||
run: |
|
||||
Write-Host "No new versions were found"
|
||||
Import-Module "./helpers/github/github-api.psm1"
|
||||
$gitHubApi = Get-GitHubApi -RepositoryFullName "$env:GITHUB_REPOSITORY" `
|
||||
-AccessToken "${{ secrets.PERSONAL_TOKEN }}"
|
||||
$gitHubApi.CancelWorkflow("$env:GITHUB_RUN_ID")
|
||||
Start-Sleep -Seconds 60
|
||||
- name: Send Slack notification
|
||||
run: |
|
||||
$pipelineUrl = "$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID"
|
||||
$message = "The following versions of '${{ env.TOOL_NAME }}' are available to upload: ${{ env.TOOL_VERSIONS }}\nLink to the pipeline: $pipelineUrl"
|
||||
./helpers/get-new-tool-versions/send-slack-notification.ps1 -Url "${{ secrets.SLACK_CHANNEL_URL }}" `
|
||||
-ToolName "${{ env.TOOL_NAME }}" `
|
||||
-ImageUrl "https://avatars.githubusercontent.com/u/1525981?s=200&v=4" `
|
||||
-Text "$message"
|
||||
|
||||
trigger_builds:
|
||||
name: Trigger builds
|
||||
runs-on: ubuntu-latest
|
||||
needs: [find_new_versions, check_new_versions]
|
||||
env:
|
||||
TOOL_VERSIONS: ${{needs.find_new_versions.outputs.versions_output}}
|
||||
environment: Get Available Tools Versions - Publishing Approval
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Trigger "Build python packages" workflow
|
||||
run:
|
||||
./helpers/github/run-ci-builds.ps1 -RepositoryFullName "$env:GITHUB_REPOSITORY" `
|
||||
-AccessToken "${{ secrets.PERSONAL_TOKEN }}" `
|
||||
-WorkflowFileName "python-builder.yml" `
|
||||
-WorkflowDispatchRef "main" `
|
||||
-ToolVersions "${{ env.TOOL_VERSIONS }}" `
|
||||
-PublishReleases "true"
|
||||
|
||||
check_build:
|
||||
name: Check build for failures
|
||||
runs-on: ubuntu-latest
|
||||
needs: [find_new_versions, check_new_versions, trigger_builds]
|
||||
if: failure()
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Send Slack notification if build fails
|
||||
run: |
|
||||
$pipelineUrl = "$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID"
|
||||
$message = "The build of the '${{ env.TOOL_NAME }}' detection pipeline failed :progress-error:\nLink to the pipeline: $pipelineUrl"
|
||||
./helpers/get-new-tool-versions/send-slack-notification.ps1 -Url "${{ secrets.SLACK_CHANNEL_URL }}" `
|
||||
-ToolName "${{ env.TOOL_NAME }}" `
|
||||
-Text "$message" `
|
||||
-ImageUrl "https://avatars.githubusercontent.com/u/1525981?s=200&v=4"
|
||||
get-new-python-versions:
|
||||
uses: actions/versions-package-tools/.github/workflows/get-new-tool-versions.yml@main
|
||||
with:
|
||||
tool-name: "Python"
|
||||
image-url: "https://avatars.githubusercontent.com/u/1525981?s=200&v=4"
|
||||
secrets: inherit
|
||||
2
.github/workflows/python-versions-runner.yml
vendored
2
.github/workflows/python-versions-runner.yml
vendored
@@ -28,4 +28,4 @@ jobs:
|
||||
$versions = ${{ github.event.inputs.versions }}
|
||||
./builders/python-versions-runner.ps1 -Versions $versions.Split(",") -PublishRelease ${{ github.event.inputs.publish-releases }}
|
||||
env:
|
||||
PERSONAL_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
|
||||
TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
48
.github/workflows/validate-manifest.yml
vendored
48
.github/workflows/validate-manifest.yml
vendored
@@ -1,49 +1,21 @@
|
||||
name: Validate manifest
|
||||
|
||||
on:
|
||||
# The GITHUB_TOKEN secret is used to create a PR
|
||||
# The pull_request event will not be triggered by it
|
||||
# That's one of the reasons we need the schedule to validate the versions-manifest.json file
|
||||
schedule:
|
||||
- cron: '0 8,20 * * *'
|
||||
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'versions-manifest.json'
|
||||
|
||||
env:
|
||||
TOOL_NAME: "Python"
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: pwsh
|
||||
|
||||
jobs:
|
||||
validation:
|
||||
if: github.repository_owner == 'actions'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Validate python-versions manifest
|
||||
run: .\helpers\packages-generation\manifest-validator.ps1 -ManifestPath '.\versions-manifest.json'
|
||||
|
||||
check_build:
|
||||
name: Check validation for failures
|
||||
runs-on: ubuntu-latest
|
||||
needs: [validation]
|
||||
if: failure()
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Send Slack notification if validation fails
|
||||
run: |
|
||||
$pipelineUrl = "$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID"
|
||||
$message = "The validation of python-versions manifest failed. \nLink to the pipeline: $pipelineUrl"
|
||||
.\helpers\get-new-tool-versions\send-slack-notification.ps1 -Url "${{ secrets.SLACK_CHANNEL_URL }}" `
|
||||
-ToolName "${{ env.TOOL_NAME }}" `
|
||||
-Text "$message" `
|
||||
-ImageUrl "https://www.python.org/static/community_logos/python-powered-h-100x130.png"
|
||||
manifest:
|
||||
uses: actions/versions-package-tools/.github/workflows/validate-manifest.yml@main
|
||||
with:
|
||||
tool-name: "Python"
|
||||
image-url: "https://avatars.githubusercontent.com/u/1525981?s=200&v=4"
|
||||
secrets: inherit
|
||||
19
README.md
19
README.md
@@ -4,13 +4,22 @@ File [versions-manifest.json](./versions-manifest.json) contains the list of ava
|
||||
|
||||
> 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.
|
||||
|
||||
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 are available to install on-the-fly through the [`setup-python`](https://github.com/actions/setup-python) action.
|
||||
|
||||
## 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/setup-python](https://github.com/actions/setup-python/issues) if any versions are missing.
|
||||
## Building installation packages
|
||||
**Ubuntu:** The official Python sources are downloaded from [python.org](https://www.python.org/ftp/python/), built using the `make` tool, and archived along with the installation script for further distribution and installation. We build each Python version against all [versions of Ubuntu](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) that are available at the time the Python version is released.
|
||||
|
||||
**macOS:**
|
||||
- For **Python < 3.11**, the official Python sources are downloaded from [python.org](https://www.python.org/ftp/python/), built using the `make` tool, and archived along with the installation script for further distribution and installation. For backward compatibility, we build each Python version against the oldest [version of macOS](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) that is available at the time the Python version is released.
|
||||
- For **Python >= 3.11**, the official macOS `universal2` Python binaries are simply downloaded from [python.org](https://www.python.org/ftp/python/) and archived along with the installation script for further distribution and installation.
|
||||
|
||||
**Windows:** The official Python executables are simply downloaded from [python.org](https://www.python.org/ftp/python/) and archived along with the installation script for further distribution and installation.
|
||||
|
||||
## Support policy
|
||||
We aim to make new versions of Python available as soon as they are released. Both stable and prerelease versions are considered for building and releasing. Please open an issue in [actions/setup-python](https://github.com/actions/setup-python) if a version you're looking for isn't available.
|
||||
|
||||
When a new version of an operating system is released and made available for use with [GitHub hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources), we will provide the **latest existing patch versions of Python for all major versions that have not reached [end-of-life](https://devguide.python.org/versions/)**. Any subsequent Python versions will be made available for the new OS as well.
|
||||
|
||||
## Contribution
|
||||
Contributions are welcome! See [Contributor's Guide](./CONTRIBUTING.md) for more details about contribution process and code structure
|
||||
|
||||
@@ -12,10 +12,10 @@ function Invoke-Workflow {
|
||||
}
|
||||
} | ConvertTo-Json
|
||||
$headers = @{
|
||||
Authorization="Bearer $env:PERSONAL_TOKEN"
|
||||
Authorization="Bearer $env:TOKEN"
|
||||
}
|
||||
$actionsRepoUri = "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/actions"
|
||||
Invoke-RestMethod -uri "$actionsRepoUri/workflows/python-builder.yml/dispatches" -method POST -headers $headers -body $payload
|
||||
Invoke-RestMethod -uri "$actionsRepoUri/workflows/build-python-packages.yml/dispatches" -method POST -headers $headers -body $payload
|
||||
|
||||
$result = [PSCustomObject]@{
|
||||
Version = $Version
|
||||
|
||||
@@ -1,4 +1,50 @@
|
||||
[
|
||||
{
|
||||
"version": "3.12.0-alpha.3",
|
||||
"stable": false,
|
||||
"release_url": "https://github.com/actions/python-versions/releases/tag/3.12.0-alpha.3-3638209027",
|
||||
"files": [
|
||||
{
|
||||
"filename": "python-3.12.0-alpha.3-darwin-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.3-3638209027/python-3.12.0-alpha.3-darwin-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.12.0-alpha.3-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.3-3638209027/python-3.12.0-alpha.3-linux-18.04-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.12.0-alpha.3-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.3-3638209027/python-3.12.0-alpha.3-linux-20.04-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.12.0-alpha.3-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.3-3638209027/python-3.12.0-alpha.3-linux-22.04-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.12.0-alpha.3-win32-x64.zip",
|
||||
"arch": "x64",
|
||||
"platform": "win32",
|
||||
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.3-3638209027/python-3.12.0-alpha.3-win32-x64.zip"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.12.0-alpha.3-win32-x86.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://github.com/actions/python-versions/releases/download/3.12.0-alpha.3-3638209027/python-3.12.0-alpha.3-win32-x86.zip"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "3.12.0-alpha.2",
|
||||
"stable": false,
|
||||
@@ -91,6 +137,52 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "3.11.1",
|
||||
"stable": true,
|
||||
"release_url": "https://github.com/actions/python-versions/releases/tag/3.11.1-3646089612",
|
||||
"files": [
|
||||
{
|
||||
"filename": "python-3.11.1-darwin-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.1-3646089612/python-3.11.1-darwin-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.11.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.11.1-3646089612/python-3.11.1-linux-18.04-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.11.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.11.1-3646089612/python-3.11.1-linux-20.04-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.11.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.11.1-3646089612/python-3.11.1-linux-22.04-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.11.1-win32-x64.zip",
|
||||
"arch": "x64",
|
||||
"platform": "win32",
|
||||
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.1-3646089612/python-3.11.1-win32-x64.zip"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.11.1-win32-x86.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://github.com/actions/python-versions/releases/download/3.11.1-3646089612/python-3.11.1-win32-x86.zip"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "3.11.0",
|
||||
"stable": true,
|
||||
@@ -1741,11 +1833,51 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "3.9.16",
|
||||
"stable": true,
|
||||
"release_url": "https://github.com/actions/python-versions/releases/tag/3.9.16-3647595251",
|
||||
"files": [
|
||||
{
|
||||
"filename": "python-3.9.16-darwin-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.16-3647595251/python-3.9.16-darwin-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.9.16-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.16-3647595251/python-3.9.16-linux-18.04-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.9.16-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.16-3647595251/python-3.9.16-linux-20.04-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.9.16-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.16-3647595251/python-3.9.16-linux-22.04-x64.tar.gz"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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-darwin-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://github.com/actions/python-versions/releases/download/3.9.15-3271275280/python-3.9.15-darwin-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "python-3.9.15-linux-18.04-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
|
||||
Reference in New Issue
Block a user