1 - Git源码管理
Jenkins下的Git源码管理功能是由Git插件提供的。
https://plugins.jenkins.io/git
2 - 准备工作
2.1 插件
确认Jenkins Git Plugin插件是否已安装
2.2 视图
创建一个视图用于分类存放Jenkins job,便于查找和管理
2.3 代码仓库
确认代码仓库GitLab信息
2.4 生成SSH凭据
在命令行执行如下命令,生成SSH凭据
ssh-keygen
cat .ssh/id_rsa.pub
cat .ssh/id_rsa
2.5 添加SSH公钥到GitLab账户
3 - 示例:Git源码管理
3.1 新建job
添加一个free style的job到视图
3.2 添加凭据
选择和添加必要信息
特别注意:“Private Key”是Jenkins主机的私钥( .ssh/id_rsa
)
填写Repository URL和选择Credentials,如果没有错误信息提示,说明验证成功,保存配置。
3.3 运行Job
查看运行结果
查看工作区
对应的本地目录
查看控制台输出
4 - 分支管理
在源码管理的Branches to build
部分,可以填写需要下拉的分支。
如果设置了多个分支或一个范围,Jenkins会检测每个分支中新的提交代码。
在执行构建时,也会对有新提交的分支执行一次构建任务。
点击问号按钮,会给出书写方法和格式的帮助信息。
The safest way is to use the refs/heads/
- 默认值
- 设置为空:所有的分支都会被检测代码提交并且执行构建
- 直接使用分支名:例如master等,建议的写法为
refs/heads/<branchName>
- 通配符和正则表达式:指定某个范围
- 环境变量:便于参数化构建
5 - 附加操作
通过Additional Behaviours选项可以使用Git源码管理的附加功能。
常用附加选项
- Clean before checkout:指定对工作区目录的操作或者执行脚本,保证下一次构建不受上一次的影响
- Wipe out repository & force clone:强制删除之前拉取的代码并重新拉取,用于保持与远端仓库状态一致
- Create a tag for every build:每一次构建都在本地创建一个标签
- 检出到子目录:指定拉取代码到工作区目录的哪个子目录,如果不指定,默认为工作区目录,
- 检出到指定的本地分支:本地也有一个对应的分支
- pure stale remote-tacking branches:用来清除本地已失效的远程追踪分支,标签也会被删除
6 - 拉取多个仓库
通过Multiple SCMS插件和附加操作中的“检出到子目录”,可以拉取多个仓库到一个工作目录中。
6.1 安装Multiple SCMS插件
6.2 根据需求配置拉取选项
特别注意:指定附加操作中的“检出到子目录”,用来区分多个仓库的内容。