name: Backend CI on: push: branches: [main, develop] paths: - "backend/**" - ".github/workflows/backend-ci.yml" pull_request: paths: - "backend/**" jobs: test: runs-on: ubuntu-latest services: postgres: image: postgres:16 env: POSTGRES_DB: cloud_reader POSTGRES_USER: cloud_reader POSTGRES_PASSWORD: cloud_reader ports: - 5432:5432 options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 defaults: run: working-directory: backend steps: - uses: actions/checkout@v4 - name: Set up Python 3.12 uses: actions/setup-python@v5 with: python-version: "3.12" cache: "pip" cache-dependency-path: backend/requirements/dev.txt - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements/dev.txt - name: Lint run: ruff check . - name: Run migrations run: python manage.py migrate env: DB_HOST: localhost DB_NAME: cloud_reader DB_USER: cloud_reader DB_PASSWORD: cloud_reader DB_PORT: 5432 SECRET_KEY: ci-test-secret-key-do-not-use-in-production - name: Run tests run: pytest env: DB_HOST: localhost DB_NAME: cloud_reader DB_USER: cloud_reader DB_PASSWORD: cloud_reader DB_PORT: 5432 SECRET_KEY: ci-test-secret-key-do-not-use-in-production