Jenkins: Environment

 

Jenkins 环境变量就是通过 env 关键字暴露出来的全局变量,可以在 Jenkins 文件的任何位置使用

 

查看 Jenkins 系统内置环境变量

  1. ${JENKINS_URL}/env-vars.html

  2. through pipeline
    复制代码
    pipeline {
        agent any
        stages {
            stage('Environment') {
                steps {
                    sh 'printenv | sort'
                }
            }
    }
    复制代码

     

 

 

 

 

 

 

Shell 结果赋值给环境变量

实现这种方式很简单,只需要记住一个格式:sh(script: 'cmd', returnStdout:true)

 

复制代码
environment {
    v1=11
}


env.v5=5555555
def v6=666666


pipeline {
    agent any
    environment {
        v2=22
    }
    options {
        ansiColor('xterm')
    }

    stages {
        stage('Hello') {
            environment {
                v7=77777777
                LS="${sh(script:'ls -alh', returnStdout: true)}"
            }
            steps {
                // environment can't locate in steps
                
                echo '${env.BUILD_NUMBER}'
                echo "${env.BUILD_NUMBER} ${v6}"  // can't access v4
                echo "LS = ${env.LS}"
                
                // def b=8888  should use in script {}
                
                withEnv(['t=tttttttttttt', "tt=${JENKINS_URL}"]) {  // can override any env variables
                    sh '''
                        env | sort
                    '''
                }
                script {
                    env.v3=33
                    env.v5=5555555555555555555555555  // can override env.v5 (declared imperatively)
                    env.v7=77  // can't override env.v7 (declared declaratively)
                    v2='ttttttt'
                    v4=44  // can be access from other stages
                    
                    println "false".toBoolean()
                    
                    sh '''
                        echo "\033[7m$JOB_DISPLAY_URL\033[0m"
                        echo ${!v*}
                        printenv | sort
                    '''
                    echo "stage Hello: v2=${v2} v4=${v4} env.v2=${env.v2} v6=${v6}"

                    
                    ansiColor("xterm") {
                        sh """
                            echo "\033[32m$JOB_DISPLAY_URL\033[0m"
                        """
                        echo "\u001B[31mI'm Red\u001B[0m Now not"
                    }
                }
                
                echo "v4=${v4} ${JENKINS_HOME}"
            }
        }
        stage('Environment') {
            steps {
                sh '''
                    echo ${!v*}
                    printenv | sort
                '''
                
                echo "stage environment: v2=${v2} v4=${v4} env.v2=${env.v2} v6=${v6}"
                
            }
            
        }
    }
}
复制代码

 

 

posted @   ascertain  阅读(676)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-11-02 Systemd Service Type
2020-11-02 MySQL查看当前数据库 和 用户
2020-11-02 cmd xcopy
2020-11-02 shell miscellanies
点击右上角即可分享
微信分享提示