jenkins教程:jenkinsfile语法之environment、options

jenkins教程:jenkinsfile语法之environment、options

在这里插入图片描述

Declarative pipeline也包含了各种指令,比如environment,options,parameters,triggers等,指令不是必须出现的指令。

environment

定义 Pipeline或stage运行时的环境变量,位于pipeline块顶部的 environment 定义的环境变量适用于流水线中的所有步骤,stage 中定义的 environment 只能应用于 stage 中的步骤。

pipeline {
    agent any
    environment { 
        CC = 'clang'
    }
    stages {
        stage('Example') {
            environment { 
                hlw = 'hello world'    
            }
            steps {
                echo hlw
            }
        }
    }
}
options

options指令允许在Pipeline内部定义 pipeline专有属性。

pipeline可用选项:

  • buildDiscarder:保持构建的最大个数,超过最大构建数后会丢弃以前的构建。
  • checkoutToSubdirectory:在工作区的子目录中执行自动源代码控制checkout 。
  • disableConcurrentBuilds:禁止并行执行 pipeline任务,可用于防止同时访问共享资源。
  • disableResume:如果控制器重启,不允许管道恢复。
  • newContainerPerStage:与docker或dockerfile顶级代理一起使用。指定后,每个阶段将运行在同一节点上的新容器实例中,而不是所有阶段都运行在同一个容器实例中。
  • overrideIndexTriggers:允许重写分支索引触发器的默认处理方法。如果分支索引触发器在多分支或组织标签处被禁用,options { overrideIndexTriggers(true) }将仅为该job启用。否则,options { overrideIndexTriggers(false) }将只禁用该job的分支索引触发器。
  • preserveStashes:保留已完成构建的stashes ,以便在stage 重启时使用。例如: options {preserveStashes()}用于保存最近完成构建的stashes ,或者options {preserveStashes(buildCount: 5)}用于保存最近完成构建的五个堆栈。
  • quietPeriod:为Pipeline设置静默期(以秒为单位),覆盖全局默认值。例如: options {quietPeriod(30)}
  • skipDefaultCheckout:在agent指令中,默认情况下跳过从源代码Checkout代码。例如: options {skipDefaultCheckout()}
  • skipStagesAfterUnstable:一旦构建状态变为 “Unstable“ 状态,就跳过stages。例如: options {skipstagesafterstable ()}
  • retry:失败后,重试整个 Pipeline的次数例如: options { retry(3) }
  • timeout:为Pipeline的运行设置一个超时时间,在此之后,Jenkins就中止Pipeline。例如: options {timeout(time: 1, unit: 'HOURS')}
  • timestamps:在所有由Pipeline运行生成的控制台输出前加上间。例如: options {timestamp ()}
  • parallelsAlwaysFailFast:将流水线中所有后续并行阶段的failfast设置为true,用于并行执行stage中。例如: options {parallelsAlwaysFailFast()}

stage的options指令类似于Pipeline的options指令。然而,stage选项只能包含retry, timeout, 或 timestamps 的步骤,或者与stage相关的声明性选项,比如skipDefaultCheckout

在stage中,在进入agent或检查任何 when条件之前调用options指令中的步骤。

stage 可用选项:

  • skipDefaultCheckout
  • timeout:为当前stage的运行设置一个超时时间
  • retry
  • timestamps

示例脚本:

pipeline {
    agent any
    options {
    	timeout (time: 1, unit: 'HOURS')
    	buildDiscarder(logRotator(numToKeepStr: '2')
    	retry(5)
	}
    stages {
        stage('init') {
            options {
                timeout(time: 30, unit: 'SECONDS') 
            }
            steps {
                echo 'Hello World'
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/a772304419/article/details/132456127