如何使用kubernetes插件将jenkins构建环境传递到pod?

时间:2017-09-23 19:07:34

标签: kubernetes jenkins-plugins jenkins-pipeline

环境:詹金斯2.73.1& Kubernetes插件1.0

在容器内部,我喜欢获得正常的jenkins构建环境变量,如BUILD_NUMBER

podTemplate(label: 'mypod', containers: [
    containerTemplate(name: 'python', image: 'python:2.7.8', ttyEnabled: true)
]) {

    node("mypod") {
        echo sh(returnStdout: true, script: 'env')

        container('python') {
            stage('Checkout') {
                sh "env"
            }
        }
    }
}

到目前为止,在上面的代码中,在python内,它没有传统的构建变量。

将这些变量放入容器内的任何解决方案?

1 个答案:

答案 0 :(得分:0)

您可以使用env.BUILD_NUMBER 即

node{
    echo env.BUILD_NUMBER
}

此外,如果您想要一个可用的所有环境变量列表,您可以运行

node{
    echo "${env.getEnvironment()}"
}

这些是默认的jenkins插件env vars,但您也可以在pod模板中为kubernetes插件构建pod设置env vars,例如..

envVars: [
  envVar(key: 'GOPATH', value: '/home/jenkins/go')
]),

FWIW这里使用的代码是https://github.com/fabric8io/fabric8-pipeline-library/blob/3834f0f/vars/goTemplate.groovy#L27

更多详情here