Skip to content

Add MIT license and legal disclaimers for open-source release (#4) #4

Add MIT license and legal disclaimers for open-source release (#4)

Add MIT license and legal disclaimers for open-source release (#4) #4

Workflow file for this run

name: CI

Check failure on line 1 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci.yml

Invalid workflow file

(Line: 84, Col: 9): Unrecognized named-value: 'secrets'. Located at position 1 within expression: secrets.DATABASE_URL != ''
on:
pull_request:
branches: [main]
push:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Lint & Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
with:
version: latest
- uses: actions/setup-node@v6
with:
node-version: "20"
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Biome lint & format check
run: pnpm lint
type-check:
name: Type Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
with:
version: latest
- uses: actions/setup-node@v6
with:
node-version: "20"
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: TypeScript type check
run: npx tsc --noEmit
test-unit:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
with:
version: latest
- uses: actions/setup-node@v6
with:
node-version: "20"
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run unit tests
run: pnpm test:unit
test-integration:
name: Integration Tests
runs-on: ubuntu-latest
# Requires a Neon-compatible DATABASE_URL secret.
# Add it under GitHub → Settings → Secrets and variables → Actions.
# The app uses @neondatabase/serverless (HTTP-based), so a standard local
# Postgres container is not sufficient — use a real Neon test database.
if: ${{ secrets.DATABASE_URL != '' }}
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
# SESSION_SECRET can be any string for test purposes
SESSION_SECRET: ${{ secrets.SESSION_SECRET || 'ci-integration-test-secret' }}
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
with:
version: latest
- uses: actions/setup-node@v6
with:
node-version: "20"
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Apply database migrations
run: pnpm db:migrate
- name: Run integration tests
run: pnpm test:integration