gitlab安装和基本使用见之前的博客gitlab安装及基本操作

一、基本操作

1、jeknins本机上需要安装git后然后重启jenkins

yum install git -y

2、在gitlab上新建一个项目

jenkins配置gitlab java项目 jenkins和gitlab搭建_上传


3、然后将这个项目clone后,增加一个test.py文件后再上传

git clone git@10.0.0.105:root/jenkinstest.git
cd jenkinstest/
vim test.py
git add test.py
git commit -m "jenkinstest"
git push -u origin master

jenkins配置gitlab java项目 jenkins和gitlab搭建_vim_02

4、jenkins上新建一个任务,源码管理里设置刚才gitlab上的项目地址,并设置使用的gitlab账号密码,这里使用的http的方式,所以需要账号密码。如果是使用私钥的方式,则需要将jenkins机器上的私钥放到gitlab上

jenkins配置gitlab java项目 jenkins和gitlab搭建_git_03

5、添加构建步骤,将代码下发到机器上,105这个机器默认目录前面设置为/tmp/,这里设置remote directory为/gitlab/,即将代码放到/tmp/gitlab/目录下,并设置执行的shell命令,保存后构建。

jenkins配置gitlab java项目 jenkins和gitlab搭建_git_04


6、机器上有下发的代码

jenkins配置gitlab java项目 jenkins和gitlab搭建_上传_05


控制台输出

jenkins配置gitlab java项目 jenkins和gitlab搭建_git_06

二、Gitlab使用钩子远程触发jenkins构建

1、gitlab也可以使用普通的远程构建,和前面的一样设置

根据提示使用url进行测试

curl -u admin:123456 'http://10.0.0.106:8080/job/gitlabtest/build?token=wangxiaoyutoken'

查看项目可以看到远程构建成功

jenkins配置gitlab java项目 jenkins和gitlab搭建_git_07

下面说一下使用gitlab钩子的方法

2、在jenkins设置的gitlab选项中,需要取消 Enable authentication for ‘/project’ end-point 这个选项的勾选,不然集成的时候会出现403 anonymous is missing the Job/Build permission

jenkins配置gitlab java项目 jenkins和gitlab搭建_git_08

3、因为是本地网络,所以需要在gitlab的(admin area-network)设置中允许本地网络

jenkins配置gitlab java项目 jenkins和gitlab搭建_vim_09

4、jenkins中需要安装gitlab这个插件,在jenkins项目中设置构建gitlab触发器,点击generate生成一个身份验证令牌,已经勾选第一个,有相应的webhook url,匹配master分支

jenkins配置gitlab java项目 jenkins和gitlab搭建_git_10

5、在gitlab 项目的webhook设置中,添加一个配置,填入上面的url及token,ssl取消勾选,因为没有设置https

jenkins配置gitlab java项目 jenkins和gitlab搭建_vim_11


6、然后点击test,push events会模仿push代码的操作,

jenkins配置gitlab java项目 jenkins和gitlab搭建_上传_12


返回200表示成功,jenkins上可以看到有触发构建了

jenkins配置gitlab java项目 jenkins和gitlab搭建_git_13

jenkins配置gitlab java项目 jenkins和gitlab搭建_git_14


7、进入上面git clone下来的代码中,修改代码,然后重新push到gitlab上

vim test.py
print("gitlab jenkins test webhook")

git add test.py
git commit -m "jenkinstest"
git push -u origin master

jenkins配置gitlab java项目 jenkins和gitlab搭建_上传_15


gitlab上上传成功

jenkins配置gitlab java项目 jenkins和gitlab搭建_git_16


jenkins上触发构建成功

jenkins配置gitlab java项目 jenkins和gitlab搭建_vim_17


机器上的代码也更新成功

jenkins配置gitlab java项目 jenkins和gitlab搭建_上传_18