美文网首页
Jenkins Pipeline 语法、结构 (导航)

Jenkins Pipeline 语法、结构 (导航)

作者: 偷油考拉 | 来源:发表于2023-06-25 11:47 被阅读0次

    官方文档 https://www.jenkins.io/doc/book/pipeline/syntax/

    什么是 Declarative Pipeline ? 什么是 Scripted Pipeline ?语法对比

    https://github.com/darinpope/jenkins-example-scripted-vs-declarative

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

    如上声明式 vs 如下脚本式

    node {
      stage('Hello') {
        sh 'echo "Hello World"'
      }
    }
    

    一、Declarative Pipeline 简介

    声明式 Pipeline 必须以 pipeline 包含,如下:

    pipeline {
        /* insert Declarative Pipeline here */
    }
    

    声明式 Pipeline 的语句和表达式遵从 Groovy’s syntax 同样的规则,如下:

    • Pipeline 的顶层必须是一个 block, 规定: pipeline { }
    • 没有分号作为语句分隔符,一个语句一行
    • Blocks 必定由 Sections, Directives, Steps, or assignment statements 组成
    • 属性引用语句被视为无参数方法调用。比如:input 视为 input()

    二、Sections

    Sections 通常包含一个或多个 Directives or Steps

    1. 常见 Sections

    agent

    post

    stages

    steps

    范例

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

    三、Directives

    environment

    options

    parameters

    triggers

    Jenkins cron syntax

    stage

    tools

    input

    when

    四、Steps

    参考 Pipeline Steps reference ,内含所有可用 Steps。

    script

    script step 标记了一个 Scripted Pipeline 块,并在声明式Pipeline中执行。对于大多实例,script step 是不必要的,但它可以提供一个有用的 “escape hatch” (转义填充)。较大的和复杂的script step应该移到共享库Shared Libraries 中。

    pipeline {
        agent any
        stages {
            stage('Example') {
                steps {
                    echo 'Hello World'
    
                    script {
                        def browsers = ['chrome', 'firefox']
                        for (int i = 0; i < browsers.size(); ++i) {
                            echo "Testing the ${browsers[i]} browser"
                        }
                    }
                }
            }
        }
    }
    

    五、其他 assignment statements

    Sequential Stages

    Parallel

    Matrix

    六、Scripted Pipeline

    https://naiveskill.com/jenkins-scripted-pipeline/

    相关文章

      网友评论

          本文标题:Jenkins Pipeline 语法、结构 (导航)

          本文链接:https://www.haomeiwen.com/subject/sanbydtx.html