diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index 24170bd..60524f5 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -3,22 +3,55 @@ name: run-tests on: [push] jobs: - pytest: + test-ubuntu: runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.10', '3.11', '3.12'] + + steps: + - name: Checkout project + uses: actions/checkout@v4 + + - name: Install poetry + run: pipx install poetry + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: "poetry" # caching dependencies from poetry.lock + + - name: Install Poetry dependencies (CPU) + run: poetry install -E cpu + + - name: Run unit tests with coverage + run: poetry run pytest tests/unit --cov=./ --cov-report=xml + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + + test-macos: + runs-on: macos-latest + + strategy: + matrix: + python-version: ['3.10', '3.11', '3.12'] + steps: - name: Checkout project uses: actions/checkout@v4 - # Configured following guide at: - # https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#caching-packages - name: Install poetry run: pipx install poetry - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: ${{ matrix.python-version }} cache: "poetry" # caching dependencies from poetry.lock - name: Install Poetry dependencies (CPU) @@ -32,7 +65,33 @@ jobs: env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - # - name: Run pytest integration tests - # run: poetry run pytest tests/integration - # - name: Run pytest end-to-end tests - # run: poetry run pytest tests/end_to_end + test-windows: + runs-on: windows-latest + + strategy: + matrix: + python-version: ['3.10', '3.11', '3.12'] + + steps: + - name: Checkout project + uses: actions/checkout@v4 + + - name: Install poetry + run: pipx install poetry + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: "poetry" # caching dependencies from poetry.lock + + - name: Install Poetry dependencies (CPU) + run: poetry install -E cpu + + - name: Run unit tests with coverage + run: poetry run pytest tests/unit --cov=./ --cov-report=xml + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}