a GitHub action to install (pre-release) pythons from deadsnakes
To use this action, add it adjacent to setup-python and opt into it
conditionally.  Here's an example which uses python-version as a matrix.
on:
  push:
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [3.6, 3.7, 3.8, 3.9-dev, 3.10-dev]
    name: main
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        if: "!endsWith(matrix.python-version, '-dev')"
        with:
          python-version: ${{ matrix.python-version }}
      - uses: deadsnakes/[email protected]
        if: endsWith(matrix.python-version, '-dev')
        with:
          python-version: ${{ matrix.python-version }}
          # debug: true  # Optional, to select a Python debug build
          # nogil: true  # Optional, to select a free-threaded Python build (3.13+ only)
      - run: python --version --version && which python- to use nightly builds, add -devto the end of the version name.
- to use tagged builds, just use the version number
In either case, the actions's debug input can be used to install a
debug build of the selected Python version, by adding debug: true.
The nogil input can be used instead of debug to install an experimental
free-threaded build of the selected Python version, by adding nogil: true
Only available for Python 3.13 and later.
The action's tk input can be used to install Tkinter, which is not included
by default. If debug is set then tk-dbg will be used. If nogil is set
then tk-nogil will be used; only available for Python 3.13 and later.