fix(auth): centralize token handling in auth service #2183
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI - Frontend Quality Thresholds | |
| on: | |
| pull_request: | |
| branches: | |
| - develop | |
| - main | |
| push: | |
| branches: | |
| - develop | |
| - main | |
| workflow_dispatch: | |
| jobs: | |
| lint-threshold: | |
| name: Frontend Lint Threshold Check | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| env: | |
| LINT_WARNING_THRESHOLD: 0 | |
| LINT_ERROR_THRESHOLD: 0 | |
| BUILD_WARNING_THRESHOLD: 0 | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Set Up Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| node-version: '24' | |
| - name: Enable Corepack | |
| run: | | |
| corepack enable | |
| corepack yarn --version | |
| - name: Install Frontend Dependencies | |
| working-directory: ./frontend | |
| run: corepack yarn install --immutable | |
| - name: Typecheck Frontend | |
| working-directory: ./frontend | |
| run: corepack yarn typecheck | |
| - name: Run Frontend Build | |
| working-directory: ./frontend | |
| run: | | |
| set +e | |
| CI=1 NG_CLI_ANALYTICS=false corepack yarn build:prod 2>&1 | tee build-output.log | |
| BUILD_EXIT_CODE=${PIPESTATUS[0]} | |
| set -e | |
| if [ "${BUILD_EXIT_CODE}" -ne 0 ]; then | |
| echo "ERROR: Angular build failed with exit code ${BUILD_EXIT_CODE}" | |
| exit ${BUILD_EXIT_CODE} | |
| fi | |
| - name: Count Build Warnings | |
| working-directory: ./frontend | |
| run: | | |
| if [ ! -f build-output.log ]; then | |
| echo "ERROR: build-output.log was not generated by ng build" | |
| exit 1 | |
| fi | |
| sed -E $'s/\x1B\[[0-9;]*[A-Za-z]//g' build-output.log > build-output-plain.log | |
| BUILD_WARNING_COUNT=$(grep -E -c '\[WARNING\]|WARNING in|^Warning:' build-output-plain.log || true) | |
| echo "Build warnings found: ${BUILD_WARNING_COUNT}" | |
| echo "BUILD_WARNING_COUNT=${BUILD_WARNING_COUNT}" >> "$GITHUB_ENV" | |
| - name: Run Frontend Linter | |
| working-directory: ./frontend | |
| run: | | |
| # Lint output is written to JSON for threshold evaluation. | |
| corepack yarn lint:eslint --format json --output-file lint-results.json || true | |
| - name: Count Lint Warnings | |
| working-directory: ./frontend | |
| run: | | |
| if [ ! -f lint-results.json ]; then | |
| echo "ERROR: lint-results.json was not generated by ng lint" | |
| exit 1 | |
| fi | |
| LINT_WARNING_COUNT=$(jq 'reduce .[] as $f (0; . + ($f.warningCount // 0))' lint-results.json) | |
| LINT_ERROR_COUNT=$(jq 'reduce .[] as $f (0; . + ($f.errorCount // 0))' lint-results.json) | |
| echo "Lint warnings found: ${LINT_WARNING_COUNT}" | |
| echo "Lint errors found: ${LINT_ERROR_COUNT}" | |
| echo "LINT_WARNING_COUNT=${LINT_WARNING_COUNT}" >> "$GITHUB_ENV" | |
| echo "LINT_ERROR_COUNT=${LINT_ERROR_COUNT}" >> "$GITHUB_ENV" | |
| - name: Enforce Quality Thresholds | |
| run: | | |
| BUILD_STATUS="PASS" | |
| LINT_STATUS="PASS" | |
| LINT_ERROR_STATUS="PASS" | |
| if [ "${BUILD_WARNING_COUNT}" -gt "${BUILD_WARNING_THRESHOLD}" ]; then | |
| BUILD_STATUS="FAIL" | |
| fi | |
| if [ "${LINT_WARNING_COUNT}" -gt "${LINT_WARNING_THRESHOLD}" ]; then | |
| LINT_STATUS="FAIL" | |
| fi | |
| if [ "${LINT_ERROR_COUNT}" -gt "${LINT_ERROR_THRESHOLD}" ]; then | |
| LINT_ERROR_STATUS="FAIL" | |
| fi | |
| echo "Build warnings: ${BUILD_WARNING_COUNT} (threshold: ${BUILD_WARNING_THRESHOLD})" | |
| echo "Lint warnings: ${LINT_WARNING_COUNT} (threshold: ${LINT_WARNING_THRESHOLD})" | |
| echo "Lint errors: ${LINT_ERROR_COUNT} (threshold: ${LINT_ERROR_THRESHOLD})" | |
| { | |
| echo "## Frontend Quality Gate" | |
| echo | |
| echo "| Check | Count | Threshold | Status |" | |
| echo "| --- | ---: | ---: | --- |" | |
| echo "| Build warnings | ${BUILD_WARNING_COUNT} | ${BUILD_WARNING_THRESHOLD} | ${BUILD_STATUS} |" | |
| echo "| Lint warnings | ${LINT_WARNING_COUNT} | ${LINT_WARNING_THRESHOLD} | ${LINT_STATUS} |" | |
| echo "| Lint errors | ${LINT_ERROR_COUNT} | ${LINT_ERROR_THRESHOLD} | ${LINT_ERROR_STATUS} |" | |
| } >> "$GITHUB_STEP_SUMMARY" | |
| if [ "${BUILD_STATUS}" = "FAIL" ] || [ "${LINT_STATUS}" = "FAIL" ] || [ "${LINT_ERROR_STATUS}" = "FAIL" ]; then | |
| echo "ERROR: One or more quality thresholds failed" | |
| exit 1 | |
| fi | |
| echo "OK: All quality thresholds passed" |