55 lines
2.2 KiB
YAML
55 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 test when lockfile exists
|
|
shell: bash
|
|
run: |
|
|
if [ -f pnpm-lock.yaml ]; then
|
|
pnpm install --frozen-lockfile
|
|
pnpm -r --if-present run typecheck
|
|
pnpm -r --if-present run test
|
|
pnpm -r --if-present run build
|
|
echo "KBX canonical scenario contract validated statically; Playwright host run belongs to product repository."
|
|
else
|
|
echo "Starter has no pnpm-lock.yaml yet; dependency build gate is intentionally deferred."
|
|
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
|