57 lines
2.2 KiB
YAML
57 lines
2.2 KiB
YAML
name: KBX Quality Gate
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
architecture:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Validate KBX architecture
|
|
run: node scripts/validate-kbx.mjs
|
|
- name: Ensure generated manifests are committed
|
|
run: git diff --exit-code -- generated/ apps/web/src/registry/screens.generated.ts packages/kbx-ui/src/tokens/kbx.css packages/kbx-contracts/src/generated/ backend/Shared/Contracts/Generated/ backend/Shared/Authorization/Generated/ backend/Shared/Telemetry/Generated/ backend/Shared/Experiments/Generated/ backend/Shared/Testing/Generated/ backend/Shared/Integrations/Generated/ backend/Shared/Providers/Generated/ backend/Shared/ExternalData/Generated/ backend/Shared/Configuration/Generated/ design/figma/ contracts/api/openapi.kbx.json deploy/kbx/
|
|
|
|
frontend:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Enable Corepack
|
|
run: corepack enable
|
|
- name: Install and execute FE runtime evidence when lockfile exists
|
|
shell: bash
|
|
run: |
|
|
if [ -f pnpm-lock.yaml ]; then
|
|
pnpm install --frozen-lockfile
|
|
pnpm typecheck:web
|
|
pnpm test:unit
|
|
pnpm build:web:demo
|
|
pnpm exec playwright install --with-deps chromium
|
|
pnpm test:e2e
|
|
else
|
|
node scripts/report-fe-runtime-readiness.mjs
|
|
echo "pnpm-lock.yaml is absent; reproducible browser-runtime evidence is blocked and is not reported as PASS."
|
|
fi
|
|
|
|
backend:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Build/test when solution exists
|
|
shell: bash
|
|
run: |
|
|
shopt -s nullglob
|
|
solutions=( *.sln *.slnx )
|
|
if [ ${#solutions[@]} -gt 0 ]; then
|
|
dotnet restore "${solutions[0]}"
|
|
dotnet build "${solutions[0]}" --no-restore -c Release
|
|
dotnet test "${solutions[0]}" --no-build -c Release
|
|
else
|
|
echo "Reference starter has no .NET solution file; backend compile gate is deferred to host repository."
|
|
fi
|