fix(ci): add frontend production build step to catch Angular build failures
CI Pipeline / backend-test (push) Successful in 7m58s
CI Pipeline / frontend-test (push) Successful in 29s
CI Pipeline / frontend-build (push) Failing after 31s
CI Pipeline / backend-lint (push) Successful in 9s
CI Pipeline / backend-test (pull_request) Successful in 7m49s
CI Pipeline / frontend-test (pull_request) Successful in 29s
CI Pipeline / frontend-build (pull_request) Failing after 30s
CI Pipeline / backend-lint (pull_request) Successful in 11s
CI Pipeline / quality-gate (push) Successful in 3s
CI Pipeline / quality-gate (pull_request) Successful in 3s
CI Pipeline / backend-test (push) Successful in 7m58s
CI Pipeline / frontend-test (push) Successful in 29s
CI Pipeline / frontend-build (push) Failing after 31s
CI Pipeline / backend-lint (push) Successful in 9s
CI Pipeline / backend-test (pull_request) Successful in 7m49s
CI Pipeline / frontend-test (pull_request) Successful in 29s
CI Pipeline / frontend-build (pull_request) Failing after 30s
CI Pipeline / backend-lint (pull_request) Successful in 11s
CI Pipeline / quality-gate (push) Successful in 3s
CI Pipeline / quality-gate (pull_request) Successful in 3s
- 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
This commit is contained in:
@@ -2,7 +2,7 @@ name: CI Pipeline
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [main, develop, feature/tests-and-ci]
|
branches: [main, develop, feature/tests-and-ci, feature/multi-admin-roles]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
|
|
||||||
@@ -36,6 +36,18 @@ jobs:
|
|||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: npx vitest run --reporter=verbose --coverage || true
|
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:
|
backend-lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
@@ -52,13 +64,14 @@ jobs:
|
|||||||
|
|
||||||
quality-gate:
|
quality-gate:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [backend-test]
|
needs: [backend-test, frontend-build]
|
||||||
if: always()
|
if: always()
|
||||||
steps:
|
steps:
|
||||||
- name: Quality Gate
|
- name: Quality Gate
|
||||||
run: |
|
run: |
|
||||||
echo "=== Quality Gate ==="
|
echo "=== Quality Gate ==="
|
||||||
echo "Backend tests: enforced (pipeline fails if they don't pass)"
|
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 "Coverage threshold: >= 10% (enforced by --cov-fail-under)"
|
||||||
echo "Quality gate PASSED"
|
echo "Quality gate PASSED"
|
||||||
continue-on-error: false
|
continue-on-error: false
|
||||||
|
|||||||
Reference in New Issue
Block a user