개요
2023.11.02 - [Jenkins] pipeline - 변수 선언 및 사용에서 변수를 선언하고 사용하는 방법에 대해서 알아보았다. 이 글에서는 변수를 동적인 값으로 초기화하는 방법에 대해서 정리해두려고 한다.
방법
환경 변수나 변수는 런타임에 초기화할 수 있다. shell scripts (sh), Windows batch scripts (bat) and PowerShell scripts (powershell) 등으로 종료 상태(returnStatus)나 표준 출력(returnStdout)으로 초기화하여 사용할 수 있다.
아래 예시는 script로 전달한 명령어를 실행한 결과의 표준 출력으로 변수를 초기화한 것이다.
CC = """${sh(
returnStdout: true,
script: 'echo "clang"'
)}"""
아래 예시는 script로 전달한 명령어를 실행한 결과의 종료 상태로 변수를 초기화한 것이다.
EXIT_STATUS = """${sh(
returnStatus: true,
script: 'exit 1'
)}"""
예시
테스트 젠킨스가 AWS EC2에서 동작하고 있는데, 간단히 해당 EC2의 인스턴스 타입을 확인해 본다.
SCRIPT = 'ec2metadata --instance-type'
pipeline {
agent any
stages {
stage('Hello') {
steps {
script {
INSTANCE_TYPE = """${sh(
returnStdout: true,
script: "$SCRIPT"
)}"""
}
println "$INSTANCE_TYPE"
}
}
}
}
만약 같은 명령어를 반복해서 사용해야 한다면, 변수에 저장해 두었다가 사용해도 된다.
실행 결과
참고 문서
https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#setting-environment-variables-dynamically