[Jenkins] Jenkins Pipeline environment variables 사용 및 전체 리스트 출력하기

Jenkins Pipeline은 전역 변수인 environment variables를 통해 Jenkins에서 제공하는 다양한 환경 변수를 사용할 수 있습니다. 해당 정보를 통해 빌드 또는 테스트를 다르게 구성하도록 설정할 수 있으며 CI 시 필요한 정보에도 사용할 수 있습니다.

 

environment variables 사용 및 전체 리스트를 출력하는 방법을 알아봅시다.

 

 

environment variables 사용하기

environment variables를 사용하기 위해서는 env.을 통해 사용하고자 하는 환경 변수를 뒤에 선언해줍니다.
테스트를 위해 JOB_NAME 항목과 BUILD_ID 항목을 출력하기 위한 pipeline을 작성해봤습니다.

pipeline {
     agent any
     stages {
          stage('test-use-environment-variables') {
               steps {
                    echo "env.JOB_NAME : ${env.JOB_NAME}"
                    echo "env.BUILD_ID : ${env.BUILD_ID}"
               }
          }
     }
}

 

pipeline을 실행하여 결과 값을 확인합니다.
환경 변수 JOB_NAME 항목과 BUILD_ID 항목의 값을 확인하실 수 있습니다.

[Pipeline] Start of Pipeline
[Pipeline] {
[Pipeline] stage
[Pipeline] { (test-use-environment-variables)
[Pipeline] echo
env.JOB_NAME : jenkins-test-pipeline-001
[Pipeline] echo
env.BUILD_ID : 101
[Pipeline] }
  • env.JOB_NAME : jenkins-test-pipeline-001
  • env.BUILD_ID : 101

pipeline에서 사용하고자 하는 구문에 ${env.DATA} 형식으로 환경 변수를 사용할 수 있습니다.

 

 

 

environment variables 전체 리스트 출력하기

environment variables의 전체 리스트를 출력하여 사용할 수 있는 환경 변수를 확인할 수 있습니다.
Git Repository 및 사용하는 Plugins 등에 따라 출력되는 항목은 다를 수 있습니다.

테스트를 위해 전체 리스트를 출력하기 위한 pipeline을 작성해봤습니다.

pipeline {
     agent any
     stages {
          stage('test-use-environment-variables') {
               steps {
                    sh 'printenv'
               }
          }
     }
}

 

pipeline을 실행하여 결과 값을 확인합니다.
해당 pipeline에서 제공하는 environment variables 전체 리스트를 확인하실 수 있습니다.

(Private한 정보는 숨김처리 했습니다)

environment variables 전체 리스트
+ printenv
gitlabSourceRepoURL=ssh://git@################################################/test-project.git
JENKINS_HOME=/var/jenkins_home
GIT_PREVIOUS_SUCCESSFUL_COMMIT=553623fdd4a070d4d20866df329e0da685025cf6
JENKINS_UC_EXPERIMENTAL=https://updates.jenkins.io/experimental
CI=true
RUN_CHANGES_DISPLAY_URL=http://################################################/job/jenkins-test-pipeline-001/104/display/redirect?page=changes
gitlabAfter=dd77bc3d4dbae981b83223144f00d3e8cd2d2df6
HOSTNAME=2dedf5df6d0f
SHLVL=0
NODE_LABELS=built-in cicd-jenkins
HUDSON_URL=http://################################################/
GIT_COMMIT=dd77bc3d4dbae981b83223144f00d3e8cd2d2df6
HOME=/var/jenkins_home
BUILD_URL=http://################################################/job/jenkins-test-pipeline-001/104/
HUDSON_COOKIE=e1ab8579-0e43-4c87-b99d-d3429a902ad1
gitlabTargetBranch=cicd-jenkins
JENKINS_SERVER_COOKIE=durable-ed442d3ad3a22f5c36c67c83bb48f7b34155799687da888ff49fc84e1cced00a
JENKINS_UC=https://updates.jenkins.io
gitlabSourceRepoHttpUrl=https://################################################/test-project.git
gitlabUserUsername=test-user
WORKSPACE=/var/jenkins_home/workspace/jenkins-test-pipeline-001@3
REF=/usr/share/jenkins/ref
gitlabMergeRequestLastCommit=dd77bc3d4dbae981b83223144f00d3e8cd2d2df6
NODE_NAME=built-in
gitlabSourceRepoSshUrl=ssh://git@################################################/test-project.git
RUN_ARTIFACTS_DISPLAY_URL=http://################################################/job/jenkins-test-pipeline-001/104/display/redirect?page=artifacts
STAGE_NAME=test-use-environment-variables
GIT_BRANCH=origin/cicd-jenkins
gitlabSourceRepoHomepage=https://################################################/test-project
EXECUTOR_NUMBER=0
gitlabBranch=cicd-jenkins
RUN_TESTS_DISPLAY_URL=http://################################################/job/jenkins-test-pipeline-001/104/display/redirect?page=tests
BUILD_DISPLAY_NAME=#104
gitlabSourceBranch=cicd-jenkins
JENKINS_VERSION=2.387.1
JENKINS_INCREMENTALS_REPO_MIRROR=https://repo.jenkins-ci.org/incrementals
HUDSON_HOME=/var/jenkins_home
GO_VERSION=1.19
JOB_BASE_NAME=jenkins-test-pipeline-001
PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
BUILD_ID=104
gitlabBefore=f9b8a1cd2c0a396543d73f4df1d808e3a4f43fa4
BUILD_TAG=jenkins-jenkins-test-pipeline-001-104
gitlabActionType=PUSH
JENKINS_URL=http://################################################/
LANG=C.UTF-8
JOB_URL=http://################################################/job/jenkins-test-pipeline-001/
gitlabSourceRepoName=test-project
GIT_URL=https://################################################/test-project.git
gitlabSourceNamespace=experiment
BUILD_NUMBER=104
JENKINS_NODE_COOKIE=4dac1e72-512f-4f72-8c9b-6e7d94748b11
RUN_DISPLAY_URL=http://################################################/job/jenkins-test-pipeline-001/104/display/redirect
JENKINS_SLAVE_AGENT_PORT=50000
HUDSON_SERVER_COOKIE=a600b39245c6beef
JOB_DISPLAY_URL=http://################################################/job/jenkins-test-pipeline-001/display/redirect
JOB_NAME=jenkins-test-pipeline-001
COPY_REFERENCE_FILE_LOG=/var/jenkins_home/copy_reference_file.log
PWD=/var/jenkins_home/workspace/jenkins-test-pipeline-001@3
JAVA_HOME=/opt/java/openjdk
gitlabUserName=홍길동
GIT_PREVIOUS_COMMIT=3f6dff84fe6d6497a120f7668efc65ef140a21c1
WORKSPACE_TMP=/var/jenkins_home/workspace/jenkins-test-pipeline-001@3@tmp
GITLAB_OBJECT_KIND=none

 

Jenkins Pipeline environment variables 사용 및 전체 리스트 출력하는 작업을 완료하였습니다...! 끝...!

 

 

 

[Reference]

+ Recent posts