以下是自己亲自实践持续集成的过程中遇到的问题,以及解决方法,作为记录,也供有需要的朋友参考
首先想实现的目标是:git提交代码后,能够自动触发jenkins构建,从而执行相应的脚本,最后查看构建历史
步骤:
前提条件是在同一个机器上部署的jenkins和安装的git,本机是mac
- 有一个gitlab账号,且已经有了仓库
2.本地已经生成了ssh key,且配置到了gitlab上(详细信息就不赘述了,想了解的自行百度)
3.安装jenkins(mac or linux),将jenkins.war包放到一个目录下,然后运行命令:
nohup java -jar jenkins.war >out.file 2>&1 &
(含义是在后台运行命令 java -jar jenkins.war)
4.在本地的一个目录test下运行命令:
git init
git clone git@xx.xx.xx.xx:xxxx/test-jenkins.git
(默认clone的是master分支,如果想clone别的分支,还需要运行以下命令)
git checkout develop
git pull origin develop (拉取远程仓库develop分支到本地)
此时在test目录下多了一个test-jenkins文件夹,文件夹下面是代码库的develop内容
5.接下来需要配置jenkins和gitlab了
在jenkins主页,点击系统管理-->管理插件-->在可选插件下,查找 gitlab hook plugin,安装后重启jenkins,
6.在jenkins上新建一个item,配置关联gitlab
(1)新建一个item,自由风格的软件项目
(2)在源代码管理,设置如下:
(3)构建触发器配置,需要勾选“build when a change is pushed to gitlab. GitLab CI Service URL:http://10.11.3.26:8080/project/test”该项(注意:只有jenkins安装了gitlab hook plugin插件后,才有该项,不安装是没有该选项的)
(4)在“构建”配置如下:
至此,jenkins的配置已经完成
6.接下来配置gitlab
(1)在gitlab该project界面点击side bar最下面的settings图标,如下图
(2)然后再点击侧边栏中的“web Hooks”,在“URL”一栏输入在第5步骤中的(3)中的URL:http://a.b.c.d:8080/project/test,见下图:
点击确定
(3)点击TEST HOOK按钮,如果提示“Hook successfully executed”,说明gitlab和jenkins关联成功
7.接下来就开始验证了:
在本地的另一个目录提交一个文件a.txt到gitlab并push后,回到jenkins主页,会发现构建正在进行
以上工作全部完成,谢谢~~