From 0cc0db40baa2e714db2062b4eac4cbc8b5943992 Mon Sep 17 00:00:00 2001 From: Frej Drejhammar Date: Tue, 26 Dec 2023 15:59:44 +0100 Subject: [PATCH] Run tests with multiple Python versions Run the CI tests with both the earliest supported Python version and the latest stable release. The intent is to quickly notice when new features require adjusting the oldest supported Python version and also detect when the latest stable version breaks old code (as when 3.12 removed `imp` and we switched to `importlib` in #311). --- .github/workflows/ci.yml | 57 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 57efee7..2f5954f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,8 +8,58 @@ on: branches: [master] jobs: - test: - name: Run test suite + test-earliest: + name: Run test suite on the earliest supported Python version + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v4 + name: Checkout repository + with: + fetch-depth: 1 + submodules: 'recursive' + - uses: actions/setup-python@v5 + id: earliest + with: + python-version: '3.5.x' + check-latest: true + + - name: Report selected version + run: echo '${{ steps.earliest.outputs.python-version }}' + + - name: Look for hg + run: hg --version + + - name: Run tests on earliest supported Python version + run: make -C t + + test-latest: + name: Run test suite on the latest supported python version + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + name: Checkout repository + with: + fetch-depth: 1 + submodules: 'recursive' + - uses: actions/setup-python@v5 + id: latest + with: + python-version: '3.x' + check-latest: true + + - name: Report selected version + run: echo '${{ steps.latest.outputs.python-version }}' + + - name: Look for hg + run: hg --version + + - name: Run tests on 3.x + run: make -C t + + code-quality: + name: Run code quality checks runs-on: ubuntu-latest steps: @@ -19,9 +69,6 @@ jobs: fetch-depth: 1 submodules: 'recursive' - - name: Run tests - run: make -C t - - name: Initialize CodeQL uses: github/codeql-action/init@v2 with: