首页 > 其他 > 详细

Jenkins 之 pipeline流水线入门

时间:2021-04-21 17:23:32      阅读:66      评论:0      收藏:0      [点我收藏+]
一、自由风格项目弊端
  • 任务的完成需要在Jenkins端维护大量的配置
  • 没法做版本控制
  • 可读性、可移植性很差,不够优雅

二、流水线的作用

  • 重要的功能插件,帮助Jenkins定义了一套工作流框架;
  • Pipeline 的实现方式是一套 Groovy DSL( 领域专用语言 ),所有的发布流程都可以表述为一段 Groovy 脚本;
  • 将WebUI上需要定义的任务,以脚本代码的方式表述出来;
  • 帮助jenkins实现持续集成CI(Continue Integration)和持续部署CD(Continue Deliver)的重要手段;
    技术分享图片

三、创建一个简单的pipline流水线项目

1、实现目的

  • 连接gitlab的myblog仓库代码
  • 下载myblog仓库代码至本地(执行该任务的主机,如:k8s-slave2 /app/jenkins_jobs/)
  • 推送到远端的服务器10.3.152.78的/tmp/myblog/目录下
  • 执行相关sh命令sh /tmp/ops_start.sh

2、新建pipline项目
技术分享图片

3、默认情况下,不需要填任何内容,只需要在"流水线"标签选项中写脚本
技术分享图片

整个流水线作业,全部由该脚本完成,没有任何额外的操作

技术分享图片

4、构建该流水线作业(成功)
技术分享图片
技术分享图片

四、通过Blue Ocean查看pipline作业

技术分享图片

五、pipeline流水线脚本

pipeline {
    agent any

    stages {
        stage(‘更新开始‘) {
            steps {
                echo ‘更新开始‘
            }
        }
        stage(‘git代码仓库‘){
            steps {
                git credentialsId: ‘6a8972e3-a817-4117-8018-2653e98548f9‘, url: ‘https://gitlab.cedarhd.com/zhoumingkang/myblog.git‘
            }
        }
        stage(‘推送&执行脚本‘){
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: ‘10.3.152.78‘, transfers: [sshTransfer(cleanRemote: false, excludes: ‘‘, execCommand: ‘sh /tmp/ops_start.sh > /dev/null 2>&1‘, execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: ‘[, ]+‘, remoteDirectory: ‘/tmp/myblog/‘, remoteDirectorySDF: false, removePrefix: ‘‘, sourceFiles: ‘**‘)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
    }
}

六、脚本解释

  • agent:指明使用哪个agent节点来执行任务,定义于pipeline顶层或者stage内部
    any,可以使用任意可用的agent来执行
    label,在提供了标签的 Jenkins 环境中可用的代理上执行流水线或阶段。 例如: agent { label ‘my-defined-label‘ },最常见的使用方式
    none,当在 pipeline 块的顶部没有全局代理, 该参数将会被分配到整个流水线的运行中并且每个 stage 部分都需要包含他自己的 agent 部分。比如: agent none
  • stages: 包含一系列一个或多个 stage指令, stages 部分是流水线描述的大部分"work" 的位置。 建议 stages 至少包含一个 stage 指令用于连续交付过程的每个离散部分,比如构建, 测试, 和部署。
  • steps: 在给定的 stage 指令中执行的定义了一系列的一个或多个steps。

七、“git代码仓库”脚本编写方法

1、点击流水线语法(用以编写生成代码)
技术分享图片

2、选择git
技术分享图片

3、选择连接仓库与凭证(跟自由项目方法一致)
技术分享图片

4、此时可以将生成的脚本,复制到pipeline脚本上。

八、“推送&执行脚本”编写方法

1、选择相关功能,与自由项目操作一致
技术分享图片

2、生成相关的代码
技术分享图片

Jenkins 之 pipeline流水线入门

原文:https://blog.51cto.com/u_12965094/2722359

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!