当前位置: 首页 > news >正文

Gitlab和Jenkins集成 实现CI (二)

Gitlab和Jenkins集成 实现CI (一)
Gitlab和Jenkins集成 实现CI (二)
Gitlab和Jenkins集成 实现CI (三)

配置Gitlab api token

配置 Gitlab

进入gitlab

用户头像
Edit profile
选择同级的Access Tokens
Add new token
Token name 填 jenkins
Expiration date 选择最长一年的有效期
Select scopes 选择API一项即可

点击保存,切记先将tokens复制出来,后续是无法查看的
Dashboard - Manage Jenkins - System - GitLab

jenkins配置全局凭据

Dashboard
Manage Jenkins
Credentials
System
Add credentials
New credentials
Kind 选择 Git API Token
Scope 选择Global Jenkins, nodes, items, all child items, etc
API token 填写上一步gitlab中复制出来的token
Description 填写 jenkins api
ID 不要填写 自动生成

jenkins添加GitLab connections

Dashboard
Manage Jenkins
System
GitLab
GitLab connections
Connection name 填写 jenkins
GitLab host URL 填写gitlab的裸url
Credentials 选择刚才添加的全局凭据

添加完成后,点击test connection,如果出现success,说明配置成功

jenkins项目中配置gitlab api token

进入项目

Configure
General
GitLab Connection
选择第3步添加的

配置jenkins免密拉取gitlab代码

生成公私钥对

#进入jenkins
docker container exec -it jenkins /bin/bash#生成密钥对,一路回车确认就行
ssh-keygen -t rsacd ~
#获取公钥
cat .ssh/id_rsa.pub#获取私钥
cat .ssh/id_rsa

配置Gitlab上的公钥

头像
Edit profile
选择同级的 SSH Keys
Add new key
Key 粘贴刚才的公钥

配置Jenkins上的私钥

注意:配置的是全局凭据

Dashboard
Manage Jenkins
Credentials
New credentials
Kind 选择SSH Username with private key
Scope 选择Global Jenkins, nodes, items, all child items, etc
Username 填写gitlab上配置公钥的用户名 如 root
Private Key 填写刚才生成的私钥
ID 不填, Description 填写描述

Jenkins上创建项目

Dashboard
New Item
输入项目名称
选择 Freestyle project

配置项目

进入项目

Configure
GitLab Connection
选择 jenkins
Source Code Management
git
Repositories 填写gitlab仓库的ssh地址
Credentials 选择刚才添加的密钥对凭据
Branches to build
Branch Specifier 根据真实情况填写 比如 main
Repository browser
选择gitlab
URL
填写gitlab仓库的http地址
Version
填写gitlab的版本

这里填写 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容器

  1. 生成安全随机数备用openssl rand -hex 12
  2. 配置jenkins
Configure
Build Triggers
Authentication Token 填入上面的安全随机数
Build when a change...
注意这里勾选上,并且后面附的地址后续gitlab上要用到

在这里插入图片描述

  1. 配置gitlab
    取消Webhooks访问限制
    进入gitlab
Admin area
Settings
Network
Outbound requests
勾上两个Allow

进入项目

Settings
Webhooks
Add new webhook
Project Hooks
Webhooks
URL 填写上面 需要注意 的那个url
Secret token 填写和上面配置一样的安全随机数
Trigger 根据实际情况勾选
SSL verification
根据实际情况是否启用
Test 点击后面的Push events, 出现successfully就表示成功

1.这里如果test的时候报4xx错误,检查 gitlab中webhook限制访问是否已打开
2. 参考 Gitlab和Jenkins集成 实现CI (一) 中 基础配置 章节 gitlab哪里的勾选是否已去掉

都看到这里了,点个赞再走吧!^ _ ^

相关文章:

  • 机器学习系列——(十四)正则化回归
  • Java多线程编程中的异常处理策略
  • C语言如何输⼊字符数组?
  • 嵌入式Qt Qt 中的坐标系统
  • 代码随想录算法——数组
  • 【UE 游戏编程基础知识】
  • element-ui解决上传文件时需要携带请求数据的问题
  • 用Python来实现2024年春晚刘谦魔术
  • 操作系统面试问题——说一下什么是零拷贝?
  • 蓝桥杯刷题--python-4
  • 域名解析大概过程笔记
  • Dubbo集成Zookeeper embbed模式
  • 屏幕字体种类介绍
  • 第62讲商品搜索动态实现以及性能优化
  • CVE-2022-0760 漏洞复现
  • Angularjs之国际化
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • C++11: atomic 头文件
  • ES2017异步函数现已正式可用
  • express.js的介绍及使用
  • gcc介绍及安装
  • Hibernate最全面试题
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • SSH 免密登录
  • Vultr 教程目录
  • 闭包--闭包作用之保存(一)
  • 程序员最讨厌的9句话,你可有补充?
  • 离散点最小(凸)包围边界查找
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 如何用vue打造一个移动端音乐播放器
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 怎么将电脑中的声音录制成WAV格式
  • Java性能优化之JVM GC(垃圾回收机制)
  • kubernetes资源对象--ingress
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • #pragma预处理命令
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (NSDate) 时间 (time )比较
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (七)Knockout 创建自定义绑定
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (五)关系数据库标准语言SQL
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)mysql使用Navicat 导出和导入数据库
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .aanva
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。