# .gitea/workflows/ci.yml # Runs on every push and pull request. # Checks syntax, imports, and that the build succeeds. name: CI on: push: branches-ignore: - main # main is handled by deploy.yml pull_request: jobs: build: name: Check & Build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci # ── Syntax check all server-side JS files ──────────────────────────── - name: JS syntax check run: | find src -name "*.js" | xargs -I{} node --check {} echo "✓ JS syntax OK" # ── Svelte component check ──────────────────────────────────────────── - name: Svelte check run: npx svelte-check --tsconfig ./jsconfig.json 2>&1 | tail -5 continue-on-error: false # ── Full Vite build (catches broken imports + SSR errors) ───────────── - name: Build run: npm run build env: # Provide dummy env vars so the build doesn't fail on missing config DATABASE_URL: ./dummy.db RATE_LIMIT_PUBLISH: '5' RATE_LIMIT_READ: '100' PUBLIC_BASE_URL: 'https://example.com'