name: CI on: push: branches: [main] pull_request: branches: [main] jobs: backend: runs-on: ubuntu-latest services: postgres: image: postgres:17 env: POSTGRES_USER: artifacts POSTGRES_PASSWORD: artifacts POSTGRES_DB: artifacts_test ports: - 5432:5432 options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v4 - name: Set up Python run: uv python install 3.12 - name: Install dependencies working-directory: backend run: uv sync - name: Lint working-directory: backend run: uv run ruff check . - name: Type check working-directory: backend run: uv run mypy app --ignore-missing-imports - name: Test working-directory: backend env: DATABASE_URL: postgresql+asyncpg://artifacts:artifacts@localhost:5432/artifacts_test ARTIFACTS_TOKEN: test_token run: uv run pytest tests/ -v frontend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 9 - uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm cache-dependency-path: frontend/pnpm-lock.yaml - name: Install dependencies working-directory: frontend run: pnpm install --frozen-lockfile - name: Lint working-directory: frontend run: pnpm lint - name: Type check working-directory: frontend run: pnpm type-check - name: Build working-directory: frontend run: pnpm build