37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
---
|
||
title: "Jenkins Multi-Branch Pipeline"
|
||
type: concept
|
||
tags: ["CI/CD", "Jenkins", "Automation", "DevOps"]
|
||
sources: ["learning-sessions-standard-amis-updates-20231205-160324-meeting-recording-2"]
|
||
last_updated: 2026-05-08
|
||
---
|
||
|
||
## Definition
|
||
Jenkins 多分支流水线(Jenkins Multi-Branch Pipeline)是 Jenkins 的流水线即代码功能,支持根据 Git 分支自动创建和管理流水线。在 Micro Focus AWS Landing Zone 中,用于 AMI 构建和 IaC 部署的双重场景。
|
||
|
||
## Architecture Pattern
|
||
- **Feature Branch Pipeline**:功能分支上变更 → 开发测试 → 合并到集成分支
|
||
- **Integration Branch Pipeline**:集成分支合并 → 构建 → 测试 → 发布
|
||
- **Jenkinsfile**:在代码仓库中定义流水线即代码
|
||
|
||
## Dual Use Cases
|
||
|
||
### AMI 构建
|
||
1. Jenkins 扫描 Git 仓库的分支
|
||
2. 每个分支触发独立流水线
|
||
3. HashiCorp Packer 执行镜像构建
|
||
4. 脚本化测试 + AWS Inspector 安全扫描
|
||
5. 跨区域 AMI 复制和共享
|
||
|
||
### IaC 部署(Terraform/TerraGrunt)
|
||
1. GitHub 仓库变更触发 Jenkins
|
||
2. Terraform Plan 输出变更计划
|
||
3. 审批后执行 Terraform Apply
|
||
4. 跨账户角色切换部署
|
||
|
||
## Connections
|
||
- [[Jenkins]] — 托管多分支流水线的 CI/CD 平台
|
||
- [[Terraform-IaC]] — 流水线编排的 IaC 工具
|
||
- [[Terragrunt]] — 配合 Terraform 的 DRY 工具
|
||
- [[Amazon-Machine-Image]] — 多分支流水线构建的产物
|