Skip to content

feat(grantrecs): grant-history join + daily opportunity projection (#1218) #1799

feat(grantrecs): grant-history join + daily opportunity projection (#1218)

feat(grantrecs): grant-history join + daily opportunity projection (#1218) #1799

Workflow file for this run

name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:8.0
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: scholars
MYSQL_USER: scholars
MYSQL_PASSWORD: scholars
ports:
- 3306:3306
options: >-
--health-cmd="mysqladmin ping -h localhost -u root -proot"
--health-interval=5s
--health-timeout=5s
--health-retries=20
env:
DATABASE_URL: mysql://scholars:scholars@127.0.0.1:3306/scholars
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: "22"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Validate OpenAPI spec
run: npx --yes @redocly/cli@latest lint openapi.yaml --format=github-actions
- name: Lint
run: npm run lint
- name: Type-check
run: npm run typecheck
- name: Audit DB writes
run: npm run audit:db-writes
- name: Unit tests
run: npm test
- name: Apply Prisma migrations
run: npx prisma migrate deploy
- name: Build
run: npm run build
cdk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: "22"
cache: "npm"
cache-dependency-path: cdk/package-lock.json
- name: Install CDK dependencies
run: npm ci
working-directory: cdk
- name: Lint
run: npm run lint
working-directory: cdk
- name: Type-check
run: npm run typecheck
working-directory: cdk
- name: Test
run: npm test
working-directory: cdk
- name: Synth (staging)
run: npm run synth -- -c env=staging
working-directory: cdk
- name: Synth (prod)
run: npm run synth -- -c env=prod
working-directory: cdk