pipeline模板
- always 无论流水线或者阶段的完成状态。
- changed 只有当流水线或者阶段完成状态与之前不同时。
- failure 只有当流水线或者阶段状态为"failure"运行。
- success 只有当流水线或者阶段状态为"success"运行。
- unstable 只有当流水线或者阶段状态为"unstable"运行。例如:测试失败。
- aborted 只有当流水线或者阶段状态为"aborted "运行。例如:手动取消。
pipeline { agent any stages { stage('Example') { steps { echo 'Hello World' } } } post { always { echo 'I will always say Hello again!' } } }
一 environment指令指定一系列键值对,这些对值将被定义为所有步骤的环境变量或阶段特定步骤
environment{…}, 大括号里面写一些键值对,也就是定义一些变量并赋值,这些变量就是环境变量。环境变量的作用范围,取决你environment{…}所写的位置,你可以写在顶层环境变量,让所有的stage下的step共享这些变量,也可以单独定义在某一个stage下,只能供这个stage去调用变量,其他的stage不能共享这些变量。一般来说,我们基本上上定义全局环境变量,如果是局部环境变量,我们直接用def关键字声明就可以,没必要放environment{…}里面。
pipeline { agent any environment { unit_test = true } stages { stage('Example') { steps { script{ if(unit_test == true){ println "变量为真 " } }} } } }
pipeline { agent { label 'master' } environment { CC = 'clang' } stages { stage('Example') { steps { sh 'printenv' } } } post { failure { echo 'I will always say Hello again!' } } }

dir ,deleteDir
dir()方法:就是改变当前的工作目录,在dir语句块里执行的其他路径或者相对路径
deleteDir()方法:默认递归删除WORKSPACE下的文件和文件夹,没有参数,使用这个方法会留下一个后遗症:
执行这个job的时候,你之前已经在这个工作目录下面,你再建一个目录就会报错:mkdir: 无法创建目录"testdata": 没有那个文件或目录,这是个很矛盾的报错
解决方法:使用cd重新切换到当前目录,再执行mkdir操作
举例如下:
pipeline{ agent any stages{ stage("deleteDir") { steps{ script{ println env.WORKSPACE dir("${env.WORKSPACE}/testdata"){ //切换到当前工作目录下的testdata目录 sh "pwd" //sh命令可以 sh "command..." 也可以 sh("command....") } sh("ls -al ${env.WORKSPACE}") deleteDir() // clean up current work directory //清空目录 sh("ls -al ${env.WORKSPACE}") } } } } }
pipeline { agent any stages { stage('build') { steps { sh 'mkdir build21' } } stage('test') { steps { sh 'touch test.txt' } } stage('deploy') { steps { echo '发布' } } } }
pipeline { agent any environment { CC = 'clang' } stages { stage('Example') { environment { AN_ACCESS_KEY = credentials('my-prefined-secret-text') } steps { sh 'printenv' } } } }

浙公网安备 33010602011771号