Skip to content

feat(voice): add whatsapp-voice.service.ts — TTS → WhatsApp voice not… #919

feat(voice): add whatsapp-voice.service.ts — TTS → WhatsApp voice not…

feat(voice): add whatsapp-voice.service.ts — TTS → WhatsApp voice not… #919

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
paths:
- 'app/**'
- 'components/**'
- 'lib/**'
- 'messages/**'
- 'prisma/**'
- 'public/**'
- 'i18n/**'
- 'scripts/**'
- 'auth.ts'
- 'middleware.ts'
- 'instrumentation.ts'
- 'package.json'
- 'package-lock.json'
- 'next.config.*'
- 'tsconfig.json'
- 'tsconfig.worker.json'
- 'Dockerfile'
- '.github/workflows/ci.yml'
merge_group:
jobs:
check:
if: github.event_name == 'pull_request' || github.event_name == 'push' || github.event_name == 'merge_group'
runs-on: ubuntu-latest
env:
DATABASE_URL: "postgresql://test:test@localhost:5432/test"
NEXT_PUBLIC_BUILD_SHA: ${{ github.sha }}
# CI runs against test stubs — the strict pre-build env check
# (scripts/check-env.ts, wired into the `prebuild` lifecycle hook)
# would fail because AUTH_SECRET, AUTH_URL etc. aren't real. Skip
# it here. Vercel deploys do NOT set this flag, so the check
# still fires there as intended.
SKIP_ENV_VALIDATION: "true"
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run typecheck
- run: npx prisma validate
- run: npx prisma generate
- run: npm run test -- --passWithNoTests
- run: npm run build
docker:
if: github.event_name == 'pull_request' || github.event_name == 'push' || github.event_name == 'merge_group'
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Build Docker image
run: |
docker build \
--build-arg DATABASE_URL="postgresql://test:test@localhost:5432/test" \
--build-arg NEXT_PUBLIC_BUILD_SHA="${{ github.sha }}" \
--build-arg SKIP_ENV_VALIDATION="true" \
-t equismile:ci .
- name: Verify container starts
run: |
docker run -d --name equismile-test \
-e DATABASE_URL="postgresql://test:test@localhost:5432/test" \
-e NEXT_PUBLIC_APP_URL="http://localhost:3000" \
-p 3000:3000 \
equismile:ci
sleep 5
docker logs equismile-test
docker stop equismile-test
docker rm equismile-test
security:
if: github.event_name == 'pull_request' || github.event_name == 'push' || github.event_name == 'merge_group'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 20
cache: npm
- run: npm ci
- name: Security audit
run: npm audit --audit-level=high || true