# jenkinsfile 중 쉘 스크립트를 실행해 결과 변수로 저장하기
# returnStdout = true 로 설정해야 stdout 결과를 string 으로 받아 올 수 있다.
# 스크립트 결과 끝에 newline 제거를 위해 trim() 처리 한다.
script {
env.BUILD_TIME = sh (
script : 'date "+%Y-%m-%d_%H:%M:%S_%Z"',
returnStdout: true,
).trim()
# jenkinsfile 에서 sh 로 실행하면
# SHELL=/bin/bash 로 되어 있다.
# 현재 환경 변수 출력해보기
sh ('printenv | sort')
# bashrc 등의 환경변수들이 로딩되어 있지 않아
# sh 사용전 environment 로 설정해야 한다.
# environment 사용 주의 사항
# - 변수에 export 는 사용하지 못한다.
# - 변수 선언을 중복 할 수없다.
pipeline {
environment {
GOPATH="$HOME/gopath"
PATH="/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/go/bin/:$GOPATH/bin:$PATH"
}
... 생략
sh '''
echo "ysoftman"
go --help
'''
# sh ''' ''' 내에서 . ~/.bashrc 등은 제대로 동작하지 않는다.
# triple single quote ''' ''' 내에서는 멀티 라인을 사용할 수 있지만 변수 치환을 안된다.
# triple double quote """ """ 내에서는 멀티 라인과 변수 치환을 사용할 수 있다.
# jenkinfile 은 groovy 스크립트 문법을 참고하면 좋다.