Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pytest workflow file #24

Merged
merged 6 commits into from
Mar 27, 2024
Merged

pytest workflow file #24

merged 6 commits into from
Mar 27, 2024

Conversation

LucBERTON
Copy link
Collaborator

created a pytest workflow for github actions

@LucBERTON
Copy link
Collaborator Author

There seems to be an issue with my workflow file. I'll try to fix it tomorrow.

@samuelrince
Copy link
Member

samuelrince commented Mar 27, 2024

Yes I think you are missing the extra dependencies in the pip install. Maybe we can directly install dependencies with poetry?

poetry install --all-extras --with dev

I am more familiar with GitLab CI unfortunately, but I think we can use a GitHub Action to use poetry: https://github.com/marketplace/actions/install-poetry-action

I think we can do something like this (taken and adapted from the docs):

name: test

on: pull_request

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      #----------------------------------------------
      #       check-out repo and set-up python
      #----------------------------------------------
      - name: Check out repository
        uses: actions/checkout@v4
      - name: Set up python
        id: setup-python
        uses: actions/setup-python@v5
        with:
          python-version: '3.9'
      #----------------------------------------------
      #  -----  install & configure poetry  -----
      #----------------------------------------------
      - name: Install Poetry
        uses: snok/install-poetry@v1
        with:
          virtualenvs-create: true
          virtualenvs-in-project: true
          installer-parallel: true

      #----------------------------------------------
      #       load cached venv if cache exists
      #----------------------------------------------
      - name: Load cached venv
        id: cached-poetry-dependencies
        uses: actions/cache@v3
        with:
          path: .venv
          key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
      #----------------------------------------------
      # install dependencies if cache does not exist
      #----------------------------------------------
      - name: Install dependencies
        if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
        run: poetry install --no-interaction --all-extras --with dev
      #----------------------------------------------
      #              run test suite
      #----------------------------------------------
      - name: Run tests
        run: poetry run pytest tests/

@LucBERTON
Copy link
Collaborator Author

You were right Samuel, adding --all-extras to the poetry install command did fix my error.

But as you suggested, I think it's cleaner to use the "install-poetry" action, I updated the worflow as you suggested

@samuelrince samuelrince merged commit 13b72e7 into main Mar 27, 2024
2 checks passed
@samuelrince samuelrince deleted the feat/unittest-github-workflow branch April 10, 2024 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants