Skip to content

Merge pull request #338 from gpkc/add-service-annotations #444

Merge pull request #338 from gpkc/add-service-annotations

Merge pull request #338 from gpkc/add-service-annotations #444

Workflow file for this run

name: CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
id: setup-python
with:
python-version: 3.12
- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: |
poetry install --no-interaction --no-root
- name: Format
run: |
source .venv/bin/activate
black . --check
- name: Type Check
run: |
source .venv/bin/activate
mypy .
- name: Lint
run: |
source .venv/bin/activate
pylint $(git ls-files -- '*.py' ':!:**/migrations/*.py')
test:
name: Test
runs-on: ubuntu-latest
services:
redis:
image: redis:6
ports: ['6379:6379']
rabbitmq:
image: rabbitmq:3
ports: ['5672:5672']
strategy:
matrix:
broker: [memory, redis, rabbitmq]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
id: setup-python
with:
python-version: 3.12
- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: |
poetry install --no-interaction --no-root
source .venv/bin/activate
- name: Test
run: |
source .venv/bin/activate
pytest --broker=${{ matrix.broker }} --ignore .poetry --cov