Gitlab和Jenkins集成 实现CI (一)
Gitlab和Jenkins集成 实现CI (二)
Gitlab和Jenkins集成 实现CI (三)
配置Gitlab api token
配置 Gitlab
进入gitlab
点击保存,切记先将tokens复制出来,后续是无法查看的
Dashboard - Manage Jenkins - System - GitLab
jenkins配置全局凭据
jenkins添加GitLab connections
添加完成后,点击test connection,如果出现success,说明配置成功
jenkins项目中配置gitlab api token
进入项目
配置jenkins免密拉取gitlab代码
生成公私钥对
docker container exec -it jenkins /bin/bash
ssh-keygen -t rsacd ~
cat .ssh/id_rsa.pub
cat .ssh/id_rsa
配置Gitlab上的公钥
配置Jenkins上的私钥
注意:配置的是全局凭据
Jenkins上创建项目
配置项目
进入项目
这里填写 Repositories 的时候容易出错: No ED25519 host key is known for
需要检查 【配置Jenkins上的私钥】一章中username,需要填写生成sshkey的用户,比如我这默认的是jenkins
然后进入jenkins容器,运行
docker container exec -it jenkins /bin/bash
git ls-remote ssh://git@ip:port/developer/codename.git
#询问是否保存指纹
填写yes保存
返回到项目配置这里,重新点击,发现问题已经解决
到这里,没有错误的情况下,jenkins已经可以正确拉到gitlab的代码。可以在项目中构建一次,构建完成应该是绿色标的
docker container exec -it jenkins /bin/bash
ls -l /var/jenkins_home/workspace/项目名称/*
配置触发器
进入jenkins容器
- 生成安全随机数备用
openssl rand -hex 12
- 配置jenkins
- 配置gitlab
取消Webhooks访问限制
进入gitlab
进入项目
1.这里如果test的时候报4xx错误,检查 gitlab中webhook限制访问是否已打开
2. 参考 Gitlab和Jenkins集成 实现CI (一) 中 基础配置 章节 gitlab哪里的勾选是否已去掉
都看到这里了,点个赞再走吧!^ _ ^