Jenkins 集成Gitlab pipeline,web hook

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 pipeline,web hook_第1张图片

保存后构建

Jenkins 集成Gitlab pipeline,web hook_第2张图片

配置Jenkins 连接到 Gitlab,实现拉取代码

gitlab,创建组,项目(Jenkins)

Jenkins 集成Gitlab pipeline,web hook_第3张图片

在这个组下创建项目Jenkins
配置密钥对,把公钥上传到gitlab 实现服务器免密登录到gitlab,拉取代码(这个在gitlab有写,需要注意的是全局的密钥对还是某个项目的密钥对)

Jenkins语法生成器,配置语法连接到gitlab

使用语法生成器

Jenkins 集成Gitlab pipeline,web hook_第4张图片
Jenkins 集成Gitlab pipeline,web hook_第5张图片
Jenkins 集成Gitlab pipeline,web hook_第6张图片

Repository URL

从gitlab找到克隆的网址,选择ssh的方式
Jenkins 集成Gitlab pipeline,web hook_第7张图片

配置密钥对,连接到gitlab(这个密钥对作用是Jenkins可以从gitlab托取代码)

配置密钥对可以通过网上查找linux 生成密钥对
点击Jenkins,对Jenkins添加密钥对

Jenkins 集成Gitlab pipeline,web hook_第8张图片

Jenkins 集成Gitlab pipeline,web hook_第9张图片

还是报错是因为是全局的key不是项目的,要在gitlab里把公钥添加到项目

Jenkins 集成Gitlab pipeline,web hook_第10张图片

在Jenkins上重新选择,点击Generate Pipeline Script 生成语句,并添加到Pipeline Script,保存构建(这条生成的语句是为了连接到gitlab)

Jenkins 集成Gitlab pipeline,web hook_第11张图片

Jenkins 集成Gitlab pipeline,web hook_第12张图片

Jenkins集成gitlab web hook 实现提交代码自动构建

目的:当开发提交代码,Jenkins自动构建任务

Jenkins安装插件

gitlab,gitlab hook, gitlab authentication
Jenkins 集成Gitlab pipeline,web hook_第13张图片

gitlab生成令牌(token)

Jenkins 集成Gitlab pipeline,web hook_第14张图片

Jenkins系统配置gitlab 身份token

Jenkins 集成Gitlab pipeline,web hook_第15张图片

Jenkins 集成Gitlab pipeline,web hook_第16张图片

Jenkins构建项目添加构建触发条件两种方式

使用token方式

Jenkins 集成Gitlab pipeline,web hook_第17张图片

复制下图的URL添加到gitlab里
Jenkins 集成Gitlab pipeline,web hook_第18张图片
Jenkins 集成Gitlab pipeline,web hook_第19张图片
取消下面 SSL verification认证

使用密码登录方式

Jenkins 集成Gitlab pipeline,web hook_第20张图片

测试完成后,就可以测试更改代码,提交后看Jenkins是否自动构建任务

提交代码,查看是否自动构建

Jenkins 集成Gitlab pipeline,web hook_第21张图片

当Jenkins和gitlab在同一台服务器时,gitlab提示连接Jenkins失败解决方案

在gitlab admin配置里,找到Outbound requests,允许Jenkins和gitlab在同一台服务器时启用webhooks

Jenkins 集成Gitlab pipeline,web hook_第22张图片

你可能感兴趣的:(持续集成,jenkins,运维,docker)