Skip to content

chore(deps)(deps-dev): bump typescript from 5.9.3 to 7.0.2 in /bibmeded/frontend #97

chore(deps)(deps-dev): bump typescript from 5.9.3 to 7.0.2 in /bibmeded/frontend

chore(deps)(deps-dev): bump typescript from 5.9.3 to 7.0.2 in /bibmeded/frontend #97

Workflow file for this run

name: CI
on:
workflow_dispatch:
push:
branches: [master, main]
pull_request:
branches: [master, main]
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
backend:
name: Backend tests (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.12', '3.13']
defaults:
run:
working-directory: bibmeded
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: bibmeded/pyproject.toml
- name: Install dependencies
run: pip install -e ".[dev]"
- name: Run pytest
run: pytest -q --cov=app --cov-report=term-missing
frontend-build:
name: Frontend build
runs-on: ubuntu-latest
defaults:
run:
working-directory: bibmeded/frontend
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: '20'
cache: npm
cache-dependency-path: bibmeded/frontend/package-lock.json
- name: Install dependencies
run: npm ci || npm install
- name: Type check
run: npx tsc --noEmit
- name: Lint
run: npm run lint
- name: Build
run: npm run build
env:
NEXT_PUBLIC_API_URL: http://localhost:8000
frontend-e2e:
name: E2E accessibility (Chromium)
runs-on: ubuntu-latest
defaults:
run:
working-directory: bibmeded/frontend
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: '20'
cache: npm
cache-dependency-path: bibmeded/frontend/package-lock.json
- name: Install dependencies
run: npm ci
- name: Install Chromium
run: npx playwright install --with-deps chromium
- name: Build frontend
run: npm run build
env:
NEXT_PUBLIC_API_URL: http://localhost:8000
- name: Run E2E and accessibility tests
run: npm run test:e2e
- name: Upload Playwright report
if: always()
uses: actions/upload-artifact@v7
with:
name: playwright-report
path: |
bibmeded/frontend/playwright-report/
bibmeded/frontend/playwright-results.xml
bibmeded/frontend/test-results/
retention-days: 14
docs-build:
name: Docs build (MkDocs strict)
runs-on: ubuntu-latest
defaults:
run:
working-directory: bibmeded
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: '3.12'
cache: pip
cache-dependency-path: bibmeded/pyproject.toml
- name: Install docs dependencies
run: pip install -e ".[docs]"
- name: Build docs
run: mkdocs build --strict --config-file ../mkdocs.yml
migrations-postgres:
name: Migrations (Postgres)
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16
env:
POSTGRES_USER: bibmeded
POSTGRES_PASSWORD: bibmeded
POSTGRES_DB: bibmeded
ports:
- 5432:5432
options: >-
--health-cmd="pg_isready -U bibmeded"
--health-interval=5s
--health-timeout=5s
--health-retries=10
defaults:
run:
working-directory: bibmeded
env:
BIBMEDED_DATABASE_URL: postgresql://bibmeded:bibmeded@localhost:5432/bibmeded
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: '3.12'
cache: pip
cache-dependency-path: bibmeded/pyproject.toml
- name: Install dependencies
run: pip install -e .
- name: Fresh-DB guard path (alembic upgrade head on empty Postgres)
run: alembic upgrade head
- name: Seed pre-0002 schema fixture (globally-unique pmid, no project_id)
run: python scripts/ci/seed_pre_0002_fixture.py
- name: Stamp alembic at 0001_baseline (simulates a pre-0002 production DB)
run: alembic stamp 0001_baseline
- name: Run alembic upgrade head to exercise the real project_id backfill
run: alembic upgrade head
- name: Verify publications.project_id was backfilled and is NOT NULL
run: python scripts/ci/verify_0002_backfill.py
docker-build:
name: Docker build smoke test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Build backend image
run: docker build -f bibmeded/Dockerfile bibmeded
- name: Build frontend image
run: docker build -f bibmeded/frontend/Dockerfile bibmeded/frontend