【问题标题】:Use generic webhook trigger variables in pipeline在管道中使用通用 webhook 触发器变量
【发布时间】:2020-08-20 22:16:45
【问题描述】:

我正在使用通用 webhook 插件来触发我的构建:https://plugins.jenkins.io/generic-webhook-trigger/

在此插件的设置中,它允许您根据 webhook 的内容定义变量。我用它来创建像 $name & $branch 这样的变量。

我可以在构建的触发条件中使用这些变量(我用它来检查提交是否针对正确的分支)。

我真正想做的是访问我在实际管道中定义的变量。

所以我可以这样做:

steps {
        slackSend(channel: "#pipeline", message: 'Starting to build ${branch} for ${name}', botUser: true, color: 'good')
    }

如何将这些 webhook 变量放入我的构建环境变量中?

【问题讨论】:

    标签: jenkins jenkins-generic-webhook-trigger


    【解决方案1】:

    Guerrilla 在评论中回答了这个问题,但解决方法是使用双引号而不是单引号,如下所示:

    steps {
        slackSend(channel: "#pipeline", message: "Starting to build ${branch} for ${name}", botUser: true, color: 'good')
    }
    

    【讨论】:

    • 我正在尝试这个 - 我使用 [key: 'gh_pr_number', value: '$.pull_request.number'],但是当我尝试使用 sh"echo $gh_pr_number" 时,我得到一个变量未定义错误 groovy.lang.MissingPropertyException: No such property: gh_pr_number for class: groovy.lang.Binding。我对文档的阅读表明[key:'var_name' ...] 应该在 Groovy 空间中定义一个可以直接访问为$var_name 的变量,对吧...?
    • 没关系。出于某种原因,它开始工作,我不明白为什么不幸。但我理解的行为确实是正确的。
    【解决方案2】:

    试试这个:

    steps {
        slackSend(channel: "#pipeline", message: 'Starting to build ${params.branch} for ${params.name}', botUser: true, color: 'good')
    }
    

    【讨论】:

    • 你能用 ${env.branch} 和 ${env.name} 试试吗
    • 我已经试过了。我不认为插件将其设置为构建环境中的环境变量,只是在插件执行的范围内。
    • 好的。这是因为我认为 ${params.branch} 和 ${params.name} 会起作用。无论如何,没问题。我还会检查是否有其他选择。
    • 其实我刚刚发现了问题。我将单引号更改为双引号,然后它与 $branch 一起使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 2022-06-11
    • 2017-04-07
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多