【云原生】devops之jenkins中pipeline语法(2)

本文详细介绍了 Jenkins Pipeline 中的阶段步骤概念及其应用,包括 post 条件执行、stages 和 stage 的使用方法,并通过实例展示了如何构建流水线以实现自动化构建、测试和部署等功能。

前言:

        pipeline语法分类一般来说,有四种。分别是环境配置、阶段步骤、行为动作、逻辑判断。

二、阶段步骤


(1)post

        根据pipeline块或者stage(阶段)完成的状态来进行一个或者多个附加步骤(取决于该post部分在pipeline中的位置)

参数

描述

always

post无论pipeline块或者stage运行的完成状态如何,都运行该部分中的步骤。

changed

post当当前 Pipeline 的运行与之前的运行具有不同的完成状态时才运行步骤。

fixed

post当当前 Pipeline 运行成功且前一次运行失败或不稳定时才运行步骤。

regression

post当当前Pipeline的或状态为失败、不稳定或中止且前一次运行成功时才运行步骤。

aborted

post当当前Pipeline的运行处于“中止”状态时才运行步骤,通常是由于流水线被手动中止。这通常在 Web UI 中用灰色表示。

failure

post当当前pipeline块或stage运行处于“失败”状态时才运行步骤,通常在 Web UI 中用红色表示。

success

post当当前pipeline块或stage的运行具有“成功”状态时才运行步骤,通常在 Web UI 中以蓝色或绿色表示。

unstable

post当当前 Pipeline 的运行处于“不稳定”状态时才运行步骤,这通常是由测试失败、代码违规等引起的。这通常在 Web UI 中用黄色表示。

unsuccessful

post当当前pipeline块或者stage的运行没有“成功”状态时才运行步骤。这通常在 Web UI 中表示,具体取决于前面提到的状态(对于阶段,如果构建本身不稳定,则可能会触发)。

cleanup

在评估post所有其他条件后 运行此条件中的步骤,无论管道或阶段的状态如何。

 

示例:

pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'}
        }
    }
    post {
        always {
            echo 'I will always say Hello again!'}
    }
}

 

(2)stages

        该部分包含一系列一个或多个stage指令,stages是流水线描述的大部分“工作”所在的位置。建议至少为持续交付过程的每个离散部分(例如构建、测试和部署)stages包含一个stage指令。

 

示例:

pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'}
        }
    }
}

(3)stage

        该stage指令位于该stages部分中,并且应该包含一个steps部分、一个可选agent部分或其他特定于阶段的指令。

示例:

pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'}
        }
    }
}

 

(4)steps

        该部分定义了 要在给定指令中执行steps的一系列一个或多个步骤。

示例:

pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

步骤哪里来:

        1)首先我们创建一个pipeline的项目,在项目编辑最下角有一个“流水线语法”,点击进去

        2)点击“片段生成器”,选择要生成的“步骤”,输入步骤内容,之后就可以点击“生成流水线脚本”按键。这样就能生成step步骤语句语法

(5)Sequential Stages

        stages内嵌套stages。

        pipeline中的阶段可能有一个stages部分,其中包含要按顺序运行的嵌套阶段列表。请注意,一个阶段必须有一个且只有一个stepsstagesparallelmatrix

        如果stage指令嵌套在parallel ormatrix块本身中,则无法在stage指令中嵌套parallel ormatrix块。然而,parallel ormatrix块中的stage指令可以使用stage的所有其他功能,包括agenttoolswhen等。

pipeline {
    agent none
    stages {
        stage('Non-Sequential Stage') {
            agent {
                label 'for-non-sequential'}
            steps {
                echo "On Non-Sequential Stage"}
        }
        stage('Sequential') {
            agent {
                label 'for-sequential'}
            environment {
                FOR_SEQUENTIAL = "some-value"}
            stages {
                stage('In Sequential 1') {
                    steps {
                        echo "In Sequential 1"}
                }
                stage('In Sequential 2') {
                    steps {
                        echo "In Sequential 2"}
                }
                stage('Parallel In Sequential') {
                    parallel {
                        stage('In Parallel 1') {
                            steps {
                                echo "In Parallel 1"}
                        }
                        stage('In Parallel 2') {
                            steps {
                                echo "In Parallel 2"}
                        }
                    }
                }
            }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sun cat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值