diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b18425b7..179b7a94 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,7 +15,20 @@ on: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # This workflow contains a single job called "build" + # This job is used to install Poetry + setup-poetry: + runs-on: ubuntu-latest + steps: + - name: Install Poetry + uses: snok/install-poetry@v1 + with: + version: 1.5.1 + virtualenvs-create: true + virtualenvs-in-project: true + outputs: + poetry-version: ${{ steps.poetry-version.outputs.version }} + + # This job is used to install dependencies and run tests for each supported Python version build: # The type of runner that the job will run on runs-on: ubuntu-latest @@ -47,16 +60,12 @@ jobs: uses: actions/cache@v4 with: path: .venv - key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }} + key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }} - - name: Select Poetry Python ${{ matrix.python-version }} Version - run: poetry env use ${{ matrix.python-version }} - - - name: Install Python ${{ matrix.python-version }} Dependencies + - name: Install Dependencies if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' run: poetry install --no-interaction --no-root # Runs a single command using the runners shell - name: Run all tests - run: ./runtests - + run: poetry run./runtests