stages: - lint - test variables: POSTGRES_USER: '{{ cookiecutter.project_slug }}' POSTGRES_PASSWORD: '' POSTGRES_DB: 'test_{{ cookiecutter.project_slug }}' POSTGRES_HOST_AUTH_METHOD: trust {% if cookiecutter.use_celery == 'y' -%} CELERY_BROKER_URL: 'redis://redis:6379/0' {%- endif %} flake8: stage: lint image: python:3.9-alpine before_script: - pip install -q flake8 script: - flake8 pytest: stage: test {% if cookiecutter.use_docker == 'y' -%} image: docker/compose:latest tags: - docker services: - docker:dind before_script: - docker-compose -f local.yml build # Ensure celerybeat does not crash due to non-existent tables - docker-compose -f local.yml run --rm django python manage.py migrate - docker-compose -f local.yml up -d script: - docker-compose -f local.yml run django pytest {%- else -%} image: python:3.9 tags: - python services: - postgres:{{ cookiecutter.postgresql_version }} variables: DATABASE_URL: pgsql://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres/$POSTGRES_DB before_script: - pip install -r requirements/local.txt script: - pytest {%- endif %}