Jenkins 集成Gitlab
- Jenkins构建步骤
- Jenkins pipeline语法
- pipeline 测试
- 配置Jenkins 连接到 Gitlab,实现拉取代码
- gitlab,创建组,项目(Jenkins)
- Jenkins语法生成器,配置语法连接到gitlab
- 使用语法生成器
- Repository URL
- 配置密钥对,连接到gitlab(这个密钥对作用是Jenkins可以从gitlab托取代码)
- Jenkins集成gitlab web hook 实现提交代码自动构建
- Jenkins安装插件
- gitlab生成令牌(token)
- Jenkins系统配置gitlab 身份token
- Jenkins构建项目添加构建触发条件两种方式
- 使用token方式
- 使用密码登录方式
- 提交代码,查看是否自动构建
- 当Jenkins和gitlab在同一台服务器时,gitlab提示连接Jenkins失败解决方案
Jenkins构建步骤
拉取代码
代码构建
单元测试
质量扫描
部署开发环境
Jenkins pipeline语法
Stage:阶段,一个pipeline可划分为若干个stage,没个stage代表一组操作。例如Build,Test,Deploy。注意点:Stage是一个逻辑分组的概念,可以跨多个Node
Node:节点,一个节点就是一个Jenkins节点,或者是master,或者是agent是执行step的具体运行环境,所有任务都是在node上执行
Step:步骤,Step是最基本的操作单元,小到创建一个目录,大到构建一个Docker镜像,由各类Jenkins Plugin提供,例如:sh ‘make’
pipeline 测试
pipeline script
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
stage('拉取代码') {
steps {
echo 'code pull'
}
}
stage('代码构建') {
steps {
echo 'code build'
}
}
stage('unit test') {
steps {
echo 'unit test'
}
}
stage('是否部署开发环境') {
steps {
input '是否部署'
}
}
}
}
保存后构建
配置Jenkins 连接到 Gitlab,实现拉取代码
gitlab,创建组,项目(Jenkins)
在这个组下创建项目Jenkins
配置密钥对,把公钥上传到gitlab 实现服务器免密登录到gitlab,拉取代码(这个在gitlab有写,需要注意的是全局的密钥对还是某个项目的密钥对)
Jenkins语法生成器,配置语法连接到gitlab
使用语法生成器
Repository URL
从gitlab找到克隆的网址,选择ssh的方式
配置密钥对,连接到gitlab(这个密钥对作用是Jenkins可以从gitlab托取代码)
配置密钥对可以通过网上查找linux 生成密钥对
点击Jenkins,对Jenkins添加密钥对
还是报错是因为是全局的key不是项目的,要在gitlab里把公钥添加到项目
在Jenkins上重新选择,点击Generate Pipeline Script 生成语句,并添加到Pipeline Script,保存构建(这条生成的语句是为了连接到gitlab)
Jenkins集成gitlab web hook 实现提交代码自动构建
目的:当开发提交代码,Jenkins自动构建任务
Jenkins安装插件
gitlab,gitlab hook, gitlab authentication
gitlab生成令牌(token)
Jenkins系统配置gitlab 身份token
Jenkins构建项目添加构建触发条件两种方式
使用token方式
复制下图的URL添加到gitlab里
取消下面 SSL verification认证
使用密码登录方式
测试完成后,就可以测试更改代码,提交后看Jenkins是否自动构建任务
提交代码,查看是否自动构建
当Jenkins和gitlab在同一台服务器时,gitlab提示连接Jenkins失败解决方案
在gitlab admin配置里,找到Outbound requests,允许Jenkins和gitlab在同一台服务器时启用webhooks