How dhanush-10-1/jenkins-first-job works
CI/CD Pipeline Manager lets users define pipelines, connect GitHub/GitLab push events to executions, schedule jobs to language-capable workers, and inspect live execution state. The principal flow is webhook or manual execution → queued jobs → priority scheduling → worker execution, with results persisted for dashboard and log queries. The frontend also provides a visual designer with bidirectional YAML/graph editing and repository setup. The README documents SSE, simulations, and worker routing; several backend implementation details were not sampled, so uncertain call links are omitted.
Main entry points: main.py FastAPI application · App.tsx App and tabs · database.py SQL database · scheduler.py Priority scheduler
Components 19
Frontend
- App and tabs
frontend/src/App.tsx - Pipeline canvas
frontend/src/components/PipelineCanvas.tsx - YAML editor
frontend/src/components/YamlEditor.tsx - YAML graph sync
frontend/src/lib/sync.ts - Live dashboard
frontend/src/components/Dashboard.tsx - Repository manager
frontend/src/components/RepoManager.tsx
API and triggers
- FastAPI application
backend/main.py - Pipeline CRUD
backend/routers/pipelines.py - Webhook handlers
backend/routers/webhooks.py - Execution API
backend/routers/executions.py
Execution engine
- Priority scheduler
backend/engine/scheduler.py - Worker pool
backend/engine/workers.py - Stage executor
backend/engine/executor.py - Workload simulators
backend/engine/simulators.py
Persistent state
- Pipeline execution jobs
backend/models - SQL database
backend/database.py
External systems
- GitHub
- GitLab
Other components
- Pipeline operator
Connections 26
- Pipeline operator → App and tabs: uses
- App and tabs → Pipeline canvas: renders
- App and tabs → YAML editor: renders
- App and tabs → YAML graph sync: converts
- Pipeline canvas → App and tabs: sends edits
- YAML editor → App and tabs: sends edits
- App and tabs → Live dashboard: shows
- App and tabs → Repository manager: shows
- Repository manager → FastAPI application: requests API
- Live dashboard → FastAPI application: requests state
- GitHub → Webhook handlers: pushes event
- GitLab → Webhook handlers: pushes event
- FastAPI application → Pipeline CRUD: registers router
- FastAPI application → Execution API: registers router
- FastAPI application → Webhook handlers: registers router
- Pipeline CRUD → SQL database: reads and writes
- Webhook handlers → SQL database: creates records
- Execution API → SQL database: reads and writes
- FastAPI application → Priority scheduler: starts polling
- Priority scheduler → Worker pool: selects worker
- Worker pool → Stage executor: runs stages
- FastAPI application → Workload simulators: starts simulations
- FastAPI application → SQL database: initializes
- FastAPI application → SQL database: queries SSE state
- Priority scheduler → SQL database: polls queued jobs
- Execution API → Priority scheduler: queues execution