00-bkci-global-architecture
25
总安装量
25
周安装量
#7821
全站排名
安装命令
npx skills add https://github.com/tencentblueking/bk-ci --skill 00-bkci-global-architecture
Agent 安装分布
claude-code
15
gemini-cli
13
opencode
13
cursor
11
antigravity
10
Skill 文档
BK-CI å ¨å±æ¶ææå
ð Skill 导èªç´¢å¼
说æ: æ¬ææ¡£æ¯å ¨å±æ¶ææ»è§ï¼æéæ·±å ¥é è¯»å ·ä½æ¨¡åç Skillã
ðï¸ æç±»å«æ¥æ¾ (31 个 Skill)
1ï¸â£ å ¨å±æ¶æ (1)
00-bkci-global-architecture(æ¬ææ¡£) – ç³»ç»å ¨å±æ¶æã模ååä½ãæ§è¡æµç¨
2ï¸â£ éç¨ææ¯å®è·µ (3)
common-technical-practices– æ¡æ¶çº§å®è·µï¼AOPãåå¸å¼éãéè¯ãçæ§ã宿¶ä»»å¡ã审计æ¥å¿microservice-infrastructure– å¾®æå¡åºç¡ï¼æ¡ä»¶é ç½®ãäºä»¶é©±å¨ãæå¡è°ç¨ãå½é åãæ¥å¿utility-components– å·¥å ·çº§ç»ä»¶ï¼JWTã表达å¼è§£æãçº¿ç¨æ± ã责任é¾
3ï¸â£ å端å¼å (3)
backend-microservice-development– å端微æå¡å¼åè§èãController/Service/Dao 模å¼api-interface-design– RESTful API è®¾è®¡ãæ¥å£è§èunit-testing– åå æµè¯ç¼åè§è
4ï¸â£ å端å¼å (1)
frontend-vue-development– Vue å端å¼åè§èãç»ä»¶è®¾è®¡
5ï¸â£ æ°æ®åº (1)
database-design– æ°æ®åºè¡¨è®¾è®¡ãåæ®µè§èãç´¢å¼ä¼åãDDL èæ¬ç®¡ç
6ï¸â£ Pipeline æµæ°´çº¿ç³»å (4)
pipeline-model-architecture– Pipeline æ¨¡åæ¶æï¼Stage/Container/Element ç»æpipeline-variable-management– æµæ°´çº¿åé管çï¼åéçå½å¨æãåæ®µæ©å±pipeline-template-module– æµæ°´çº¿æ¨¡æ¿æ¨¡åï¼æ¨¡æ¿å®ä¹ãå®ä¾åãçæ¬ç®¡çpipeline-plugin-development– æµæ°´çº¿æä»¶å¼åï¼æä»¶è§èã任塿§è¡
7ï¸â£ æ ¸å¿æ¨¡åæ¶æ (9)
process-module-architecture– Process æµæ°´çº¿æ¨¡åï¼æ ¸å¿ï¼ï¼API/Service/Engine/Dao å屿¶æauth-module-architecture– Auth æéè®¤è¯æ¨¡åï¼RBACãæéæ ¡éªproject-module-architecture– Project 项ç®ç®¡ç模åï¼é¡¹ç®å建ãé ç½®ãæå管çrepository-module-architecture– Repository 代ç åºæ¨¡åï¼Git/SVN éæãWebhookstore-module-architecture– Store ç åååºæ¨¡åï¼æä»¶/模æ¿ä¸æ¶ãçæ¬ç®¡çartifactory-module-architecture– Artifactory å¶ååºæ¨¡åï¼å¶ååå¨ãçæ¬ç®¡çdispatch-module-architecture– Dispatch æå»ºè°åº¦æ¨¡åï¼æå»ºæºåé ãè°åº¦çç¥worker-module-architecture– Worker 任塿§è¡å¨æ¨¡åï¼ä»»å¡é¢åãæä»¶æ§è¡agent-module-architecture– Agent æå»ºæºä»£ç模å (Go)ï¼è¿ç¨ç®¡çãæ¥å¿ä¸æ¥
8ï¸â£ æ¯ææ¨¡åæ¶æ (1)
supporting-modules-architecture– æ¯ææ¨¡åæ»è§ï¼- Ticket (åè¯ç®¡ç)
- Environment (æå»ºæºç¯å¢)
- Notify (éç¥æå¡)
- Log (æå»ºæ¥å¿)
- Quality (è´¨é红线)
- OpenAPI (弿¾æ¥å£)
9ï¸â£ è®¾è®¡æ¨¡å¼ (1)
design-patterns– 设计模å¼å®è·µï¼å·¥åãçç¥ãè§å¯è ã责任é¾ç
ð å ¶ä»å·¥å ·ä¸è§è (7)
git-commit-specification– Git æäº¤è§èï¼Commit Message æ ¼å¼managing-devops-pipeline– èç¾æµæ°´çº¿ç®¡çï¼MCP å·¥å ·ä½¿ç¨æåbusiness-knowledge-workflow– ä¸å¡ç¥è¯è·åæµç¨ï¼å¦ä½è·åé¢åç¥è¯permission-model-change-guide– æé模ååæ´æåï¼v3 â v4 è¿ç§»go-agent-development– Go Agent å¼åè§èï¼Go ç¼ç è§èãæå»ºæºå¼åyaml-pipeline-transfer– YAML æµæ°´çº¿è½¬æ¢ï¼v2.0 â v3.0 è¿ç§»skill-writer– Skill ç¼åæåï¼å¦ä½ç¼åé«è´¨é Skill
ð¯ æåºæ¯å¿«éæ¥æ¾
| åºæ¯ | æ¶å Skill (æä¼å 级æåº) |
|---|---|
| æ°å¢æµæ°´çº¿åè½ | pipeline-model-architecture, process-module-architecture, pipeline-variable-management, microservice-infrastructure |
| å¼åæ°æä»¶ | store-module-architecture, worker-module-architecture, pipeline-plugin-development |
| ä¿®æ¹æéé»è¾ | auth-module-architecture, common-technical-practices |
| ä¼åæå»ºè°åº¦ | dispatch-module-architecture, agent-module-architecture, supporting-modules-architecture |
| æ°æ®åºè¡¨åæ´ | database-design |
| æ·»å API æ¥å£ | api-interface-design, backend-microservice-development |
| å端页é¢å¼å | frontend-vue-development |
| æµæ°´çº¿åéæ©å± | pipeline-variable-management, utility-components (表达å¼è§£æ) |
| å®ç°åå¸å¼é | common-technical-practices |
| æ·»å éç¥åè½ | supporting-modules-architecture (Notify 模å) |
| åè¯ç®¡ç | supporting-modules-architecture (Ticket 模å) |
| è´¨é红线 | supporting-modules-architecture (Quality 模å) |
| æ¥å¿æ¥è¯¢ | supporting-modules-architecture (Log 模å) |
| OAuth2 è®¤è¯ | auth-module-architecture, utility-components (JWT) |
ð§ å¦ä¹ è·¯å¾æ¨è
æ°æå ¥é¨è·¯å¾
1. 00-bkci-global-architecture (æ¬ææ¡£) - 建ç«å
¨å±è§å¾
â
2. pipeline-model-architecture - çè§£æµæ°´çº¿æ¨¡å
â
3. process-module-architecture - æ·±å
¥æ ¸å¿æ¨¡å
â
4. backend-microservice-development - ææ¡å¼åè§è
è¿é¶å¼åè·¯å¾
æ ¹æ®å¼åä»»å¡éæ©ï¼
- æä»¶å¼å â store + worker + pipeline-plugin-development
- æéåè½ â auth + common-technical-practices
- è°åº¦ä¼å â dispatch + agent + supporting-modules-architecture
- åéæ©å± â pipeline-variable-management + utility-components
Quick Reference
ç³»ç»åå±ï¼5 å±ï¼
ç¨æ·å± â ç½å
³å± â å¾®æå¡å± â æå»ºæºå± â èµæºå±
æ ¸å¿æ¨¡å鿥
| 模å | èè´£ | æ·±å ¥é 读 |
|---|---|---|
| Process | æµæ°´çº¿ç¼æä¸æ§è¡ï¼æ ¸å¿ï¼ | process-module-architecture |
| Auth | æéè®¤è¯ RBAC | auth-module-architecture |
| Dispatch | æå»ºæºåé è°åº¦ | dispatch-module-architecture |
| Store | ç åååº/æä»¶ç®¡ç | store-module-architecture |
| Worker | 任塿§è¡å¨ | worker-module-architecture |
| Agent | æå»ºæºä»£ç (Go) | agent-module-architecture |
æµæ°´çº¿æ§è¡æ ¸å¿æµç¨
触å â Process弿 â Dispatchåé
â Agenté¢å â Workeræ§è¡ â ç¶æåä¼
å ³é®ä»£ç å ¥å£
| åè½ | å ¥å£ç±» |
|---|---|
| æå¨æå»º | PipelineBuildFacadeService.buildManualStartup() |
| 弿è°åº¦ | StageControl / ContainerControl / TaskControl |
| Worker ä¸»å¾ªç¯ | Runner.loopPickup() |
| ä»»å¡å®æå¤ç | PipelineBuildTaskService.finishTask() |
When to Use â
- 馿¬¡æ¥è§¦ BK-CI 项ç®ï¼éè¦å»ºç«å ¨å±è§å¾
- è¿è¡è·¨æ¨¡åå¼åï¼éè¦ç解模åé´åä½
- è°è¯å¤æé®é¢ï¼éè¦è¿½è¸ªå®æ´è°ç¨é¾è·¯
- è§åæ¶æè®¾è®¡æéææ¹æ¡
- ä¸ç¡®å®æä¸ªåè½åºè¯¥å¨åªä¸ªæ¨¡åå®ç°
When NOT to Use â
- åªä¿®æ¹å个模åå é¨é»è¾ï¼ç´æ¥é è¯»å¯¹åºæ¨¡å Skillï¼
- ç®åç Bug ä¿®å¤ï¼ä¸æ¶å跨模åè°ç¨ï¼
- å端 UI è°æ´ï¼é
读
frontend-vue-developmentï¼ - æ°æ®åºè¡¨åæ´ï¼é
读
database-designï¼
ä¸ãç³»ç»å屿¶æ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â ç¨æ·å± (User Layer) â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââââââââââ â
â â Web å端 â â OpenAPI â â Webhook â â ç¬¬ä¸æ¹ç³»ç»éæ â â
â ââââââââ¬âââââââ ââââââââ¬âââââââ ââââââââ¬âââââââ ââââââââââââ¬âââââââââââ â
âââââââââââ¼âââââââââââââââââ¼âââââââââââââââââ¼âââââââââââââââââââââ¼âââââââââââââ
â¼ â¼ â¼ â¼
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â ç½å
³å± (Gateway Layer) â
â OpenResty (Nginx + Lua) â
â ⢠路ç±è½¬å â¢ èº«ä»½è®¤è¯ â¢ éæµçæ â¢ æå¡åç°(Consul) â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â¼
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â å¾®æå¡å± (Microservice Layer) â
â æ ¸å¿: Project | Process | Auth | Store | Repository â
â è°åº¦: Dispatch | Environment | Ticket â
â æ¯æ: Artifactory | Log | Notify | Quality | Metrics â
â 弿¾: OpenAPI | WebSocket â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â¼
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â æå»ºæºå± (Build Machine Layer) â
â Agent (Go) âââ¶ Worker (Kotlin) â
â è¿ç¨å®æ¤ 任塿§è¡ãæä»¶è¿è¡ãæ¥å¿ä¸æ¥ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â¼
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â èµæºå± (Resource Layer) â
â MySQL | Redis | RabbitMQ | ElasticSearch | æä»¶åå¨ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
模åèè´£éæ¥è¡¨
| 模å | æ ¸å¿èè´£ | å ³é®è½å |
|---|---|---|
| Project | 项ç®ç®¡ç | 项ç®å建ãæå管çãæå¡å¼éãè·¯ç±åç |
| Process | æµæ°´çº¿ç¼æä¸æ§è¡ | 模åå®ä¹ãæå»ºè°åº¦ãäºä»¶é©±å¨ãç¶æç®¡ç |
| Auth | æéè®¤è¯ | RBACãèµæºææãç¨æ·ç»ãOAuth2 |
| Store | ç åååº | æä»¶ç®¡çãæ¨¡æ¿å¸åºãçæ¬åå¸ãç»è®¡åæ |
| Repository | 代ç åºç®¡ç | Git/SVN/P4 对æ¥ãWebhookãPAC |
| Dispatch | æå»ºè°åº¦ | æå»ºæºåé ãDocker è°åº¦ãé é¢ç®¡ç |
| Environment | æå»ºæºç¯å¢ | èç¹ç®¡çãAgent å®è£ ãç¯å¢åé |
| Ticket | åè¯ç®¡ç | å¯ç /SSH/Token åå¨ãå å¯è§£å¯ |
| Artifactory | å¶ååº | æä»¶åå¨ãçæ¬ç®¡çã跨项ç®å ±äº« |
| Log | æ¥å¿æå¡ | æå»ºæ¥å¿æ¶éãåå¨ãæ£ç´¢ |
| Notify | éç¥æå¡ | é®ä»¶/ä¼å¾®/RTX éç¥ |
| Quality | è´¨é红线 | ææ å®ä¹ãåå ¥ååºãæ¦æªè§å |
| Agent | æå»ºæºä»£ç | è¿ç¨ç®¡çãä»»å¡è°åº¦ãèªå¨å级 |
| Worker | 任塿§è¡å¨ | æä»¶æ§è¡ãèæ¬è¿è¡ãæ¥å¿ä¸æ¥ |
äºãæµæ°´çº¿æ§è¡å ¨æµç¨ï¼æ ¸å¿ï¼
è¿æ¯ BK-CI ææ ¸å¿çæµç¨ï¼æ¶åå ä¹æææ¨¡åçåä½ã
2.1 æ§è¡æµç¨æ»è§å¾
ç¨æ·è§¦å
â
â¼
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â PipelineBuild ââââââ¶â PipelineBuild ââââââ¶â PipelineRuntime â
â FacadeService â â Service â â Service â
â (æéæ ¡éª) â â (æ¦æªå¨é¾) â â (å建记å½) â
âââââââââââââââââââ âââââââââââââââââââ ââââââââââ¬âââââââââ
â
â¼
âââââââââââââââââââââââ
â PipelineBuildStart â
â Event â RabbitMQ â
ââââââââââââ¬âââââââââââ
â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â¼
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â BuildStart ââââââ¶â StageControl ââââââ¶â Container â
â Control â â (责任é¾) â â Control â
âââââââââââââââââââ âââââââââââââââââââ ââââââââââ¬âââââââââ
â
âââââââââââââââââââââââââââââ¤
â¼ â¼
âââââââââââââââââââ âââââââââââââââââââ
â Dispatch â â TaskControl â
â (æå»ºæºåé
) â â (弿侧Task) â
ââââââââââ¬âââââââââ âââââââââââââââââââ
â¼
âââââââââââââââââââ
â Agent (Go) â
â (é¢åä»»å¡) â
ââââââââââ¬âââââââââ
â¼
âââââââââââââââââââ
â Worker (Kotlin) â
â (æ§è¡Task) â
ââââââââââ¬âââââââââ
â completeTask API
â¼
âââââââââââââââââââ
â ç¶æéå±åä¼ â
â TaskâJobâStage â
â âPipeline â
ââââââââââ¬âââââââââ
â¼
âââââââââââââââââââ
â BuildEndControl â
â (宿å¤ç) â
ââââââââââ¬âââââââââ
â
âââââââââââââââââââââ¼ââââââââââââââââââââ
â¼ â¼ â¼
âââââââââââââââ âââââââââââââââ âââââââââââââââ
â Notify â â Metrics â â WebSocket â
âââââââââââââââ âââââââââââââââ âââââââââââââââ
2.2 åä¸ªé¶æ®µè¯¦è§£
é¶æ®µä¸ï¼è§¦åæå»º
| 触åç±»å | å ¥å£ | 说æ |
|---|---|---|
| æå¨è§¦å | Web/API | ç¨æ·ç¹å»”æ§è¡”æé® |
| 宿¶è§¦å | Cron | TimerTriggerElement 宿¶è°åº¦ |
| 代ç åæ´ | Webhook | Git Push/MR/Tag äºä»¶ |
| è¿ç¨è§¦å | OpenAPI | ç¬¬ä¸æ¹ç³»ç»è°ç¨ |
æ ¸å¿å
¥å£ï¼PipelineBuildFacadeService.buildManualStartup()
é¶æ®µäºï¼å¼æè°åº¦
弿éè¿è´£ä»»é¾æ¨¡å¼åäºä»¶é©±å¨ï¼æ Stage â Job â Task å±çº§è°åº¦ã
Stage 责任é¾ï¼StageControlï¼:
CheckInterruptStageCmdâ æ£æ¥å¿«é失败CheckConditionalSkipStageCmdâ æ¡ä»¶è·³è¿CheckPauseReviewStageCmdâ æå/å®¡æ ¸StartContainerStageCmdâ ä¸å Container äºä»¶UpdateStateForStageCmdFinallyâ æ´æ°ç¶æ
Container 责任é¾ï¼ContainerControlï¼:
CheckDependOnContainerCmdâ Job ä¾èµæ£æ¥CheckMutexContainerCmdâ äºæ¥ç»æ£æ¥StartActionTaskContainerCmdâ å¯å¨ Task æ§è¡
é¶æ®µä¸ï¼ä»»å¡æ§è¡
Agent (Go) – æå»ºæºä»£çï¼
for {
result := api.AskBuild() // å Dispatch 请æ±ä»»å¡
if result.HasBuild {
go runBuild(result.BuildInfo) // 弿¥æ§è¡
}
time.Sleep(interval)
}
Worker (Kotlin) – 任塿§è¡å¨ï¼
loop@ while (true) {
val buildTask = EngineService.claimTask() // é¢åä»»å¡
when (buildTask.status) {
DO -> {
val task = TaskFactory.create(buildTask.type)
task.run(buildTask, buildVariables, workspace)
EngineService.completeTask(result) // 䏿¥ç»æ
}
WAIT -> Thread.sleep(sleepMills)
END -> break@loop
}
}
é¶æ®µåï¼ç¶æåä¼
Task 宿 â PipelineBuildTaskService.finishTask()
â åé PipelineBuildContainerEvent
â Job å®ææ£æ¥ â Stage å®ææ£æ¥ â Pipeline 宿
â Notify/Metrics/WebSocket
ä¸ãJob æ§è¡æºå¶ï¼éè¦ï¼
3.1 ç³»ç» Task
éè¦æ¦å¿µï¼å¯å¨æå»ºæºæ¬èº«å°±æ¯ä¸ä¸ª Taskï¼
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â T_PIPELINE_BUILD_TASK è¡¨æ°æ®ç¤ºä¾ â
ââââââââââââââââ¬âââââââââââââââââââââ¬âââââââââââââââââââ¬âââââââââââ¤
â TASK_ID â TASK_NAME â TASK_ATOM â TASK_SEQ â
ââââââââââââââââ¼âââââââââââââââââââââ¼âââââââââââââââââââ¼âââââââââââ¤
â startVM-1 â Prepare_Job#1 â dispatchVMStart â 1 ç³»ç» â
â e-xxx-1 â Bash â (空) â 2 ç¨æ· â
â e-xxx-2 â ä»£ç æå â (空) â 3 ç¨æ· â
â end-1000 â Wait_Finish_Job#1 â (空) â 1000 ç³»ç»â
â stopVM-1001 â Clean_Job#1 â dispatchVMStop â 1001 ç³»ç»â
ââââââââââââââââ´âââââââââââââââââââââ´âââââââââââââââââââ´âââââââââââ
3.2 Worker 䏿å¡ç«¯éä¿¡
| æ¥å£ | 说æ |
|---|---|
jobStarted |
Worker å¯å¨åè°ç¨ï¼è¿å BuildVariables |
claimTask |
é¢åå¾ æ§è¡ Task |
completeTask |
䏿¥ Task ç»æï¼è§¦åä¸ä¸ä¸ª Task è°åº¦ |
heartbeat |
å¿è·³ä¿æ´» |
jobEnd |
Job 宿ï¼è§¦åèµæºéæ¾ |
3.3 éé»å¡äºä»¶é©±å¨
BK-CI äºä»¶é©±å¨æ¹å¼ï¼â
éç¨ï¼ï¼
Process 弿
â
âââ åéè°åº¦è¯·æ±ï¼PipelineAgentStartupEventï¼
âââ ç«å³è¿åï¼å¤çå
¶ä»äºä»¶ï¼å
¶ä»æµæ°´çº¿ãå
¶ä» Jobï¼
â
... æ¶é´æµéï¼æå»ºæºå¯å¨ä¸ ...
â
Worker å¯å¨å
âââ è°ç¨ jobStarted API
âââ æå¡ç«¯åé PipelineBuildContainerEvent
â
弿æ¶å°äºä»¶
âââ ç»§ç»æ§è¡è¯¥ Job çåç» Task
ä¼å¿ï¼åä¸ªå¼æå®ä¾å¯å¹¶åå¤ç大éæå»ºï¼ä¸é»å¡ã
åãæå¡ä¾èµå ³ç³»
ââââââââââââ
â Project â âââââ æææå¡çåºç¡ä¾èµ
ââââââ¬ââââââ
â
âââââââââââââââââââââââââââ¼ââââââââââââââââââââââââââ
â¼ â¼ â¼
ââââââââââââ ââââââââââââ ââââââââââââ
â Auth âââââââââââââââ Process ââââââââââââââ¶â Store â
ââââââ¬ââââââ ââââââ¬ââââââ ââââââââââââ
â ââââââââââââââ¼âââââââââââââ
â â¼ â¼ â¼
â ââââââââââââ ââââââââââââ ââââââââââââ
â âRepositoryâ â Dispatch â â Ticket â
â ââââââââââââ ââââââ¬ââââââ ââââââââââââ
â â
â â¼
â ââââââââââââ
â âEnvironmentâ
â ââââââ¬ââââââ
â â¼
â ââââââââââââââ
â âAgent/Workerâ
â âââââââ¬âââââââ
â â¼
â ââââââââââââââââââââââââââââââââââââ
â â Log | Artifactory | Notify â
â ââââââââââââââââââââââââââââââââââââ
â â
âââââââââââââââââââââ¶â
â¼
ââââââââââââââââ
â Metrics â
ââââââââââââââââ
äºãæ ¸å¿äºä»¶ç±»å
| äºä»¶ç±»å | è§¦åæ¶æº | å¤çå¨ |
|---|---|---|
PipelineBuildStartEvent |
æå»ºå¯å¨ | StageControl |
PipelineBuildStageEvent |
Stage ç¶æåæ´ | StageControl |
PipelineBuildContainerEvent |
Job ç¶æåæ´ | ContainerControl |
PipelineBuildTaskFinishEvent |
ä»»å¡å®æ | TaskControl |
PipelineBuildFinishEvent |
æå»ºå®æ | BuildFinishListener |
PipelineBuildCancelEvent |
æå»ºåæ¶ | CancelControl |
PipelineAgentStartupEvent |
æå»ºæºå¯å¨ | DispatchListener |
å ãæµæ°´çº¿æ¨¡åç»æ
Model (æµæ°´çº¿æ¨¡å)
âââ name: String
âââ stages: List<Stage>
â âââ Stage
â âââ id: String (s-xxx)
â âââ checkIn/checkOut: StagePauseCheck
â âââ containers: List<Container>
â âââ Container (Job)
â âââ id: String (c-xxx)
â âââ @type: vmBuild | normal | trigger
â âââ dispatchType: DispatchType
â âââ elements: List<Element>
â âââ Element (Task)
â âââ id: String (t-xxx)
â âââ @type: marketBuild | linuxScript | ...
â âââ data: Map
âââ triggers: List<Trigger>
âââ params: List<BuildFormProperty>
âââ setting: PipelineSetting
ä¸ãæ°æ®åºæ ¸å¿è¡¨
T_PROJECT
â
âââ T_PIPELINE_INFO (æµæ°´çº¿ä¿¡æ¯)
â â
â âââ T_PIPELINE_RESOURCE (ç¼ææ¨¡å)
â âââ T_PIPELINE_SETTING (é
ç½®)
â âââ T_PIPELINE_BUILD_HISTORY (æå»ºåå²)
â â
â âââ T_PIPELINE_BUILD_STAGE
â âââ T_PIPELINE_BUILD_CONTAINER
â âââ T_PIPELINE_BUILD_TASK
â âââ T_PIPELINE_BUILD_VAR
â
âââ T_REPOSITORY (代ç åº)
âââ T_AUTH_RESOURCE (æéèµæº)
å «ãææ¯æ
| 屿¬¡ | ææ¯ |
|---|---|
| å端 | Kotlin/Java, Spring Boot 3, Gradle |
| æ°æ®åº | MySQL + JOOQ |
| ç¼å/é | Redis |
| æ¶æ¯éå | RabbitMQ |
| æ¥å¿æ£ç´¢ | ElasticSearch |
| æå¡åç° | Consul |
| å端 | Vue 2.7, Vuex, bk-magic-vue |
| Agent | Go 1.19+ |
| Worker | Kotlin (JVM) |
Checklist
å¼å§è·¨æ¨¡åå¼ååï¼è¯·ç¡®è®¤ï¼
- å·²çè§£æµæ°´çº¿æ§è¡æµç¨ï¼è§¦å â è°åº¦ â æ§è¡ â åä¼
- å·²ç¡®å®æ¶åçæ¨¡åï¼Process? Dispatch? Store?
- å·²é
读ç¸å
³æ¨¡å Skillï¼å¦
process-module-architecture - å·²äºè§£äºä»¶é©±å¨æºå¶ï¼éè¿ RabbitMQ 弿¥éä¿¡
- å·²ç¡®è®¤æ°æ®æµåï¼åªäºè¡¨ä¼è¢«è¯»åï¼
æ ¸å¿çè§£è¦ç¹
- Process æ¯æ ¸å¿ – æµæ°´çº¿ç¼æãæå»ºè°åº¦ãç¶æç®¡çé½å¨è¿é
- äºä»¶é©±å¨ – éè¿ RabbitMQ å®ç°æ¨¡åé´è§£è¦å弿¥å¤ç
- åå±æå»º – Agent(Go) è´è´£è¿ç¨ç®¡çï¼Worker(Kotlin) è´è´£ä»»å¡æ§è¡
- Worker Pull æ¨¡å¼ – Worker 主å¨
claimTaské¢åä»»å¡ - éé»å¡çå¾ – 弿ååºè°åº¦è¯·æ±åä¸é»å¡ï¼éè¿äºä»¶åè°ç»§ç»