diff --git a/.github/requirements-earliest.txt b/.github/requirements-earliest.txt new file mode 100644 index 0000000..cc72e71 --- /dev/null +++ b/.github/requirements-earliest.txt @@ -0,0 +1 @@ +mercurial==5.2 diff --git a/.github/requirements-latest.txt b/.github/requirements-latest.txt new file mode 100644 index 0000000..3620838 --- /dev/null +++ b/.github/requirements-latest.txt @@ -0,0 +1,2 @@ +mercurial + diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 57efee7..e511200 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,8 +8,70 @@ 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.7.x' + check-latest: true + cache: 'pip' + cache-dependency-path: '**/requirements-earliest.txt' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r .github/requirements-earliest.txt + + - name: Report selected versions + run: | + echo Selected '${{ steps.earliest.outputs.python-version }}' + ./hg-fast-export.sh --debug + + - 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 + cache: 'pip' + cache-dependency-path: '**/requirements-latest.txt' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r .github/requirements-latest.txt + + - name: Report selected version + run: | + echo Selected '${{ steps.latest.outputs.python-version }}' + ./hg-fast-export.sh --debug + + - name: Run tests on 3.x + run: make -C t + + code-quality: + name: Run code quality checks runs-on: ubuntu-latest steps: @@ -19,9 +81,6 @@ jobs: fetch-depth: 1 submodules: 'recursive' - - name: Run tests - run: make -C t - - name: Initialize CodeQL uses: github/codeql-action/init@v2 with: