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'
            }
        }
    }
}

 

posted @ 2020-08-26 21:40  韩式运维  阅读(268)  评论(0)    收藏  举报