gpt4 book ai didi

jenkins - 将参数中的变量插入到 Jenkins 的参数化构建中

转载 作者:行者123 更新时间:2023-12-04 10:14:40 24 4
gpt4 key购买 nike

使用构建参数 BRANCH 进行 Jenkins 工作.当作业手动运行时,用户可以从列表中选择分支进行部署。由 git 插件提供的列表。

但是这个工作也可以被 GitLab 钩子(Hook)调用。在这种情况下,参数将有一个默认值,因为没有收到任何输入。

有没有办法有一个参数BRANCH有相关信息吗?分支名称来自 GitLab 钩子(Hook)。

附言我认为可以通过将默认值设置为 ${BRANCH_FROM_HOOK ?: default_value}它将检查 BRANCH_FROM_HOOK 的存在多变的。只需要想办法如何放入BRANCH_FROM_HOOK变量,来自钩子(Hook)的分支的值。我现在将接收钩子(Hook)的 gitlab 插件设置为 gitlab.Branch钩子(Hook)来自的分支的值。

更新:
我为实现这一目标所做的工作:

  • 指定git参数:
  • gitParameter defaultValue: "${env.gitlabBranch ?: "origin/master"}"但不像 gitlabBranch未在构建开始步骤中设置。
  • 按照 gitlab 插件页面 here 上的建议设置作业参数:
  • 保留 Jenkins 环境变量
  • 保留 Jenkins 构建变量
  • 覆盖构建参数
  • 添加到“Groovy 脚本”部分:
  • import hudson.model.*
    def env = Thread.currentThread()?.executable.parent.builds[0].properties.get('envVars')
    def map = [:]

    if (env['gitlabBranch'] != null) {
    map['branch'] = env['gitlabBranch']
    }
    return map

    在此添加参数之后:
    gitParameter name: branch, defaultValue: "${env.gitlabBranch ?: "origin/master"}"
    匹配 map['branch']正如文档中所说 - 不起作用,也尝试过:
    gitParameter defaultValue: "${branch ?: "origin/master"}" - 也没有工作。

    没用的意思见 origin/master值,而不是来自 gitlab 钩子(Hook)的实际分支。

    我哪里错了?

    最佳答案

    答案是使用 Generic Webhook plugin ,而不是 GitLab。并使用它的特征映射他的变量到工作参数:

    If your job is parameterized, and you resolve variables that have the same name as those parameters, then the plugin will populate the parameters when triggering job. That means you can, for example, use the parameters in combination with an SCM plugin, like GIT Plugin, to pick a branch.



    结尾。)

    关于jenkins - 将参数中的变量插入到 Jenkins 的参数化构建中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61134783/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com