Jenkins-Pipeline使用示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins-Pipeline使用示例相关的知识,希望对你有一定的参考价值。

参考技术A

示例说明

注:如果需要构建的时候根据git的tag指定镜像的tag,可以直接在dockerfile:build和dockerfile:push后面跟上 -DdockerTag=$TAG
附:
dockerfile插件:
https://github.com/spotify/dockerfile-maven
https://gitee.com/mirrors_spotify/dockerfile-maven

17-Jenkins-Pipeline-声明式流水线语法-environment/options/parameters指令

目录

前言

environment

脚本示例

options

脚本示例

parameters

脚本示例


前言

  • 本篇继续Pipeline的指令,来介绍下environment(环境)/options(选项)/parameters(参数)三个指令

environment

  • 指定一个 键-值对序列,该序列将被定义为所有步骤的环境变量,或者是特定于阶段的步骤, 这取决于environment 指令在流水线内的位置
  • 顶层流水线块中使用的 environment 指令将适用于流水线中的所有步骤。
  • 在一个 stage 中定义的 environment 指令只会将给定的环境变量应用于 stage 中的步骤。

脚本示例

pipeline 
    agent any
    // 顶层定义的变量,适用后面的所有步骤中
    environment  
        flag1 = 'java'
    
    stages 
        stage('Hello') 
              environment  
                flag2 = 'python'
             
            steps 
                echo 'Hello World'
                // 使用顶层定义的变量
                echo flag1
                // 使用stage中定义的变量
                echo flag2
            
        
    

options

  • 允许从流水线内部配置特定于流水线的选项,这里介绍两个选项timeout和retry
  • timeout:设置流水线运行的超时时间, 在此之后,Jenkins将中止流水线
  • retry:在失败时, 重新尝试整个流水线的指定次数

脚本示例

pipeline 
    agent any
    options 
        // 超过1小时,停止流水线
        timeout(time: 1, unit: 'HOURS')
        // 失败时重试3次
        retry(3)
    
    stages 
        stage('Hello') 
            steps 
                echo 'Hello World'
            
        
    

parameters

  • 提供了一个用户在触发流水线时应该提供的参数列表,这些用户指定参数的值可通过 params 对象提供给流水线步骤
  • 说明:第一次Build是Build  Now  --> Build 一次后才是 Build with Parameters

脚本示例

pipeline 
    agent any
    parameters 
        // 字符串参数
        string(name: 'branch', defaultValue: 'master', description: '分支名')
        // 布尔参数
        booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: '布尔参数')
        // 文本参数
        text(name: 'Welcome_text', defaultValue: 'One\\nTwo\\nThree\\n', description: '文本参数')
        // 选项参数
        choice(name: 'ENV_TYPE', choices: ['test', 'dev', 'product'], description: '测试环境选项')
        // 密码参数
        password(name: 'PASSWORD', defaultValue: '123456', description: '密码')
    

    stages 
        stage('Hello') 
            steps 
                echo 'Hello World'
                // 使用参数,格式:$params.key
                echo "分支 $params.branch"
                echo "布尔 $params.DEBUG_BUILD"
                echo "文本 $params.Welcome_text"
                echo "选项 $params.ENV_TYPE"
                echo "密码 $params.PASSWORD"

            
        
    

以上是关于Jenkins-Pipeline使用示例的主要内容,如果未能解决你的问题,请参考以下文章

17-Jenkins-Pipeline-声明式流水线语法-environment/options/parameters指令

16-Jenkins-Pipeline-声明式流水线语法-stages/steps/post指令

19-Jenkins-Pipeline-声明式流水线语法-input/when指令

Jenkins-pipeline:没有这样的 DSL 方法

48-Jenkins-Pipeline中使用异常捕获

48-Jenkins-Pipeline中使用异常捕获