Jenkins
大约 2 分钟
Jenkins
介绍
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
特性
- CI&CD
- 易于安装部署及配置,web界面
- 分布式构建:多个节点一起构建
- 丰富的插件
- ??? 消息通知,测试报告
- ??? 文件识别
- Item 任务/项目
- 任务名称
- Freestyle Project 自由风格的项目
- 配置
- SCM 源代码管理
- 凭据
- Username with password
- SSH Username with private key
- 构建步骤
- Execute shell 执行shell
- ...
- 配置
- Pipeline 流水线
- 流水线配置,1,直接输入文本框,2通过文件Jenkinsfile
- 语法:(片段生成器,声明式代码生成,支持页面配置 ,生成语法)
- agent 指明执行节点
- stages 所有执行阶段 通常stages只有1个,里面包含多个stage
- stage 某个阶段 如 拉代码,构建,部署
- steps 一个阶段内需要执行的逻辑:shell脚本等
- Node 节点,Master 或者 Agent,执行 Step 的具体运行环境
- Freestyle Project 自由风格的项目
- 立即构建
- 构建历史
- 构建日志
- 任务名称
部署
- 高性能
- Master-Slave分布式构建
- 将构建过程分配到从属Slave节点上,从而减轻Master节点的压力
- Master-Slave分布式构建
- 高可用
- 单个 Jenkins Master 终究会成为系统中的瓶颈;
- 携程方案:解决思路是在 Jenkins 上面再封装两层
- 根据页面在Master之上进行分拆
- 根据页面在Master之上进行分拆
Build Service 暴露构建的 HTTP 接口,接收请求后将任务丢给异步队列 Build Worker,Build Worker 根据不同的策略将任务分发给符合条件的 Jenkins Master。
参考
Jenkins Pipeline流水线项目构建 包含jenkins系列文章
玩转 CICD 之 Jenkins 构建自由风格项目.
Jenkins 流水线多种使用场景详解(Jenkinsfile,多环境部署,多分支部署)
16 构建资源的弹性伸缩 jenkins 高可用。
Jenkins的Master-Slave分布式构建