From c56f36c2fb26113c58b42ee4ac5414851295e2b3 Mon Sep 17 00:00:00 2001 From: Graham Dumpleton Date: Sat, 7 Oct 2023 18:13:36 +1100 Subject: [PATCH] Branch so can publish Python 3.11/3.12 files for 1.14.1. --- .github/workflows/main.yml | 275 +++++++++++++++++++------------------ 1 file changed, 145 insertions(+), 130 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 663d7b1a..2aa76d97 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,11 @@ on: - - push - - pull_request + workflow_dispatch: + pull_request: + push: + tags: + - "[0-9]+.[0-9]+.[0-9]+" + - "[0-9]+.[0-9]+.[0-9]+rc[0-9]+" + - "[0-9]+.[0-9]+.[0-9]+dev[0-9]+" jobs: @@ -10,71 +15,73 @@ jobs: strategy: matrix: os: - - ubuntu-latest + - ubuntu-20.04 python-version: - - 2.7 - - 3.5 + # - 2.7 + # - 3.5 - 3.6 - 3.7 - 3.8 - 3.9 - "3.10" - - 3.11-dev - - pypy-2.7 - - pypy-3.6 - - pypy-3.7 + - 3.11 + - 3.12 + # - pypy-2.7 + - pypy-3.8 + - pypy-3.9 + - pypy-3.10 steps: - name: Checkout code - uses: actions/checkout@v1 + uses: actions/checkout@v3 - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Update pip run: python -m pip install -U pip wheel setuptools - name: Install tox - run: python -m pip install tox tox-gh-actions + run: python -m pip install "tox<4.0.0" "tox-gh-actions<3.0.0" - name: Test with tox run: python -m tox - name: Store partial coverage reports - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: coverage path: .coverage.* - test_aarch64_linux: - name: Test (${{ matrix.python.os }}, ${{ matrix.python.python-version }}, aarch64) - runs-on: ${{ matrix.python.os }} - strategy: - matrix: - python: - #- {os: ubuntu-latest, python-version: 3.7, pyver: py37} - #- {os: ubuntu-latest, python-version: 3.8, pyver: py38} - #- {os: ubuntu-latest, python-version: 3.9, pyver: py39} - - {os: ubuntu-latest, python-version: "3.10", pyver: py310} - env: - py: python${{ matrix.python.python-version }} - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Set up QEMU - id: qemu - uses: docker/setup-qemu-action@v1 - - name: Test with tox - run: | - docker run --rm -v ${{ github.workspace }}:/io:rw --workdir=/io \ - arm64v8/ubuntu \ - bash -exc 'apt-get update && \ - apt install software-properties-common -y && \ - add-apt-repository ppa:deadsnakes/ppa -y && \ - apt install -y ${{ env.py }} && \ - apt install -y ${{ env.py }}-venv && \ - ${{ env.py }} -m venv .env && \ - source .env/bin/activate && \ - pip install -U pip wheel setuptools && \ - pip install tox tox-gh-actions && \ - tox -e ${{ matrix.python.pyver }} && \ - deactivate' + # test_aarch64_linux: + # name: Test (${{ matrix.python.os }}, ${{ matrix.python.python-version }}, aarch64) + # runs-on: ${{ matrix.python.os }} + # strategy: + # matrix: + # python: + # #- {os: ubuntu-20.04, python-version: 3.7, pyver: py37} + # #- {os: ubuntu-20.04, python-version: 3.8, pyver: py38} + # #- {os: ubuntu-20.04, python-version: 3.9, pyver: py39} + # - {os: ubuntu-20.04, python-version: "3.10", pyver: py310} + # env: + # py: python${{ matrix.python.python-version }} + # steps: + # - name: Checkout + # uses: actions/checkout@v2 + # - name: Set up QEMU + # id: qemu + # uses: docker/setup-qemu-action@v1 + # - name: Test with tox + # run: | + # docker run --rm -v ${{ github.workspace }}:/io:rw --workdir=/io \ + # arm64v8/ubuntu \ + # bash -exc 'apt-get update && \ + # apt install software-properties-common -y && \ + # add-apt-repository ppa:deadsnakes/ppa -y && \ + # apt install -y ${{ env.py }} && \ + # apt install -y ${{ env.py }}-venv && \ + # ${{ env.py }} -m venv .env && \ + # source .env/bin/activate && \ + # pip install -U pip wheel setuptools && \ + # pip install "tox<4.0.0" "tox-gh-actions<3.0.0" && \ + # tox -e ${{ matrix.python.pyver }} && \ + # deactivate' test_macos: name: Test (${{ matrix.os }}, ${{ matrix.python-version }}) @@ -84,58 +91,60 @@ jobs: os: - macos-latest python-version: - - 2.7 - - 3.5 + # - 2.7 + # - 3.5 - 3.6 - 3.7 - 3.8 - 3.9 - "3.10" - - 3.11-dev - - pypy-2.7 - #- pypy-3.6 - - pypy-3.7 + - 3.11 + - 3.12 + # - pypy-2.7 + - pypy-3.8 + - pypy-3.9 + - pypy-3.10 steps: - name: Checkout code - uses: actions/checkout@v1 + uses: actions/checkout@v3 - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Update pip run: python -m pip install -U pip wheel setuptools - name: Install tox - run: python -m pip install tox tox-gh-actions + run: python -m pip install "tox<4.0.0" "tox-gh-actions<3.0.0" - name: Test with tox run: python -m tox - name: Store partial coverage reports - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: coverage path: .coverage.* - test_windows_py27: - name: Test (${{ matrix.os }}, ${{ matrix.python-version }}) - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: - - windows-latest - python-version: - - 2.7 - steps: - - name: Checkout code - uses: actions/checkout@v1 - - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Update pip - run: python -m pip install -U pip wheel setuptools - - name: Install tox - run: python -m pip install tox tox-gh-actions - - name: Test with tox - run: python -m tox -e py27,py27-without-extensions + # test_windows_py27: + # name: Test (${{ matrix.os }}, ${{ matrix.python-version }}) + # runs-on: ${{ matrix.os }} + # strategy: + # matrix: + # os: + # - windows-latest + # python-version: + # - 2.7 + # steps: + # - name: Checkout code + # uses: actions/checkout@v3 + # - name: Setup Python ${{ matrix.python-version }} + # uses: actions/setup-python@v4 + # with: + # python-version: ${{ matrix.python-version }} + # - name: Update pip + # run: python -m pip install -U pip wheel setuptools + # - name: Install tox + # run: python -m pip install "tox<4.0.0" "tox-gh-actions<3.0.0" + # - name: Test with tox + # run: python -m tox -e py27,py27-without-extensions test_windows: name: Test (${{ matrix.os }}, ${{ matrix.python-version }}) @@ -145,27 +154,29 @@ jobs: os: - windows-latest python-version: - - 3.5 + # - 3.5 - 3.6 - 3.7 - 3.8 - 3.9 - "3.10" - - 3.11-dev - - pypy-2.7 - - pypy-3.6 - - pypy-3.7 + - 3.11 + - 3.12 + # - pypy-2.7 + - pypy-3.8 + - pypy-3.9 + - pypy-3.10 steps: - name: Checkout code - uses: actions/checkout@v1 + uses: actions/checkout@v3 - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Update pip run: python -m pip install -U pip wheel setuptools - name: Install tox - run: python -m pip install tox tox-gh-actions + run: python -m pip install "tox<4.0.0" "tox-gh-actions<3.0.0" - name: Test with tox run: python -m tox @@ -175,76 +186,80 @@ jobs: - test_linux - test_macos - test_windows - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: submodules: true - name: Set up Python 3.9 - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: 3.9 - - name: Build source distribution + - name: Build full source distribution as tar.gz run: python setup.py sdist + - name: Install the wheel package + run: pip install wheel + - name: Build pure Python source wheel + run: WRAPT_INSTALL_EXTENSIONS=false python setup.py bdist_wheel - name: Store built wheels - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: dist path: dist/* - bdist_wheel_legacy: - name: Build wheels (2.7-3.5) on ${{ matrix.os }} - needs: - - test_linux - - test_macos - - test_windows_py27 - - test_windows - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - steps: - - uses: actions/checkout@v2 - - name: Build wheels - uses: pypa/cibuildwheel@v1.11.1.post1 - with: - output-dir: dist - env: - WRAPT_INSTALL_EXTENSIONS: true - CIBW_BUILD: cp27* cp35* - CIBW_SKIP: cp27-win* - CIBW_BUILD_VERBOSITY: 1 - - uses: actions/upload-artifact@v2 - with: - name: dist - path: dist/*.whl + # bdist_wheel_legacy: + # name: Build wheels (2.7-3.5) on ${{ matrix.os }} + # needs: + # - test_linux + # - test_macos + # - test_windows_py27 + # - test_windows + # runs-on: ${{ matrix.os }} + # strategy: + # matrix: + # os: [ubuntu-20.04, windows-latest, macos-latest] + # steps: + # - uses: actions/checkout@v3 + # - name: Build wheels + # uses: pypa/cibuildwheel@v1.11.1.post1 + # with: + # output-dir: dist + # env: + # WRAPT_INSTALL_EXTENSIONS: true + # CIBW_BUILD: cp27* cp35* + # CIBW_SKIP: cp27-win* + # CIBW_BUILD_VERBOSITY: 1 + # - uses: actions/upload-artifact@v3 + # with: + # name: dist + # path: dist/*.whl bdist_wheel: name: Build wheels (3.6+) on ${{ matrix.os }} for ${{ matrix.arch }} needs: - test_linux - - test_aarch64_linux + #- test_aarch64_linux - test_macos - - test_windows_py27 + # - test_windows_py27 - test_windows runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-20.04, windows-latest, macos-latest] arch: [auto] include: - - os: ubuntu-latest + - os: ubuntu-20.04 arch: aarch64 - os: macos-latest arch: arm64 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up QEMU if: ${{ matrix.arch == 'aarch64' }} - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Build wheels - uses: pypa/cibuildwheel@v2.4.0 + uses: pypa/cibuildwheel@v2.16.2 with: output-dir: dist env: @@ -252,7 +267,7 @@ jobs: CIBW_SKIP: pp* CIBW_BUILD_VERBOSITY: 1 CIBW_ARCHS: ${{ matrix.arch }} - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 with: name: dist path: dist/*.whl @@ -263,20 +278,20 @@ jobs: needs: - test_linux - test_macos - - test_windows_py27 + # - test_windows_py27 - test_windows - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Checkout code - uses: actions/checkout@v1 + uses: actions/checkout@v3 - name: Setup Python 3.9 - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: 3.9 - name: Install coverage package run: python -m pip install -U coverage - name: Download partial coverage reports - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: coverage - name: Combine coverage