cheesy/.circleci/config.yml
2025-11-23 10:57:34 +00:00

80 lines
No EOL
2.2 KiB
YAML
Executable file

version: 2.1
orbs:
semantic-release: trustedshops-public/semantic-release@6.0.0
jobs:
lint:
docker:
- image: cimg/python:3.12.2
steps:
- checkout
- restore_cache:
key: venv-dev-{{ checksum "poetry.lock" }}
- run:
name: set up venv
command: |
poetry config virtualenvs.create true --local
poetry config virtualenvs.in-project true --local
- run:
name: install dependencies
command: poetry install --with dev
- save_cache:
key: venv-dev-{{ checksum "poetry.lock" }}
paths:
- .venv
- run:
name: run linter
command: |
poetry run ruff check .
poetry run ruff format --check .
test:
docker:
- image: cimg/python:3.12.2
- image: cimg/postgres:14.0
environment:
POSTGRES_USER: moku
POSTGRES_DB: moku
steps:
- checkout
- restore_cache:
key: venv-test-{{ checksum "poetry.lock" }}
- run:
name: set up venv
command: |
poetry config virtualenvs.create true --local
poetry config virtualenvs.in-project true --local
- run:
name: install dependencies
command: poetry install --with test
- save_cache:
key: venv-test-{{ checksum "poetry.lock" }}
paths:
- .venv
- run:
name: wait for postgres
command: dockerize -wait tcp://localhost:5432 -timeout 1m
- run:
name: check migrations
command: poetry run python manage.py makemigrations --check
environment:
DATABASE_URL: postgres://moku@localhost:5432/moku
- run:
name: run tests
command: poetry run pytest
environment:
DATABASE_URL: postgres://moku@localhost:5432/moku
workflows:
version: 2
main:
jobs:
- lint
- test
- semantic-release/with_existing_config:
name: semantic release
additional_packages: "@google/semantic-release-replace-plugin"
requires:
- lint
- test
filter:
branches:
only:
- main