From 1d716c56e74efe9736ca4b1ac9e781398540852e Mon Sep 17 00:00:00 2001 From: matheuscas Date: Tue, 16 Jan 2024 18:06:50 -0300 Subject: [PATCH] refactor: add a testing github action --- .github/workflows/testing.yaml | 59 ++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/testing.yaml diff --git a/.github/workflows/testing.yaml b/.github/workflows/testing.yaml new file mode 100644 index 0000000..1818f2e --- /dev/null +++ b/.github/workflows/testing.yaml @@ -0,0 +1,59 @@ +name: Testing + +on: [push, pull_request] + +jobs: + test: + strategy: + fail-fast: true + matrix: + os: [ "ubuntu-latest"] + python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ] + runs-on: ${{ matrix.os }} + steps: + #---------------------------------------------- + # check-out repo and set-up python + #---------------------------------------------- + - name: Check out repository + uses: actions/checkout@v4 + - name: Set up python ${{ matrix.python-version }} + id: setup-python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + #---------------------------------------------- + # ----- install & configure poetry ----- + #---------------------------------------------- + - name: Install Poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: 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 --no-root + #---------------------------------------------- + # install your root project, if required + #---------------------------------------------- + - name: Install library + run: poetry install --no-interaction + #---------------------------------------------- + # add matrix specifics and run test suite + #---------------------------------------------- + - name: Run tests + run: | + source .venv/bin/activate + pytest tests/ + coverage report \ No newline at end of file