# This is a GitHub workflow defining a set of jobs with a set of steps. # ref: https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions # name: Unit tests on: pull_request: paths-ignore: - "docs/**" - "**.md" - "**.rst" - ".github/workflows/*" - "!.github/workflows/unit-test.yaml" push: paths-ignore: - "docs/**" - "**.md" - "**.rst" - ".github/workflows/*" - "!.github/workflows/unit-test.yaml" branches-ignore: - "dependabot/**" - "pre-commit-ci-update-config" workflow_dispatch: jobs: unit-test: name: Unit tests runs-on: ubuntu-18.04 container: ubuntu:18.04 steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: 3.6 - name: Install venv, git and setup venv run: | apt-get update --yes && apt-get install --yes python3-venv git python3 -m venv /srv/venv echo '/srv/venv/bin' >> $GITHUB_PATH - name: Cache pip deps uses: actions/cache@v2 with: path: /srv/venv/ key: ${{ runner.os }}-pip-dependencies-${{ hashFiles('*setup.py', '*dev-requirements.txt') }} - name: Install Python dependencies run: | python3 -m pip install -U pip==20.0.* python3 -m pip install -r dev-requirements.txt python3 -m pip install -e . pip freeze - name: Run unit tests run: | pytest --verbose --maxfail=2 --color=yes --cov=tljh tests/ - name: Upload code coverage stats run: | codecov