GitLab Jenkins 持续集成
12 September 2017
目录
环境:
- Ubuntu 16.04 LTS
- OpenJDK 8
- GitLab 9
1. 安装
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo vim /etc/apt/sources.list
deb https://pkg.jenkins.io/debian-stable binary/
sudo apt update && sudo apt install jenkins
2. 配置
# 修改端口,默认为8080, 修改为 11111
sudo vim /etc/default/jenkins
# port for HTTP connector (default 8080; disable with -1)
HTTP_PORT=11111
# 重启服务
sudo service jenkins restart
如果启动成功,可访问http://%{YOUR_IP_ADDRESS}:11111/
来进行初始化。
- 输入
/var/lib/jenkins/secrets/initialAdminPassword
文件中的密码解锁 - 开始初始化配置,如下图所示
- 按照要求配置完成之后,即可访问
- 安装Gitlab插件, GitLab Plugin 和 Gitlab Hook Plugin
3. 添加任务
根据Jenkins提供的向导来创建任务,大概过程如下:
注意:Gitlab如果设置为私有项目的话,需要SSH key验证,
项目创建完成之后,配置Gitlab的Web Hooks:
Jenkins Gitlab Hook Plugin提供的Web Hooks方式:
- Build now hook
http://your-jenkins-server/gitlab/build_now
,如果未触发,可改为http://your-jenkins-server/gitlab/build_now/your-project-name
- Notify commit hook
http://your-jenkins-server/git/notifyCommit?url=<URL of the Git repository for the Gitlab project>
可在Gitlab的项目设置 > 集成
下设置,如下所示:
添加完成之后,可点击Test
测试是否成功。
4. 常见问题
4.1 忘记密码
用户的配置文件存储位置为/var/lib/jenkins/users
,可通过修改用户目录下的config.xml
来重置密码。
# 123456 对应的密码加密后的值
#jbcrypt:$2a$10$NqPv3NpgxkpQi/ffEsEkhuMZYpbKc5cVVrP60cD6MX5IujYkLlOGm
4.2 Blue Ocean
Jenkins 团队为了提供更好的流水线构建体验从而设计了”Blue Ocean”,主要特性:
- 持续交付(CD)Pipeline的 复杂可视化 ,可以让您快速直观地理解管道状态。
- Pipeline 编辑器 - 引导用户通过直观的、可视化的过程来创建Pipeline,从而使Pipeline的创建变得平易近人。
- 个性化 以适应团队中每个成员不同角色的需求。
- 在需要干预和/或出现问题时 精确定位 。 Blue Ocean 展示 Pipeline中需要关注的地方, 简化异常处理,提高生产力
- 本地集成分支和合并请求, 在与GitHub 和 Bitbucket中的其他人协作编码时实现最大程度的开发人员生产力。
更多参考 Blue Ocean