diff --git a/.github/workflows/python-3.10.yml b/.github/workflows/python-3.10.yml index b327a6a..49d695c 100644 --- a/.github/workflows/python-3.10.yml +++ b/.github/workflows/python-3.10.yml @@ -13,23 +13,6 @@ on: jobs: test: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.10 - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install poetry - poetry config virtualenvs.create false - poetry install --no-root --with dev - - name: Test with pytest - run: | - make ci-test - - name: Check typing - run: | - make typing + uses: ./.github/workflows/reusable-python-test.yml + with: + python-version: "3.10" diff --git a/.github/workflows/python-3.11.yml b/.github/workflows/python-3.11.yml index 2b5f2d1..13a1cc6 100644 --- a/.github/workflows/python-3.11.yml +++ b/.github/workflows/python-3.11.yml @@ -13,23 +13,6 @@ on: jobs: test: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.11 - uses: actions/setup-python@v4 - with: - python-version: "3.11" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install poetry - poetry config virtualenvs.create false - poetry install --no-root --with dev - - name: Test with pytest - run: | - make ci-test - - name: Check typing - run: | - make typing + uses: ./.github/workflows/reusable-python-test.yml + with: + python-version: "3.11" diff --git a/.github/workflows/python-3.12.yml b/.github/workflows/python-3.12.yml index c2eba9a..1a77e68 100644 --- a/.github/workflows/python-3.12.yml +++ b/.github/workflows/python-3.12.yml @@ -13,23 +13,6 @@ on: jobs: test: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.12 - uses: actions/setup-python@v4 - with: - python-version: "3.12" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install poetry - poetry config virtualenvs.create false - poetry install --no-root --with dev - - name: Test with pytest - run: | - make ci-test - - name: Check typing - run: | - make typing + uses: ./.github/workflows/reusable-python-test.yml + with: + python-version: "3.12" diff --git a/.github/workflows/python-3.8.yml b/.github/workflows/python-3.8.yml index 977de19..b6ae0a8 100644 --- a/.github/workflows/python-3.8.yml +++ b/.github/workflows/python-3.8.yml @@ -13,23 +13,6 @@ on: jobs: test: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: "3.8" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install poetry - poetry config virtualenvs.create false - poetry install --no-root --with dev - - name: Test with pytest - run: | - make ci-test - - name: Check typing - run: | - make typing + uses: ./.github/workflows/reusable-python-test.yml + with: + python-version: "3.8" diff --git a/.github/workflows/python-3.9.yml b/.github/workflows/python-3.9.yml index 99ee915..cfd24f0 100644 --- a/.github/workflows/python-3.9.yml +++ b/.github/workflows/python-3.9.yml @@ -13,23 +13,6 @@ on: jobs: test: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.9 - uses: actions/setup-python@v4 - with: - python-version: "3.9" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install poetry - poetry config virtualenvs.create false - poetry install --no-root --with dev - - name: Test with pytest - run: | - make ci-test - - name: Check typing - run: | - make typing + uses: ./.github/workflows/reusable-python-test.yml + with: + python-version: "3.9" diff --git a/.github/workflows/reusable-python-test.yml b/.github/workflows/reusable-python-test.yml new file mode 100644 index 0000000..50663bc --- /dev/null +++ b/.github/workflows/reusable-python-test.yml @@ -0,0 +1,33 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python + + +on: + workflow_call: + inputs: + python-version: + required: true + type: string + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ inputs.python-version }} + uses: actions/setup-python@v4 + with: + python-version: "${{ inputs.python-version }}" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install poetry + poetry config virtualenvs.create false + poetry install --no-root --with dev + - name: Test with pytest + run: | + make ci-test + - name: Check typing + run: | + make typing