Skip to content

chore(deps): update hashicorp/google-beta requirement from ~> 6.0 to ~> 7.39 in /infra/terraform #111

chore(deps): update hashicorp/google-beta requirement from ~> 6.0 to ~> 7.39 in /infra/terraform

chore(deps): update hashicorp/google-beta requirement from ~> 6.0 to ~> 7.39 in /infra/terraform #111

Workflow file for this run

name: Quality
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
id-token: write
concurrency:
group: quality-${{ github.ref }}
cancel-in-progress: true
jobs:
# -------------------------------------------------------------------------
# Static + unit + property
# -------------------------------------------------------------------------
static-and-unit:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9.12.3
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.x
- name: Install
run: pnpm install --frozen-lockfile=false
- name: Lint
run: pnpm -r lint
- name: Typecheck
run: pnpm -r typecheck
- name: Unit tests
run: pnpm -r test
- name: Property tests
run: pnpm test:property
- name: Build
run: pnpm -r build
# -------------------------------------------------------------------------
# Agent evals (BFCL, tau2, red-team)
# -------------------------------------------------------------------------
agent-eval:
runs-on: ubuntu-24.04
needs: static-and-unit
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9.12.3
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile=false
- name: Agent eval
run: pnpm test:agent-eval
# -------------------------------------------------------------------------
# Chaos scenarios
# -------------------------------------------------------------------------
chaos:
runs-on: ubuntu-24.04
needs: static-and-unit
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9.12.3
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile=false
- name: Chaos scenarios
run: pnpm --filter @vsbs/chaos test
# -------------------------------------------------------------------------
# Playwright e2e + a11y (axe)
# -------------------------------------------------------------------------
e2e:
runs-on: ubuntu-24.04
needs: static-and-unit
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9.12.3
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.x
- run: pnpm install --frozen-lockfile=false
- name: Build libs
run: pnpm run build:libs
- name: Install Playwright browsers
run: pnpm --filter @vsbs/e2e exec playwright install --with-deps chromium firefox webkit
- name: e2e
env:
LLM_PROFILE: sim
run: pnpm test:e2e
- name: Upload Playwright report
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: e2e/playwright-report
# -------------------------------------------------------------------------
# Lighthouse CI — only on pull requests
# -------------------------------------------------------------------------
lighthouse:
runs-on: ubuntu-24.04
needs: static-and-unit
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9.12.3
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile=false
- run: pnpm run build:libs
- name: Run Lighthouse CI
uses: treosh/lighthouse-ci-action@12
with:
urls: |
http://localhost:3000/
http://localhost:3000/book
http://localhost:3000/me/consent
uploadArtifacts: true
temporaryPublicStorage: true
# -------------------------------------------------------------------------
# k6 load tests — only on PRs labelled "load"
# -------------------------------------------------------------------------
load:
runs-on: ubuntu-24.04
needs: static-and-unit
if: github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'load')
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9.12.3
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.x
- name: Install k6
run: |
sudo gpg -k
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69
echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list
sudo apt-get update
sudo apt-get install -y k6
- run: pnpm install --frozen-lockfile=false
- name: Boot API in sim mode
env:
LLM_PROFILE: sim
PORT: "8787"
run: |
cd apps/api && bun src/server.ts &
sleep 5
- name: k6 booking-burst
run: pnpm --filter @vsbs/load test:booking