【发布时间】:2018-02-24 06:03:18
【问题描述】:
在 Jenknsfile 中,我想检查 CHANGE_AUTHOR、CHANGE_AUTHOR_EMAIL 和其他一些变量。但是当我运行时它显示空值。
来自 Jenkinsfile 的代码片段 代码:
if (env.CHANGE_ID){
echo "CHANGE_ID : ${env.CHANGE_ID}"
echo "CHANGE_URL : ${env.CHANGE_URL}"
echo "CHANGE_TITLE : ${env.CHANGE_TITLE}"
echo "CHANGE_AUTHOR : ${env.CHANGE_AUTHOR}"
echo "CHANGE_AUTHOR_DISPLAY_NAME : ${env.CHANGE_AUTHOR_DISPLAY_NAME}"
echo "CHANGE_AUTHOR_EMAIL : ${env.CHANGE_AUTHOR_EMAIL}"
echo "CHANGE_TARGET : ${env.CHANGE_TARGET}"
echo "BRANCH_NAME : ${env.BRANCH_NAME}"
...
...
管道输出:
[Pipeline] echo
CHANGE_ID : 69
[Pipeline] echo
CHANGE_URL : null
[Pipeline] echo
CHANGE_TITLE : Generic jenkinsfile
[Pipeline] echo
CHANGE_AUTHOR : null
[Pipeline] echo
CHANGE_AUTHOR_DISPLAY_NAME : null
[Pipeline] echo
CHANGE_AUTHOR_EMAIL : null
[Pipeline] echo
CHANGE_TARGET : null
[Pipeline] echo
BRANCH_NAME : PR-69
如何获取显示为 null 的变量值?
【问题讨论】:
-
echo sh(returnStdout: true, script: 'env') 应该打印所有环境变量,也许这可以帮助您查看正在使用的内容。当然,您可以将其通过管道传递给 grep --> sh(returnStdout: true, script: 'env | grep CHANGE')
-
@herm 它执行成功但是 - 1. 在 Push 事件中不打印任何与更改相关的变量。 2. 在拉取请求事件中,它只打印与更改相关的(CHANGE_TITLE 和 CHANGE_ID)变量。预期变量:CHANGE_URL、CHANGE_TITLE、CHANGE_AUTHOR、CHANGE_AUTHOR_DISPLAY_NAME、CHANGE_AUTHOR_EMAIL、CHANGE_TARGET。
标签: jenkins environment-variables jenkins-pipeline