From c7f75f76060eac38201e94968cee2da3fd1f05c7 Mon Sep 17 00:00:00 2001 From: Krishnasis Mandal Date: Sat, 16 Mar 2024 18:37:06 +0100 Subject: [PATCH] add test workflow --- .github/workflows/test.yml | 69 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..89bf1d4 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,69 @@ +name: Unit tests + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +jobs: + linter: + name: Linters + runs-on: ubuntu-latest + env: + Python3_ROOT_DIR: + timeout-minutes: 2 + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + - name: Setup Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: 3.11 + - name: Cache python packages + uses: actions/cache@v4 + id: cache + with: + path: ${{ env.Python3_ROOT_DIR }}/lib/python3.11/site-packages + key: dev-${{ hashFiles('**/pyproject.toml') }}-3.11 + - name: Install dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: pip install -e '.[dev]' + - name: Lint with ruff + run: | + pip install --upgrade --force-reinstall ruff + python3 -m ruff check + - name: Run mypy + run: python -m mypy + + tests: + needs: linter + strategy: + matrix: + python-version: ["3.9", "3.10", "3.11"] + env: + Python3_ROOT_DIR: + name: Tests + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: Checkout Code + uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Cache python packages + uses: actions/cache@v4 + id: cache + with: + path: ${{ env.Python3_ROOT_DIR }}/lib/python${{ matrix.python-version }}/site-packages + key: dev-${{ hashFiles('**/pyproject.toml') }}-${{ matrix.python-version }} + - name: Install dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: pip install -e '.[dev]' + - name: Run tests + run: + python -m pytest