This repository was archived by the owner on May 31, 2026. It is now read-only.
chore(deps): lock file maintenance #587
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # Backend jobs | |
| backend-lint: | |
| name: Backend Linting | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7 | |
| with: | |
| version: latest | |
| enable-cache: true | |
| - name: Set up Python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install dependencies | |
| working-directory: ./backend | |
| run: uv sync | |
| - name: Run ruff check | |
| working-directory: ./backend | |
| run: uv run ruff check . | |
| - name: Run ruff format check | |
| working-directory: ./backend | |
| run: uv run ruff format --check . | |
| backend-test: | |
| name: Backend Tests | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:18@sha256:52e6ffd11fddd081ae63880b635b2a61c14008c17fc98cdc7ce5472265516dd0 | |
| env: | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: test_db | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| ports: | |
| - 5432:5432 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7 | |
| with: | |
| version: latest | |
| enable-cache: true | |
| - name: Set up Python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install dependencies | |
| working-directory: ./backend | |
| run: uv sync | |
| - name: Run tests | |
| working-directory: ./backend | |
| env: | |
| DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/test_db | |
| run: uv run pytest -v --cov=app --cov-report=xml | |
| backend-migrations: | |
| name: Backend Migrations Check | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:18@sha256:52e6ffd11fddd081ae63880b635b2a61c14008c17fc98cdc7ce5472265516dd0 | |
| env: | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: test_db | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| ports: | |
| - 5432:5432 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7 | |
| with: | |
| version: latest | |
| enable-cache: true | |
| - name: Set up Python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install dependencies | |
| working-directory: ./backend | |
| run: uv sync | |
| - name: Check migrations | |
| working-directory: ./backend | |
| env: | |
| DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/test_db | |
| run: uv run litestar database upgrade --no-prompt | |
| # Admin Portal jobs | |
| admin-portal-lint: | |
| name: Admin Portal Linting | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5 | |
| with: | |
| version: "10" | |
| - name: Setup Node.js | |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version: "24" | |
| cache: pnpm | |
| cache-dependency-path: admin_portal/pnpm-lock.yaml | |
| - name: Install dependencies | |
| working-directory: ./admin_portal | |
| run: pnpm install --frozen-lockfile | |
| - name: Run Biome lint | |
| working-directory: ./admin_portal | |
| run: pnpm run lint:ci | |
| - name: Run Prettier check | |
| working-directory: ./admin_portal | |
| run: pnpm run format:check | |
| # admin-portal-test: | |
| # name: Admin Portal Tests | |
| # runs-on: ubuntu-latest | |
| # services: | |
| # postgres: | |
| # image: postgres:18@sha256:5773fe724c49c42a7a9ca70202e11e1dff21fb7235b335a73f39297d200b73a2 | |
| # env: | |
| # POSTGRES_PASSWORD: postgres | |
| # POSTGRES_DB: test_db | |
| # options: >- | |
| # --health-cmd pg_isready | |
| # --health-interval 10s | |
| # --health-timeout 5s | |
| # --health-retries 5 | |
| # ports: | |
| # - 5432:5432 | |
| # steps: | |
| # - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| # - name: Install uv | |
| # uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7 | |
| # with: | |
| # version: latest | |
| # enable-cache: true | |
| # - name: Set up Python | |
| # uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | |
| # with: | |
| # python-version: "3.13" | |
| # - name: Install dependencies | |
| # working-directory: ./backend | |
| # run: uv sync | |
| # - name: Upgrade database | |
| # working-directory: ./backend | |
| # env: | |
| # DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/test_db | |
| # run: uv run litestar database upgrade --no-prompt | |
| # - name: Start backend server | |
| # working-directory: ./backend | |
| # env: | |
| # DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/test_db | |
| # PUBLIC_BASE_URL: http://127.0.0.1:8000 | |
| # ADMIN_BASE_URL: http://127.0.0.1:3002 | |
| # FRONTEND_BASE_URL: http://127.0.0.1:4321 | |
| # run: uv run litestar run --host 127.0.0.1 --port 8000 > /tmp/backend.log 2>&1 & | |
| # - name: Wait for backend | |
| # run: | | |
| # for i in $(seq 1 30); do | |
| # if curl -sf http://127.0.0.1:8000/api/v1/health > /dev/null 2>&1; then | |
| # echo "Backend is ready" | |
| # break | |
| # fi | |
| # echo "Waiting for backend... attempt $i" | |
| # sleep 2 | |
| # done | |
| # curl -sf http://127.0.0.1:8000/api/v1/health || (echo "Backend failed to start"; cat /tmp/backend.log; exit 1) | |
| # - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 | |
| # with: | |
| # version: "10" | |
| # - name: Setup Node.js | |
| # uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 | |
| # with: | |
| # node-version: "24" | |
| # cache: pnpm | |
| # cache-dependency-path: admin_portal/pnpm-lock.yaml | |
| # - name: Install dependencies | |
| # working-directory: ./admin_portal | |
| # run: pnpm install --frozen-lockfile | |
| # - name: Build admin portal | |
| # working-directory: ./admin_portal | |
| # env: | |
| # VITE_API_BASE_URL: http://127.0.0.1:8000 | |
| # run: pnpm run build | |
| # # - name: Start admin portal server | |
| # # working-directory: ./admin_portal | |
| # # run: npx http-server dist -p 3002 -s > /tmp/admin_portal.log 2>&1 & | |
| # # - name: Wait for admin portal | |
| # # run: | | |
| # # for i in $(seq 1 30); do | |
| # # if curl -sf http://127.0.0.1:3002/ > /dev/null 2>&1; then | |
| # # echo "Admin portal is ready" | |
| # # break | |
| # # fi | |
| # # echo "Waiting for admin portal... attempt $i" | |
| # # sleep 2 | |
| # # done | |
| # # curl -sf http://127.0.0.1:3002/ || (echo "Admin portal failed to start"; cat /tmp/admin_portal.log; exit 1) | |
| # - name: Install Playwright browsers | |
| # working-directory: ./admin_portal | |
| # run: pnpm exec playwright install --with-deps | |
| # - name: Run tests | |
| # working-directory: ./admin_portal | |
| # env: | |
| # DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/test_db | |
| # VITE_API_BASE_URL: http://127.0.0.1:8000 | |
| # run: pnpm run test | |
| admin-portal-build: | |
| name: Admin Portal Build | |
| runs-on: ubuntu-latest | |
| needs: admin-portal-lint | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5 | |
| with: | |
| version: "10" | |
| - name: Setup Node.js | |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version: "24" | |
| cache: pnpm | |
| cache-dependency-path: admin_portal/pnpm-lock.yaml | |
| - name: Install dependencies | |
| working-directory: ./admin_portal | |
| run: pnpm install --frozen-lockfile | |
| - name: Build | |
| working-directory: ./admin_portal | |
| run: pnpm run build | |
| # Frontend jobs | |
| frontend-lint: | |
| name: Frontend Linting | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5 | |
| with: | |
| version: "10" | |
| - name: Setup Node.js | |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version: "24" | |
| cache: pnpm | |
| cache-dependency-path: frontend/pnpm-lock.yaml | |
| - name: Install dependencies | |
| working-directory: ./frontend | |
| run: pnpm install --frozen-lockfile | |
| - name: Run Biome lint | |
| working-directory: ./frontend | |
| run: pnpm run lint:ci | |
| - name: Run Prettier check | |
| working-directory: ./frontend | |
| run: pnpm run format:check | |
| - name: Run Astro check | |
| working-directory: ./frontend | |
| run: pnpm run check | |
| # frontend-test: | |
| # name: Frontend Tests | |
| # runs-on: ubuntu-latest | |
| # services: | |
| # postgres: | |
| # image: postgres:18@sha256:5773fe724c49c42a7a9ca70202e11e1dff21fb7235b335a73f39297d200b73a2 | |
| # env: | |
| # POSTGRES_PASSWORD: postgres | |
| # POSTGRES_DB: test_db | |
| # options: >- | |
| # --health-cmd pg_isready | |
| # --health-interval 10s | |
| # --health-timeout 5s | |
| # --health-retries 5 | |
| # ports: | |
| # - 5432:5432 | |
| # steps: | |
| # - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| # - name: Install uv | |
| # uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7 | |
| # with: | |
| # version: latest | |
| # enable-cache: true | |
| # - name: Set up Python | |
| # uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | |
| # with: | |
| # python-version: "3.13" | |
| # - name: Install dependencies | |
| # working-directory: ./backend | |
| # run: uv sync | |
| # - name: Upgrade database | |
| # working-directory: ./backend | |
| # env: | |
| # DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/test_db | |
| # run: uv run litestar database upgrade --no-prompt | |
| # - name: Start backend server | |
| # working-directory: ./backend | |
| # env: | |
| # DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/test_db | |
| # PUBLIC_BASE_URL: http://127.0.0.1:8000 | |
| # ADMIN_BASE_URL: http://127.0.0.1:3002 | |
| # FRONTEND_BASE_URL: http://127.0.0.1:4321 | |
| # run: uv run litestar run --host 127.0.0.1 --port 8000 > /tmp/backend.log 2>&1 & | |
| # - name: Wait for backend | |
| # run: | | |
| # for i in $(seq 1 30); do | |
| # if curl -sf http://127.0.0.1:8000/api/v1/health > /dev/null 2>&1; then | |
| # echo "Backend is ready" | |
| # break | |
| # fi | |
| # echo "Waiting for backend... attempt $i" | |
| # sleep 2 | |
| # done | |
| # curl -sf http://127.0.0.1:8000/api/v1/health || (echo "Backend failed to start"; cat /tmp/backend.log; exit 1) | |
| # - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 | |
| # with: | |
| # version: "10" | |
| # - name: Setup Node.js | |
| # uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 | |
| # with: | |
| # node-version: "24" | |
| # cache: pnpm | |
| # cache-dependency-path: frontend/pnpm-lock.yaml | |
| # - name: Install frontend dependencies | |
| # working-directory: ./frontend | |
| # run: pnpm install --frozen-lockfile | |
| # - name: Build frontend | |
| # working-directory: ./frontend | |
| # env: | |
| # PUBLIC_BASE_URL: http://127.0.0.1:8000 | |
| # run: pnpm run build | |
| # # - name: Start frontend server | |
| # # working-directory: ./frontend | |
| # # run: node ./dist/server/entry.mjs > /tmp/frontend.log 2>&1 & | |
| # # env: | |
| # # HOST: 127.0.0.1 | |
| # # PORT: 4321 | |
| # # - name: Wait for frontend | |
| # # run: | | |
| # # for i in $(seq 1 30); do | |
| # # if curl -sf http://127.0.0.1:4321/ > /dev/null 2>&1; then | |
| # # echo "Frontend is ready" | |
| # # break | |
| # # fi | |
| # # echo "Waiting for frontend... attempt $i" | |
| # # sleep 2 | |
| # # done | |
| # # curl -sf http://127.0.0.1:4321/ || (echo "Frontend failed to start"; cat /tmp/frontend.log; exit 1) | |
| # - name: Install Playwright browsers | |
| # working-directory: ./frontend | |
| # run: pnpm exec playwright install --with-deps | |
| # - name: Run e2e tests | |
| # working-directory: ./frontend | |
| # env: | |
| # CI: true | |
| # DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/test_db | |
| # PUBLIC_BASE_URL: http://127.0.0.1:8000 | |
| # PLAYWRIGHT_BASE_URL: http://127.0.0.1:4321 | |
| # run: pnpm run test:e2e | |
| frontend-build: | |
| name: Frontend Build | |
| runs-on: ubuntu-latest | |
| needs: frontend-lint | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5 | |
| with: | |
| version: "10" | |
| - name: Setup Node.js | |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version: "24" | |
| cache: pnpm | |
| cache-dependency-path: frontend/pnpm-lock.yaml | |
| - name: Install dependencies | |
| working-directory: ./frontend | |
| run: pnpm install --frozen-lockfile | |
| - name: Build | |
| working-directory: ./frontend | |
| run: pnpm run build |