name: Validate All on: pull_request: push: branches: - main jobs: validate-all: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Node uses: actions/setup-node@v4 with: node-version: '20' cache: npm cache-dependency-path: | frontend/package-lock.json package-lock.json - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Enforce feature spec policy (PR only) if: github.event_name == 'pull_request' env: BASE_SHA: ${{ github.event.pull_request.base.sha }} run: ./scripts/check-feature-spec.sh - name: Install frontend dependencies run: | cd frontend npm install - name: Run validate-all env: SKIP_BACKEND_IMPORT_SMOKE: '1' run: ./scripts/validate-all.sh - name: Collect diagnostics on failure if: failure() run: ./scripts/collect-diagnostics.sh - name: Upload diagnostics artifact if: failure() uses: actions/upload-artifact@v4 with: name: diagnostics path: .diagnostics