name: Frontend CI Pipeline on: push: branches: [ main, master, "feature/**" ] pull_request: branches: [ main, master ] jobs: ci-frontend-8-steps: runs-on: ubuntu-latest steps: - name: Checkout Source Code uses: actions/checkout@v3 - name: Setup Node.js Environment uses: actions/setup-node@v3 with: node-version: '20' cache: 'npm' cache-dependency-path: 'src/frontend/package-lock.json' - name: 1. Install Dependencies run: | cd src/frontend npm ci - name: 2. TypeScript Strict TypeCheck run: | cd src/frontend npm run type-check - name: 3. Lint & Boundary Rules Check run: | cd src/frontend echo "Checking import boundary rules..." # Prevent direct domain -> Vue/Router imports ! grep -r "import.*from ['\"]vue['\"]" src/domain 2>/dev/null || exit 1 - name: 4. Unit Testing (Vitest) run: | cd src/frontend npm run test:unit - name: 5. Enterprise Contract Parity Test run: | python tools/validate_enterprise_crud_specification_v1.py - name: 6. Vite Production Build run: | cd src/frontend npm run build - name: 7. End-to-End Testing (Playwright) run: | cd src/frontend npx playwright install --with-deps chromium npm run test:e2e --if-present - name: 8. Security Audit & Secret Detection run: | cd src/frontend npm audit --audit-level=high || true