Jenkins中使用环境变量

直接使用环境变量

groovy 复制代码
pipeline {
    agent {
        label "${28}"
    }

    stages {
        
        stage("git clone"){
            steps{
                script{
                    sh """
                        pwd
                        ls
                    """
                  
                    // 环境变量的使用
                    // 输出所有环境变量  
                    echo "All environment variables: ${env}"  
                    
                    // 输出单个环境变量的值  
                    echo "HOME directory: ${env.HOME}"  
                    echo "Jenkins user: ${env.USER}"  
                    echo "Jenkins WORKSPACE: ${env.WORKSPACE}"
                    
                    // 遍历输出所有的环境变量  
                    env.each { key, value ->  
                        echo "Environment variable $key: $value"  
                    }
                    
                    // 如下为/home/jenkins/program/jenkins/workspace/middle_nMedia_test
                    echo "${WORKSPACE}"
                    // 构建号
                    echo "${BUILD_NUMBER}"
                    echo "${WORKSPACE}/${BUILD_NUMBER}"
                }
            }
        }
    }
}

Console Output:

bash 复制代码
Started by user 昌显瑞
[Pipeline] Start of Pipeline
[Pipeline] node
Running on 192.168.3.28 in /home/jenkins/program/jenkins/workspace/middle_nMedia_test
[Pipeline] {
[Pipeline] stage
[Pipeline] { (git clone)
[Pipeline] script
[Pipeline] {
[Pipeline] sh
+ pwd
/home/jenkins/program/jenkins/workspace/middle_nMedia_test
+ ls
[Pipeline] echo
All environment variables: org.jenkinsci.plugins.workflow.cps.EnvActionImpl@2f5a9fc9
[Pipeline] echo
HOME directory: /home/jenkins
[Pipeline] echo
Jenkins user: jenkins
[Pipeline] echo
Jenkins WORKSPACE: /home/jenkins/program/jenkins/workspace/middle_nMedia_test
[Pipeline] echo
Environment variable org.jenkinsci.plugins.workflow.cps.EnvActionImpl@2f5a9fc9: null
[Pipeline] echo
/home/jenkins/program/jenkins/workspace/middle_nMedia_test
[Pipeline] echo
28
[Pipeline] echo
/home/jenkins/program/jenkins/workspace/middle_nMedia_test/28
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

通过environment间接使用

在environment中定义新的全局的环境变量,在后文中使用。

亦可以将参数化构建的参数在environment中赋值给新的环境变量,然后后文中同样可以使用。

groovy 复制代码
pipeline {
    agent {
        label "28"
    }
    
    environment {
        // 通过环境变量定义新的变量
        work_dir = "${BUILD_NUMBER}"
        server_main_workspace = "${WORKSPACE}/${BUILD_NUMBER}"

    }

    stages {
        stage("git clone"){
            steps{
                script{
                    sh """
                        pwd
                        ls
                    """
                    
                    echo "${work_dir}"
                    echo "${server_main_workspace}"
                }
            }
        }
    }
}

Console Output:

bash 复制代码
Started by user 昌显瑞
[Pipeline] Start of Pipeline
[Pipeline] node
Running on xxx.xxx.xx.xx in /home/jenkins/program/jenkins/workspace/xxxxxxxxx_test
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (git clone)
[Pipeline] script
[Pipeline] {
[Pipeline] sh
+ pwd
/home/jenkins/program/jenkins/workspace/xxxxxxxxx_test
+ ls
[Pipeline] echo
29
[Pipeline] echo
/home/jenkins/program/jenkins/workspace/xxxxxxxxx_test/29
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

一个好的教程链接

相关推荐
fengyehongWorld20 小时前
Jenkins 安装与简单配置
运维·jenkins
weixin_307779132 天前
Linux下Jenkins数据故障的系统化排查Shell脚本
linux·运维·服务器·jenkins
海兰5 天前
【Elasticsearch】工作流自动化评估
elasticsearch·自动化·jenkins
tianyuanwo5 天前
深入掌握 java -jar 命令:从基础到 Jenkins Agent 实战
java·jenkins·jar
这个需求做不了6 天前
Jenkins自动化构建与CI/CD流水线,并配置GitLab
java·ci/cd·自动化·gitlab·jenkins
007张三丰7 天前
软件测试专栏(15/20):REST Assured接口自动化框架实战
运维·自动化·jenkins·接口自动化·rest·assured
qq_452396239 天前
第二篇:《Jenkins 从零搭建:安装、配置与第一个 Pipeline》
java·运维·jenkins
用户6757049885029 天前
手摸手教你玩 Jenkins,一次搞懂 CI/CD!(第三章:发布之nodeAgent)
后端·jenkins
qq_452396239 天前
第三篇:《Jenkins Pipeline as Code:Declarative Pipeline 深度实战》
java·servlet·jenkins
用户67570498850210 天前
手摸手教你玩 Jenkins,一次搞懂 CI/CD!(第二章:发布之sshPublisher)
后端·jenkins