name: Backend CI on: push: branches: [main] paths: - 'backend/**' - 'pyproject.toml' - '.github/workflows/backend-ci.yml' pull_request: paths: - 'backend/**' - 'pyproject.toml' - '.github/workflows/backend-ci.yml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: lint: name: Lint runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.13' cache: 'pip' cache-dependency-path: backend/requirements-dev.txt - name: Install Ruff run: pip install ruff==0.6.9 - name: Run Ruff run: ruff check backend test: name: Tests runs-on: ubuntu-latest defaults: run: working-directory: ./backend steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.13' cache: 'pip' cache-dependency-path: | backend/requirements.txt backend/requirements-dev.txt - name: Install dependencies run: | python -m pip install --upgrade pip setuptools wheel pip install -r requirements-dev.txt - name: Run tests run: python -m pytest