Skip to content

refactor(api): bump v3 prompt with albert support #1864

refactor(api): bump v3 prompt with albert support

refactor(api): bump v3 prompt with albert support #1864

Workflow file for this run

name: Tests
on:
# push:
pull_request:
workflow_dispatch:
workflow_call:
inputs:
branch:
required: true
type: string
permissions:
contents: read
jobs:
changes:
name: Detect changes
runs-on: ubuntu-latest
outputs:
api: ${{ steps.filter.outputs.api }}
widget: ${{ steps.filter.outputs.widget }}
analytics: ${{ steps.filter.outputs.analytics }}
app: ${{ steps.filter.outputs.app }}
api_prisma_schema: ${{ steps.filter.outputs.api_prisma_schema }}
steps:
- uses: actions/checkout@v6
- uses: dorny/paths-filter@v4.0.1
id: filter
with:
filters: |
api:
- 'api/**'
- 'packages/**'
widget:
- 'widget/**'
analytics:
- 'analytics/**'
app:
- 'app/**'
api_prisma_schema:
- 'api/prisma/schema.prisma'
api-migrations:
name: Verify API migrations
needs: changes
if: needs.changes.outputs.api == 'true'
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U postgres"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6.3.0
with:
node-version: "24"
cache: "npm"
cache-dependency-path: "package-lock.json"
- name: Install dependencies
run: npm ci
- name: Prepare temporary databases
env:
PGPASSWORD: postgres
run: |
psql -h localhost -U postgres -d postgres -c 'CREATE DATABASE core;'
- name: Check Prisma migrations
env:
DATABASE_URL_CORE: postgresql://postgres:postgres@localhost:5432/core
run: npm --workspace api run prisma:migrate:deploy
analytics-migrations:
name: Verify Analytics migrations
needs: changes
if: needs.changes.outputs.analytics == 'true'
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U postgres"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6.3.0
with:
node-version: "24"
cache: "npm"
cache-dependency-path: "package-lock.json"
- uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install dependencies
run: npm ci
- name: Install dbt
run: |
python -m pip install --upgrade pip
pip install --no-cache-dir dbt-postgres
- name: Prepare temporary databases
env:
PGPASSWORD: postgres
run: |
psql -h localhost -U postgres -d postgres -c 'CREATE DATABASE analytics;'
- name: Check dbmate migrations
env:
DATABASE_URL_ANALYTICS: postgresql://postgres:postgres@localhost:5432/analytics?sslmode=disable
run: npm --workspace analytics run db:migrate
- name: Check dbt compile
working-directory: analytics
env:
DATABASE_URL_ANALYTICS: postgresql://postgres:postgres@localhost:5432/analytics
run: ./scripts/dbt-env.sh compile
analytics-export-job:
name: Verify analytics export job
needs: changes
if: needs.changes.outputs.api_prisma_schema == 'true'
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U postgres"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6.3.0
with:
node-version: "24"
cache: "npm"
cache-dependency-path: "package-lock.json"
- name: Install dependencies
run: npm ci
- name: Prepare temporary databases
env:
PGPASSWORD: postgres
run: |
psql -h localhost -U postgres -d postgres -c 'CREATE DATABASE core;'
psql -h localhost -U postgres -d postgres -c 'CREATE DATABASE analytics;'
- name: Apply API Prisma migrations
env:
DATABASE_URL_CORE: postgresql://postgres:postgres@localhost:5432/core
run: npm --workspace api run prisma:migrate:deploy
- name: Apply Analytics migrations
env:
DATABASE_URL_ANALYTICS: postgresql://postgres:postgres@localhost:5432/analytics?sslmode=disable
run: npm --workspace analytics run db:migrate
- name: Run analytics export job
env:
DATABASE_URL_CORE: postgresql://postgres:postgres@localhost:5432/core
DATABASE_URL_ANALYTICS: postgresql://postgres:postgres@localhost:5432/analytics?sslmode=disable
ENV: development
run: npm --workspace analytics run job -- export-to-analytics-raw
api-tests:
name: API Tests
needs:
- changes
- api-migrations
if: needs.changes.outputs.api == 'true'
runs-on: ubuntu-latest
permissions:
contents: read
actions: write
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6.3.0
with:
node-version: "24"
cache: "npm"
cache-dependency-path: "package-lock.json"
- name: Install dependencies
run: npm ci
- name: Generate Prisma clients
run: npm --workspace api run prisma:generate
- name: Run tests
env:
TESTCONTAINERS_RYUK_DISABLED: "true"
run: npm --workspace api run test:ci
widgets-tests:
name: Widget Tests
needs: changes
if: needs.changes.outputs.widget == 'true'
runs-on: ubuntu-latest
permissions:
contents: read
actions: write
steps:
- uses: actions/checkout@v6
- name: Use Node.js
uses: actions/setup-node@v6.3.0
with:
node-version: "24"
cache: "npm"
cache-dependency-path: "package-lock.json"
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers and dependencies
run: npm --workspace widget exec -- playwright install --with-deps
- name: Run tests
run: npm --workspace widget run test:e2e
- name: Upload HTML test report
uses: actions/upload-artifact@v7
if: always()
with:
name: playwright-report
path: widget/tests/e2e/_playwright-report
retention-days: 30
app-tests:
name: App E2E Tests
needs: changes
if: needs.changes.outputs.app == 'true'
runs-on: ubuntu-latest
permissions:
contents: read
actions: write
steps:
- uses: actions/checkout@v6
- name: Use Node.js
uses: actions/setup-node@v6.3.0
with:
node-version: "24"
cache: "npm"
cache-dependency-path: "package-lock.json"
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers and dependencies
run: npm --workspace app exec -- playwright install --with-deps chromium
- name: Run tests
run: npm --workspace app run test:e2e