jenkinis配置
在之前的博文中,博主已经搭建好了gitlab和jenkins环境。接下来,博主就要进行gitlab和jenkins的联合使用。
源码仓库配置
这里,我们需要配置一下gitlab中代码的仓库地址和gitlab用户的credentials认证方式,博主这里使用的username/password方式。
jenkins安装Gitlab Hook Plugin 和 GitLab Plugin
如图片所示,在available选项卡中搜索需要安装的插件即可。插件安装完之后,触发构建的选项中就会多出Build when a change is pushed to GitLab这一项。
jenkins安装maven插件
跟上一个步骤相同,这里我们需要进行安装maven插件。安装完之后,我们就可以进行创建maven项目的构建任务。
jenkins安装maven
jenkins镜像使用的linux发行版本是debain,用下面的指令就可以查看。
此时,我们先在外部的容器卷中编写source,list文件,然后覆盖容器内部的source.list文件。source.list是apt工具的镜像源文件,文件内容如下所示:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse
然后,我们用root账号进入jenkins运行容器,使用默认的jenkins用户没有权限进行安装和修改操作。
docker exec -it -u root container_id bin/bash
接着,更新镜像源。
apt-get update
最后,进行maven工具的安装。
apt-get install maven
全局参数配置
配置触发构建的时机
- Trigger builds remotely (e.g., from scripts),通过脚本远程触发,如http调用。
- build after other projects are built,其它依赖的项目构建时,触发构建。
- build periodically,周期性构建,不管依赖是否发生变化
- poll scm,隔一段时间比较源码是否发生变化,如果变更了则更新。
- Build when a change is pushed to GitLab. 基于gitlab的webhoos进行构建。
这里我们使用gitlab的webhooks进行构建,个人感觉webhooks的方式更加高效,因为gitlab接收到我们的代码推送请求后,会生成一个推送事件,然后使用http请求来调用jenkins的对应任务的构建。
还是在Build Triggers 这块区域,我们选择Advanced进行高级选项配置,然后生成当前构建任务的访问token。
gitlab配置webhooks
在gitlab项目的配置页面,填写上一个步骤得到的webhook url 和 token,添加成功之后就可以在右下角中查看到已添加的webhooks。
在右下脚的webhooks区域,我们可以点击发送Test发送测试请求,如果配置成功的话,可以在界面上看到如下图所示的提示。
查看jenkins构建记录
如下图所示,jenkins成功接收到gitlab的推送请求,然后进行了任务的构建。