加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.com/)- 应用安全、运维、云计算、5G、云通信!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

自动化集成:Pipeline流水语法详解

发布时间:2022-08-09 10:26:49 所属栏目:Linux 来源:互联网
导读:前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译、打包、镜像构建、部署等操作;本篇文章主要描述Pipeline流水线用法。 一、Webhook原理 Pipeline流水线任务通常情况下都是自动触发的,在Git仓库中配置源码改动后通知
  前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译、打包、镜像构建、部署等操作;本篇文章主要描述Pipeline流水线用法。
 
 
 
  一、Webhook原理
  Pipeline流水线任务通常情况下都是自动触发的,在Git仓库中配置源码改动后通知的地址即可。
 
  例如在Gitee仓库中,基于WebHook的配置,可以在向仓库push代码后,自动回调预先设定的请求地址,从而触发代码更新后的打包动作,基本流程如下:
 
 
 
  这里涉及到两个核心配置:
 
  Gitee回调:即仓库接收到push请求后的通知地址;在仓库管理的WebHooks选项中;
  Jenkins流程:编写流水线任务,处理代码提交后的自动化流程;这里需要Jenkins地址可以在外网访问,网上的组件很多,自行选择搭建即可;
  注意:可以先随意设置回调地址,在请求日志中直接拷贝请求参数,在postman中去触发Jenkins任务,这样在测试时会方便很多。
 
 
 
  这里结合Gitee的帮助文档,去分析不同push动作的参数标识,可以判断分支的创建、推送、删除等操作,例如:
 
  "after": "1c50471k92owjuh37dsadfs76ae06b79b6b66c57",
  "before": "0000000000000000000000000000000000000000",
  创建分支:before字符都是0;删除分支:after字符都是0;
 
  二、流水线配置
  1、插件安装
  在Jenkins插件管理中,安装Generic-Webhook-Trigger插件,流水线pipeline相关组件在Jenkins初始化的时候已经安装了。
 
  2、创建流水线
  新建Item,输入任务名称,选择pipeline选项即可:
 
 
 
  选择Webhook选项,页面提示了触发的方式。
 
  3、触发流水线
  http://用户名:密码@JENKINS_URL/generic-webhook-trigger/invoke
  基于如上方式通过认证,触发流水线执行,会生成任务日志,即流程是通顺的。
 
  三、Pipeline语法
  1、结构语法
  triggers:基于hook模式触发流水线任务;
  environment:声明全局通用的环境变量;
  stages:定义任务步骤,即流程分段处理;
  post.always:最终执行的动作;
  常规流程中的整体结构如下:
 
  pipeline {
      agent any
      triggers {}
      environment {}
      stages {}
      post { always {}}
  }
  把各个节点下的脚本配置进去,就会生成一个自动化的流水线任务。注意这里不勾选使用Groovy沙盒选项。
 
  2、参数解析
  这里说的参数解析是指,Gitee通过hook机制请求Jenkins服务携带的参数,这里主要解析post参数即可,解析方式看说明:
 
 
 
  这里从hook回调的参数中选了几个流程中使用的参数,下面看具体解析方式,在上图中点击新增:
 
  {
      "ref":"refs/heads/master",
      "repository":{
          "name":"butte-auto-parent",
          "git_http_url":"仓库地址-URL"
      },
      "head_commit":{
          "committer":{
              "user_name":"提交人名称",
          }
      },
      "before":"277bf91ba85996da6c",
      "after":"178d56ae06b79b6b66c"
  }
 
 
  把上述参数依次做好配置即可,这样在工作流中就可以使用这些参数。
 
  3、触发器节点
  这里即triggers模块配置,核心作用是加载触发流程的一些参数,后续在脚本中使用,其他相关配置按需选择即可,注意这里的参数需要在上个步骤中配置:
 
  triggers {
      GenericTrigger(
          genericVariables: [
              [key: 'ref', value: '$.ref'],
              [key: 'repository_name', value: '$.repository.name'],
              [key: 'repository_git_url', value: '$.repository.git_http_url'],
              [key: 'committer_name', value: '$.head_commit.committer.user_name'],
              [key: 'before', value: '$.before'],
              [key: 'after', value: '$.after']
          ],
          // causeString: ' Triggered on $ref' ,
          // printContributedVariables: true,
          // 打印请求参数
          // printPostContent: true
      )
  }

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读