CICD/Jenkins
Jenkins - 환경변수 사용
Jayyy.H
2021. 2. 24. 00:59
Jenkins 환경변수
Jenkins Global variable
- env
: env 환경변수는 다음과 같은 형식env.VARNAME
으로 참조될 수 있다. 대표적인 env의 property는 아래와 같다.
property 이름 | 설명 |
---|---|
BUILD_ID |
현재 빌드의 ID이며 이는 v1.597 이상에서는 BUILD_NUMBER 와 같은 값을 가진다 |
JOB_NAME |
현재 빌드중인 프로젝트의 이름으로 foo 또는 foo/bar 와 같은 형식이다. |
BRANCH_NAME |
multibranch 프로젝트인 경우 사용할 수 있으며, 현재 빌드되고 있는 브랜치명을 알려준다 |
CHANGE_ID |
multibranch 프로젝트의 change request에 대한 change ID(PR number)를 나타낸다. |
CHANGE_URL |
multibranch 프로젝트의 change request에 대한 change URL을 나타낸다. |
CHANGE_TARGET |
multibranch 프로젝트의 change request에 대해 merge될 base branch를 나타낸다. |
CHANGE_BRANCH |
multibranch 프로젝트의 change request에 대해 현재 HEAD가 가리키고 있는 브랜치 명을 알려준다. 이는 BRANCH_NAME 과 같을 수 있다. |
BUILD_NUMBER |
현재 build number를 나타낸다. |
JENKINS_URL |
http://server:port/jenkins/ 와 같은 jenkins의 URL을 알려준다. |
BUILD_URL |
http://server:port/jenkins/job/foo/15/ 와 같은 현재 build의 URL을 알려준다. |
JOB_URL |
http://server:port/jenkins/job/foo/ 와 같은 job의 URL을 알려준다 |
- currentBuild
:currentBuild
환경변수는 현재 빌드되고 있는 정보를 담고있다. 보통 readonly 옵션인데 일부 writable한 옵션이 존재한다. 대표적인 currentBuild의 property는 아래와 같다.
property 이름 | 설명 |
---|---|
number |
build number를 나타낸다. |
result |
SUCCESS , UNSTABLE , FAILURE 를 가질 수 있으며, 빌드 중에는 null 이 될 수 있다. writable한 옵션이다. |
currentResult |
SUCCESS , UNSTABLE , FAILURE 를 가질 수 있으며 null 이 될 수 없다. |
duration |
빌드에 소요되고 있는 시간을 ms단위로 나타낸다. |
keepLog |
true이면 해당 빌드에 대한 로그 파일은 지워지지 않는다. writable한 옵션이다. |
displayName |
보통 #123과 같으나 writable한 옵션이다. |
- docker
: TBD
환경변수의 사용
이들의 사용 예는 아래와 같다.
pipeline {
agent any
stages {
stage('Example') {
steps {
echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}"
}
}
}
}
: Jenkins에서 환경변수를 설정할 수 있으며 이 예는 아래와 같다.
pipeline {
agent any
environment {
CC = 'clang'
}
stages {
stage('Example') {
environment {
DEBUG_FLAGS = '-g'
}
steps {
sh 'printenv'
}
}
}
}
environment
지시어가 pipeline의 최 상단에 위치해 있으면, 이는 모든 step에 적용된다. 각 stage에 위치한 환경변수는 해당 stage에서만 적용된다.