Visual Workflow Builder (Phases 1–8 + AI agent) → develop #684
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: Backend Quality Assurance | |
| permissions: | |
| contents: read | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| branches: [main, develop] | |
| paths: | |
| - 'apps/backend-services/**' | |
| - 'apps/shared/**' | |
| - 'packages/**' | |
| - 'docs-md/workflows/templates/**' | |
| - 'scripts/lint-workflows.mjs' | |
| - '.github/workflows/backend-qa.yml' | |
| workflow_dispatch: | |
| jobs: | |
| test-and-lint: | |
| name: Backend Quality Assurance | |
| runs-on: ubuntu-latest | |
| outputs: | |
| environment: ${{ steps.env.outputs.environment }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Get Environment | |
| id: env | |
| uses: ./.github/actions/get-environment | |
| - name: Setup Node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24' | |
| - name: Install dependencies | |
| run: npm install --ignore-scripts --no-package-lock | |
| - name: Build shared packages | |
| run: npm run build:packages | |
| # Prisma-generated types needed | |
| # ENV is just so this will run | |
| - name: Generate Prisma files | |
| working-directory: apps/backend-services | |
| run: npm run db:generate | |
| env: | |
| DATABASE_URL: "postgresql://localhost:5432/dummy" | |
| # Validates every shipped workflow template against the CURRENT catalog and | |
| # kind taxonomy. A catalog or taxonomy change can silently invalidate a | |
| # template that no test opens — which is what the 2026-07-18 kind wave did. | |
| # Runs after build:packages because it loads the built validator. | |
| # | |
| # Templates only: the seeded demos live in the database, so shape coverage | |
| # here is partial and the script reports it as informational. `--strict` | |
| # therefore gates on document validity alone — which is the part that can | |
| # regress from a code change. Judging shape gaps needs `--db`, locally. | |
| - name: Lint shipped workflows | |
| run: npm run workflows:lint -- --strict | |
| - name: Lint | |
| working-directory: apps/backend-services | |
| run: npm run lint | |
| - name: Type Check | |
| working-directory: apps/backend-services | |
| run: npm run type-check | |
| - name: Build | |
| working-directory: apps/backend-services | |
| run: npm run build | |
| env: | |
| DATABASE_URL: "postgresql://localhost:5432/dummy" | |
| - name: Test | |
| working-directory: apps/backend-services | |
| run: npm run test:cov |