From f3aabf632b7005ecbe26c63ca39fb40da28b87cd Mon Sep 17 00:00:00 2001 From: Brad Macdonald <52762200+BWMac@users.noreply.github.com> Date: Mon, 1 Apr 2024 12:16:03 -0600 Subject: [PATCH] Prevents Scheduled Workflow From Being Deactivated & [IBCDPE-898] Fix Python Versioning Issue for CI (#3) * prevents scheduled workflow from turning off * drop 3.8 support * updates ci for correct python versioning * trailing whitespace * updates ci for correct environment configuration * pre-commit * removes 3.8 support --- .github/workflows/ci.yml | 26 ++++++++++++++++++-------- .readthedocs.yml | 2 +- setup.cfg | 2 +- tox.ini | 8 ++++++-- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c3798e2..77d9c01 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,8 +32,10 @@ jobs: with: {python-version: "3.11"} - name: Run static analysis and format checkers run: pipx run pre-commit run --all-files --show-diff-on-failure + - name: Install tox-gh plugin + run: python -m pip install tox-gh>=1.2 - name: Build package distribution files - run: pipx run --spec 'tox~=3.0' tox -e clean,build + run: tox -e clean,build - name: Record the paths of wheel and source tarball distributions id: distribution-paths run: | @@ -48,43 +50,51 @@ jobs: name: python-distribution-files path: dist/ retention-days: 1 + - name: Keepalive Workflow + uses: gautamkrishnar/keepalive-workflow@1.1.0 + with: + time_elapsed: 44 test: needs: prepare strategy: matrix: python: - - "3.8" + - "3.9" # oldest Python that is supported - "3.11" # newest Python that is stable platform: - ubuntu-latest - macos-latest # TODO: Debug the Windows issues # - windows-latest + env: + OS: ${{ matrix.platform }} + PYTHON: ${{ matrix.python }} runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} - - name: Retrieve pre-built distribution files - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v3 with: {name: python-distribution-files, path: dist/} + - name: Install tox-gh plugin + run: python -m pip install tox-gh>=1.2 + - name: Setup test suite + run: tox -vv --notest - name: Run tests (without integration tests) if: matrix.platform != 'ubuntu-latest' || matrix.python != '3.11' env: SYNAPSE_AUTH_TOKEN: ${{ secrets.SYNAPSE_AUTH_TOKEN }} run: >- - pipx run --spec 'tox~=3.0' tox - --installpkg '${{ needs.prepare.outputs.wheel-path }}' + tox --installpkg '${{ needs.prepare.outputs.wheel-path }}' -- -rFEx --durations 10 --color yes -m "not integration" - name: Run tests (with integration tests) if: matrix.platform == 'ubuntu-latest' && matrix.python == '3.11' env: SYNAPSE_AUTH_TOKEN: ${{ secrets.SYNAPSE_AUTH_TOKEN }} run: >- - pipx run --spec 'tox~=3.0' tox - --installpkg '${{ needs.prepare.outputs.wheel-path }}' + tox --installpkg '${{ needs.prepare.outputs.wheel-path }}' -- -rFEx --durations 10 --color yes - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 diff --git a/.readthedocs.yml b/.readthedocs.yml index 21b0814..c8571ff 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -17,7 +17,7 @@ formats: - pdf python: - version: 3.8 + version: 3.9 install: - requirements: docs/requirements.txt - {path: ., method: pip} diff --git a/setup.cfg b/setup.cfg index 7969a26..06077f4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -41,7 +41,7 @@ package_dir = =src # Require a min/specific Python version (comma-separated conditions) -python_requires = >=3.8 +python_requires = >=3.9, <3.12 # Add here dependencies of your project (line-separated), e.g. requests>=2.2,<3.0. # Version specifiers like >=2.2,<3.0 avoid problems due to API changes in diff --git a/tox.ini b/tox.ini index 9541722..94a6ff0 100644 --- a/tox.ini +++ b/tox.ini @@ -3,10 +3,14 @@ # THIS SCRIPT IS SUPPOSED TO BE AN EXAMPLE. MODIFY IT ACCORDING TO YOUR NEEDS! [tox] -minversion = 3.24 -envlist = default +minversion = 4.2 isolated_build = True +[gh] +python = + 3.9: py39 + 3.10: py310 + 3.11: py311 [testenv] description = Invoke pytest to run automated tests