From f8a04dba1a9e943e4b875084aa86a667611685f2 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Thu, 30 Jul 2026 23:50:20 +0000 Subject: [PATCH] fix(ci): add frontend production build step to catch Angular build failures - Add 'frontend-build' job that runs 'npx ng build --configuration production' - Wire frontend-build into quality-gate dependencies - Include feature/multi-admin-roles in CI push branches - Build failures now fail the pipeline instead of being silently missed --- .gitea/workflows/ci.yaml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 078d9e4..c81fe00 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -2,7 +2,7 @@ name: CI Pipeline on: push: - branches: [main, develop, feature/tests-and-ci] + branches: [main, develop, feature/tests-and-ci, feature/multi-admin-roles] pull_request: branches: [main] @@ -36,6 +36,18 @@ jobs: - name: Run tests run: npx vitest run --reporter=verbose --coverage || true + frontend-build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: "22" + - name: Install dependencies + run: npm ci + - name: Build production bundle + run: npx ng build --configuration production + backend-lint: runs-on: ubuntu-latest steps: @@ -52,13 +64,14 @@ jobs: quality-gate: runs-on: ubuntu-latest - needs: [backend-test] + needs: [backend-test, frontend-build] if: always() steps: - name: Quality Gate run: | echo "=== Quality Gate ===" echo "Backend tests: enforced (pipeline fails if they don't pass)" + echo "Frontend build: enforced (pipeline fails if production build doesn't compile)" echo "Coverage threshold: >= 10% (enforced by --cov-fail-under)" echo "Quality gate PASSED" continue-on-error: false