Files
KArtSell.Aegis/docs/Design/kbx-foundation-v36/.gitea/workflows/kbx-quality-gate.yaml
T

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