name: Tests on: push: branches: - "master" pull_request: branches: - "*" jobs: lint: name: Run tests runs-on: ubuntu-18.04 strategy: matrix: python-version: [3.9] services: postgres: image: postgres:11.5-alpine env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres ports: - 5432:5432 options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4.2.0 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: snok/install-poetry@v1 with: version: "1.1.12" virtualenvs-in-project: true - name: Set up cache uses: actions/cache@v3 id: cache with: path: .venv key: venv-${{ runner.os }}-py-${{ matrix.python-version }}-poetry-${{ hashFiles('poetry.lock') }} - name: Ensure cache is healthy if: steps.cache.outputs.cache-hit == 'true' run: poetry run pip --version >/dev/null 2>&1 || rm -rf .venv - name: Install dependencies run: poetry install --no-interaction - name: Run tests env: SECRET_KEY: secret_key DATABASE_URL: postgresql://postgres:postgres@localhost/postgres run: | poetry run alembic upgrade head poetry run ./scripts/test - name: Upload coverage to Codecov uses: codecov/codecov-action@v3.1.0