chore: merge develop to main#63
Conversation
Add comprehensive Frontend/Node.js PR analysis workflow equivalent to go-pr-analysis.yml. Features: - Change detection for monorepo and single-app repositories - ESLint for code quality with configurable arguments - TypeScript type checking (tsc --noEmit) - npm audit for security vulnerabilities - Jest/Vitest unit tests with coverage - Coverage threshold enforcement with PR comments - Build verification - Slack notifications on failure - Support for npm, yarn, and pnpm package managers - Matrix-based parallel job execution per changed app Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
feat: add frontend-pr-analysis reusable workflow
|
Caution Review failedThe pull request is closed. WalkthroughThis pull request introduces a reusable GitHub Actions workflow for comprehensive frontend/Node.js CI on monorepos. The workflow includes change detection, per-app matrix execution, ESLint linting, TypeScript type checking, npm/yarn/pnpm security audits, unit tests with coverage collection, coverage threshold enforcement with PR comments, build verification, and Slack notifications. Documentation files describe workflow stages, configuration options, and usage patterns for both single-app and monorepo repositories. The workflow supports multiple package managers and generates dynamic per-app matrices based on detected changes. Sequence DiagramsequenceDiagram
actor PR as PR Trigger
participant WF as Frontend PR Analysis<br/>(Workflow)
participant DC as Detect Changes<br/>(Job)
participant Matrix as Per-App Matrix<br/>(Dynamic)
participant Lint as Lint<br/>(Job)
participant TypeCheck as Type Check<br/>(Job)
participant Security as Security Audit<br/>(Job)
participant Tests as Tests + Coverage<br/>(Job)
participant Coverage as Coverage<br/>(Job)
participant Build as Build<br/>(Job)
participant Notify as Notify<br/>(Job)
participant Slack as Slack<br/>(External)
PR->>WF: Trigger on PR
WF->>DC: Start: Detect changed files
DC-->>Matrix: Output: has_changes flag +<br/>app matrix
alt has_changes == true
Matrix->>Lint: For each app in matrix
Lint-->>Lint: Run ESLint per app
Matrix->>TypeCheck: For each app in matrix
TypeCheck-->>TypeCheck: Run TypeScript compiler
Matrix->>Security: For each app in matrix
Security-->>Security: Run npm/yarn audit
Matrix->>Tests: For each app in matrix
Tests-->>Tests: Run tests + collect coverage
Tests->>Coverage: Upload coverage artifacts
Coverage->>Coverage: Download artifacts +<br/>parse metrics
Coverage->>PR: Post coverage table +<br/>summary comment
Coverage-->>Coverage: Check threshold<br/>(optional fail)
Matrix->>Build: For each app in matrix
Build-->>Build: Build each app
else has_changes == false
WF->>WF: No Changes: skip processing
end
Lint-->>Notify: Collect status (passed/failed)
TypeCheck-->>Notify: Collect status
Security-->>Notify: Collect status
Tests-->>Notify: Collect status
Coverage-->>Notify: Collect status
Build-->>Notify: Collect status
Notify->>Slack: Post aggregated results
Slack-->>Notify: Acknowledgment
Possibly related PRs
Suggested labels
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Organization UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (3)
Comment |
Summary
Merges develop branch to main, including the new frontend-pr-analysis workflow.
Changes Included
docs/frontend-pr-analysis-workflow.mdSummary by CodeRabbit
New Features
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.