diff --git a/.github/workflows/lint_and_test.yml b/.github/workflows/lint_and_test.yml index fddca190..55d1386b 100644 --- a/.github/workflows/lint_and_test.yml +++ b/.github/workflows/lint_and_test.yml @@ -8,15 +8,6 @@ on: branches-ignore: - "2.x/*" workflow_dispatch: - inputs: - os: - description: "Operating systems" - required: true - default: linux - type: choice - options: - - linux - - all permissions: contents: read @@ -70,14 +61,7 @@ jobs: - { setup: 'pypy3.9', tox: 'pypy39' } - { setup: 'pypy3.10', tox: 'pypy310' } - os: | - ${{ - fromJSON( - inputs.os == 'all' - && '["ubuntu-latest", "windows-latest", "macos-latest"]' - || '["ubuntu-latest"]' - ) - }} + os: ['ubuntu-latest'] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/test_all_oses.yml b/.github/workflows/test_all_oses.yml new file mode 100644 index 00000000..b50b697d --- /dev/null +++ b/.github/workflows/test_all_oses.yml @@ -0,0 +1,53 @@ +name: Run linters and tests + +on: + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + testing: + name: Run tests + runs-on: ${{ matrix.os }} + needs: linting + + strategy: + fail-fast: false + matrix: + python_version: + - { setup: '3.8', tox: 'py38' } + - { setup: '3.9', tox: 'py39' } + - { setup: '3.10', tox: 'py310' } + - { setup: '3.11', tox: 'py311' } + - { setup: '3.12', tox: 'py312' } + - { setup: 'pypy3.8', tox: 'pypy38' } + - { setup: 'pypy3.9', tox: 'pypy39' } + - { setup: 'pypy3.10', tox: 'pypy310' } + + os: ['ubuntu-latest', 'windows-latest', 'macos-latest'] + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python_version.setup }} + + - name: Install Just + uses: extractions/setup-just@v1 + with: + just-version: 1.14.0 + + - name: Setup environment to run tox + run: + just setup-runner + + - name: Run tests + run: + just test-on ${{ matrix.python_version.tox }}