Gitlab11.4.6+jenkins2.107持续集成-自动触发jenkins构建任务

Gitlab11.4.6+jenkins2.107持续集成-自动触发jenkins构建任务

1.gitlab机器 (192.168.224.130机器)

1)搭建cent7+gitlab11.4.6环境——见相关文档

2)使用root/1234567890登录gitlab,创建项目仓库:web-test

仓库地址:http://192.168.224.130/root/web-test.git

3)使用gitlab本机器作为客户端,初始化仓库,并将代码推送到仓库-并分出两个分支master和dev,用时候一个即可。

[root@bogon ~]# yum -y install git

[root@bogon ~]# mkdir /test1

[root@bogon ~]# cd /test1/

[root@bogon test1]# git clone -b master http://root@192.168.224.130/root/web-test.git

Cloning into 'web-test'...

Password for 'http://root@192.168.224.130': 输入root密码:1234567890

warning: You appear to have cloned an empty repository.

[root@bogon test1]# ls

web-test

[root@bogon test1]# cd web-test/

[root@bogon web-test]# rz 上传代码包

[root@bogon web-test]# ls

web-demo.zip

[root@bogon web-test]# unzip web-demo.zip

[root@bogon web-test]# ls

web-demo web-demo.zip

[root@bogon web-test]# ls web-demo

Jenkinsfile pom.xml README.txt src

开发完代码后,提交到本地仓库并推送到远程仓库:

[root@bogon web-test]# git config --global user.name "Administrator"

[root@bogon web-test]# git config --global user.email "admin@example.com"

[root@bogon web-test]# git add .

[root@bogon web-test]# git commit -m "tijiao daima"

[root@bogon web-test]# git push http://root@192.168.224.130/root/web-test.git master

Password for 'http://root@192.168.224.130': 输入root密码:1234567890

Counting objects: 1196, done.

Compressing objects: 100% (1133/1133), done.

Writing objects: 100% (1196/1196), 24.61 MiB | 8.88 MiB/s, done.

Total 1196 (delta 28), reused 0 (delta 0)

remote: Resolving deltas: 100% (28/28), done.

To http://root@192.168.224.130/root/web-test.git

* [new branch] master -> master

[root@bogon web-test]# git checkout -b dev

Switched to a new branch 'dev'

[root@bogon web-test]# git branch

* dev

master

[root@bogon web-test]# git push http://root@192.168.224.130/root/web-test.git dev

Password for 'http://root@192.168.224.130':

Total 0 (delta 0), reused 0 (delta 0)

remote:

remote: To create a merge request for dev, visit:

remote: http://192.168.224.130/root/web-test/merge_requests/new?merge_request%5Bsource_branch%5D=dev

remote:

To http://root@192.168.224.130/root/web-test.git

* [new branch] dev -> dev

4)gitlab本机器添加jenkins机器的公钥——部署公钥,使得jenkins机器无需密码拉取代码

Gitlab进入项目里——settings——Repository——Deploy Keys——将jenkins机器的公钥复制进去,起个名字,如下:

点击Add key即可。

5)gitlab本机器开启钩子(用于gitlab+jenkins持续集成)

点击Admin area——Settings——Network——Outbound requests(展开),

勾选:Allow requests to the local network from hooks and services,如下:

6)gitlab本机器进入项目,添加集成webhook,并测试持续构建触发jenkins自动构建(用于gitlab+jenkins持续集成)

进入项目仓库——Settings——Integrations——url处:填写jenkins项目中生成的url(jenkins相关构建项目中记录下来的url):

http://192.168.224.129:8080/jenkins/project/web-demo, 和token值:1c52a36e08a812d46187115592004994,如下:

添加好配置后,点击下面的:Add Webhook,如下:

手动测试,在创建的webhook的Test处,选择点击:Push events

点击Push events,如下:当返回:Hook executed successfully:HTTP 200,表示能触发成功。

触发jenkins自动构建成功后,到jenkins机器查看,可以看到会先加入一个构建任务,然后过一段时间,就会自动构建,如下:

注意:此处虽然是查看的是构建的失败,但是可能是网上视频拉取的代码,使用人家的svn地址可能改变了,导致构建失败,但是已经证明gitlab能自动触发jenkins执行构建任务了。

7)gitlab本机器使用客户端提交代码后,触发jenkins自动构建-实现持续集成(用于gitlab+jenkins持续集成)

[root@bogon ~]# cd /test1/web-test/web-demo #进入项目目录,修改代码

[root@bogon web-demo]# git branch

* dev

Master

[root@bogon web-demo]# echo 111 > 1.txt #在开发分支修改代码,添加一个1.txt文件

[root@bogon web-demo]# git add .

[root@bogon web-demo]# git commit -m "add 1.txt" #提交到本地仓库

[root@bogon web-demo]# git checkout master #切换到master分支

[root@bogon web-demo]# git merge dev #将开发分支修改的代码合并到master分支

