前言
前面的两篇maven,nodejs基本配置流程中,已经介绍了Jenkins+SVN的基本配置方法,可查看前面的内容。下面要介绍的是Jenkins如何关联gitlab/github,从中拉取代码。
GitLab搭建可参考下列链接:
Jenkins的GitLab配置
【1】Jenkins服务器创建密钥
<1>登陆Jenkins服务器,执行
ssh-keygen -t rsa
全部回车,采用默认值即可,会生成如下文件:
私钥文件id_rsa
公钥文件id_rsa.pub
【2】登陆gitlab配置公钥
<1>进入配置
<2>配置ssh keys
<3>将jenkins的公钥添加到gitlab
cat /root/.ssh/id_rsa.pub将内容复制到Key的空白处,点击Add key即可
点击remove可删除此公钥
【3】设置gitlab api访问令牌,创建Tokens
<1>Access Tokens
<2>填写此令牌名称,勾选api
<3>复制该令牌生成的token
点击对应令牌的revoke,可删除令牌
【4】Jenkins配置GitLab服务器
<1>进入全局配置
<2>填写信息
Connection name 为Gitlab服务器的一个名称,便于区别
Gitlab host URL为此gitlab服务器地址(必须可使jenkins服务器可访问到,例如http:123.123.123.123)
Credentials为gitlab的验证方式
<3>添加gitlab的token
点击测试,success即为成功
【5】Jenkins+gitlab配置项目基本演示
可参考maven项目配置流程,除了源码管理方式其他基本相同:
仅演示与其他项目部署有差异的配置(可选即为根据需求选择是否配置)
<1>gitlab服务器复制代码链接
进入gitlab服务器中,进入此项目的目录中,clone要使用的ssh/http方式的链接
<2>源码管理方式配置
配置ssh方式的链接(及git开头的链接)时,可不配置gitlab的用户名和密码(即Credentials)
配置http方式的链接时,必须配置Credentials(用户名和密码)
Repository URL填入该项目使用的git分支
其他的通常默认即可
<3>构建触发器(可选)
下面演示的是某分支每次提交或合并代码将会自动触发构建
记录红框位置的url会在gitlab中用到
勾选”Filter branches by name“,在include 中填写分支名称,点击Generate,为该分支生成token
记录token,后面会在gitlab中用到
去gitlab中对应的git库 选择settings Integrations
填写前面的url和token,点击Add webhook即为成功
如报错:
Url is blocked: Requests to the local network are not allowed
gitlab默认不允许向本地网络发送webhook请求导致
登录管理员帐号admin@example.com,输入安装好的第一次的密码
配置configure gitlab
勾选Allow requests to the local network from hooks and services并保存
<4>构建以及构建后发送与其他项目配置操作无区别
Jenkins的GitHub配置
【1】Github的配置
<1>登录github,进入设置
<2>设置一个令牌
Developer settings
Personal access tokens >> Cenerate new token
<3>设置名称,配置权限
<4>记录tokens, jenkins配置中会用到
下面的几步用于配置jenkins触发器,如无需触发,可不配置
<5>进入要进行持续集成的项目中,设置webhook
<6>添加webhook
Payload URL为:http://jenkins服务器地址:端口/github-webhook
注意jenkins服务器地址必须使github访问到,否则webhook无用(可使用外网地址、做端口映射 或 内网穿透)
【2】Jenkins服务器配置
<1>配置github
<2>类型选择Secret text,Secret填入github生成的token
(实际上也可配置github用户名和密码的方式,此处不演示)
<3>点击连接测试
Credentials verified for user xxx, rate limit: 4996 即为成功
【3】Jenkins+github配置项目基本演示
实际上与gitlab的项目配置方式基本相同
仅演示与其他项目部署有差异的配置(可选即为根据需求选择是否配置)
<1>gitlhub复制要集成的项目链接
进入gitlhub中,进入此项目的目录中,clone要使用的ssh/http方式的链接
<2>填入链接
如无法拉取代码,就配置Credentials(github账号,密码)
<3>配置触发器
需github先为该项目配置webhook
每15分钟轮询一下,有变更则触发
<4>构建即构建后等操作与其他项目相同,就不演示了