V13-FE-006: consolidate approved UI and contract hardening
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s

This commit is contained in:
2026-08-13 02:41:00 +09:00
parent d79edae546
commit 3f293d8aa8
1278 changed files with 14384 additions and 1664 deletions
@@ -0,0 +1,56 @@
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
@@ -0,0 +1,54 @@
name: KBX Release Readiness
on:
workflow_dispatch:
inputs:
environment:
description: Target environment (Staging or Production)
required: true
default: Staging
jobs:
release-readiness:
runs-on: ubuntu-latest
steps:
- name: Checkout immutable candidate
uses: actions/checkout@v4
- name: Validate KBX contracts and configuration governance
run: node scripts/validate-kbx.mjs
- name: Frontend runtime evidence gate
shell: bash
run: |
corepack enable
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 "Frontend runtime evidence is BLOCKED because the immutable candidate has no pnpm-lock.yaml."
exit 1
fi
- name: Verify generated configuration/deployment artifacts
run: git diff --exit-code -- generated/configuration-manifest.json packages/kbx-contracts/src/generated/configurationCatalog.ts backend/Shared/Configuration/Generated/KbxConfigurationCatalog.g.cs deploy/kbx/
- name: Build/test when host repository is available
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 "Starter: host build is deferred."
fi
- name: Configuration validation gate
run: echo "Host must bind target-environment secrets/config and call KbxConfigurationStartupValidator.ValidateOrThrow before promotion."
- name: Database migration dry-run gate
run: echo "Host must execute DbUp validation/dry-run against an environment-equivalent database before applying migrations."
- name: Migration application policy
run: echo "Production migrations are pre-deploy; application startup schema mutation is forbidden."