[root@bogon web-demo]# git push http://root@192.168.224.130/root/web-test.git master #将修改的代码推动到远程gitlab仓库master分支

Password for 'http://root@192.168.224.130': 输入root密码:1234567890

Counting objects: 6, done.

Compressing objects: 100% (3/3), done.

Writing objects: 100% (4/4), 342 bytes | 0 bytes/s, done.

Total 4 (delta 1), reused 0 (delta 0)

To http://root@192.168.224.130/root/web-test.git

7886f7d..6b94a99 master -> master

到远程gitlab仓库查看,可以看到推送上来的1.txt文件:

到jenkins机器查看,能自动触发构建:-第2个任务即是

注意:此处虽然是查看的是构建的失败,但是可能是网上视频拉取的代码,使用人家的svn地址可能改变了,导致构建失败,但是已经证明gitlab能自动触发jenkins执行构建任务了。

2.jenkins机器(192.168.224.129机器))

1)搭建jenkins2.107环境,并修改admin密码为:1234567890——见相关文档

2)创建公钥对,自己jenkins上配置私钥,公钥配置在gitlab,实现无需密码能拉取gitlab仓库里代码

[root@bogon ~]# ssh-keygen

一路回车

[root@bogon ~]# ls /root/.ssh/

id_rsa id_rsa.pub

[root@bogon ~]# cat /root/.ssh/id_rsa.pub

Xxxx将公钥内容部署在gitlab上

[root@bogon ~]# cat /root/.ssh/id_rsa

Xxxx 将私钥内容配置在自己jenkins机器上

自己配置私钥步骤如下:

凭据——系统——全局凭据——添加凭据——选择SSH Username with private key——勾选Enter directly,如下:将自己私钥内容添加进去,描述信息起个私钥名字:siyao-jenkins(后面配置时候要用)。

如下:

点击确定,如下:

3)Jenkins机器安装maven环境

jenkins底层是使用maven进行编译、打包、构建,(jenkins只是一个将其连接排序的过程)

[root@bogon ~]# mkdir /maven

[root@bogon ~]# cd /maven/

[root@bogon maven]# rz

上传maven包

[root@bogon maven]# ls

apache-maven-3.3.9-bin.tar.gz

[root@bogon maven]# tar -zxf apache-maven-3.3.9-bin.tar.gz

[root@bogon maven]# ls

apache-maven-3.3.9 apache-maven-3.3.9-bin.tar.gz

[root@bogon maven]# ls apache-maven-3.3.9

bin boot conf lib LICENSE NOTICE README.txt

[root@bogon maven]# ls apache-maven-3.3.9/bin/ #里面有命令mvn,可以接很多参数打包、构建、编译等

m2.conf mvn mvn.cmd mvnDebug mvnDebug.cmd mvnyjp

[root@bogon maven]# mv apache-maven-3.3.9 /usr/local/maven

4)Jenkins的界面操作(全局配置配置jdk安装路径、maven安装路径)

系统管理——全局工具配置,配置jdk和maven环境变量即可,如下:

5)Jenkins机器安装maven插件

点击系统管理——管理插件——可选插件——搜索:Maven Integration后勾选上该插件,点击直接安装即可。

6)Jenkins机器安装gitlab插件和gitlab hook插件 (用于jenkins+gitlab持续集成)

点击系统管理——管理插件——可选插件——搜索:GitLab Plugin 和Gitlab Hook Plugin后勾选上这两个插件,点击直接安装即可。

上面安装好插件后最好重启一下jenkins.

7)Jenkins机器取消跨站请求和运行用户操作的配置(用于jenkins+gitlab持续集成)

点击系统管理——全局安全配置——勾选:登录用户可以做任何事 和 Allow anonymous read access,取消勾选:防止跨站点请求伪造。

8)创建构建项目

选择一个maven项目,点击确定,如下:配置gitlab的仓库地址,选择私有认证,选择分支,

构建触发器处,(安装完gitlab插件后,会自动形成这个选项)

勾选:Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.224.129:8080/jenkins/project/web-demo,

此处还没完,展开高级——点击Generate,会生成一个token,如下:1c52a36e08a812d46187115592004994,

记下这个token,gitlab上配置会用,还有记下上面的url: http://192.168.224.129:8080/jenkins/project/web-demo

构建触发器模块配置完成,然后再往下,指定pom.xml文件和编译命令,如下:

clean install -Dmaven.test.skip=true 表示maven在编译打包时候跳过测试,也可直接:clean install不跳过测试。点击保存,项目即创建完毕,等待gitlab提交代码触发任务执行即可。

如果对运维课程感兴趣,可以在b站上搜索我的账号: 运维实战课程,可以关注我,学习更多运维实战技术视频

展开阅读全文

页面更新:2024-03-21

标签:凭据   全局   分支   仓库   插件   机器   密码   代码   项目   系统

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top