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

Posted 爱学习de测试小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了16-Jenkins-Pipeline-声明式流水线语法-stages/steps/post指令相关的知识,希望对你有一定的参考价值。

目录

前言

stages

steps

脚本示例

post

条件用法

脚本示例


前言

  • 前一篇学习了agent的语法,本篇继续网下学习-stages/steps/post的语法及使用。

stages

  • 包含一系列一个或多个 stage 指令, stages 部分是流水线描述的大部分"work" 的位置,在声明式Pipeline脚本中只允许出现一次stages。 建议 stages 至少包含一个 stage 指令用于连续交付过程的每个离散部分,比如构建, 测试, 和部署。

steps

  • steps 部分在给定的 stage 指令中执行的定义了一系列的一个或多个steps。必须包含一个或多个步骤

脚本示例

pipeline 
    // 任意一个机器执行
    agent any

    // stages可有一个或多个stage
    stages 
        stage('Build') 
            // 必须包含一个或多个步骤
            steps 
                echo 'Build'
            
        
        stage('Test') 
            steps 
                echo 'Test'
            
        
        stage('Deploy') 
            steps 
                echo 'Deploy'
            
        
        
    

post

  • post 部分定义一个或多个steps ,这些阶段根据流水线或阶段的完成情况而 运行(取决于流水线中 post 部分的位置). post 支持以下 post-condition 块中的其中之一:alwayschangedfailuresuccessunstable, 和 aborted。这些条件块允许在 post 部分的步骤的执行取决于流水线或阶段的完成状态。

条件用法

  • always:无论流水线或阶段的完成状态如何,都允许在 post 部分运行该步骤。使用场景:测试后数据清理恢复,发送邮件等
  • changed:只有当前流水线或阶段的完成状态与它之前的运行不同时,才允许在 post 部分运行该步骤。
  • failure:只有当前流水线或阶段的完成状态为"failure",才允许在 post 部分运行该步骤, 通常web UI是红色。
  • success:只有当前流水线或阶段的完成状态为"success",才允许在 post 部分运行该步骤, 通常web UI是蓝色或绿色。
  • unstable:只有当前流水线或阶段的完成状态为"unstable",才允许在 post 部分运行该步骤, 通常由于测试失败,代码违规等造成。通常web UI是黄色
  • aborted:只有当前流水线或阶段的完成状态为"aborted",才允许在 post 部分运行该步骤, 通常由于流水线被手动的停止构建。通常web UI是灰色。

脚本示例

pipeline 
    // 任意一个机器执行
    agent any

    // stages可有一个或多个stage
    stages 
        stage('Build') 
            // 必须包含一个或多个步骤
            steps 
                echo 'Build'
            
        
        stage('Test') 
            steps 
                echo 'Test'
            
        
        stage('Deploy') 
            steps 
                echo 'Deploy'
            
        
        
    
  // 仅做示例,按需使用
  post 
  always 
    // 不管构建状态是什么,都会执行.
    echo 'always'
  
  unstable 
    // 只有当前流水线或阶段的完成状态为"unstable",才运行该步骤.
    echo 'unstable'
  
  aborted 
    // 只有当前流水线或阶段的完成状态为"aborted",才运行该步骤.
    echo 'aborted'
  
  failure 
    // 只有当前流水线或阶段的完成状态为"failure",才运行该步骤.
    echo 'failure'
  
  changed 
    // 只有当前流水线或阶段的完成状态与它之前的运行不同时,才运行该步骤.
    echo 'changed'
  



以上是关于16-Jenkins-Pipeline-声明式流水线语法-stages/steps/post指令的主要内容,如果未能解决你的问题,请参考以下文章

流水线pipeline招式之声明式(前篇)

Jenkins教程——从安装到部署Docker服务声明式流水线HelloWorld

史上最全 Jenkins Pipeline流水线详解

18-Jenkisn-Pipelin-声明式流水线语法-triggers/stage/tool

Jenkins系列-Pipeline语法全集

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