【问题标题】:In Jenkins pipeline some environment variables are having null value在 Jenkins 管道中,一些环境变量具有空值
【发布时间】: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


【解决方案1】:

您是否正在使用多分支管道作业?这些变量仅在多分支中可用。请参阅 Jenkins 实例此页面上的 env 部分:

http://Jenkins.server.url/pipeline-syntax/globals

【讨论】:

    猜你喜欢
    • 2017-08-09
    • 1970-01-01
    • 2018-10-02
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    相关资源
    最近更新 更多