【问题标题】:Running Jenkins job after merge request in Gitlab在 Gitlab 中合并请求后运行 Jenkins 作业
【发布时间】:2018-01-07 02:37:48
【问题描述】:

我正在尝试使用 Gitlab 网络挂钩在使用管道脚本推送提交/打开合并提交后触发 Jenknis 中的作业。

出于某种原因,Jenkins 总是检查主分支并构建它。如何 我可以指定使用 Groovy 脚本构建哪个分支吗?

我尝试使用 Gitlab POST 请求中的环境变量,但它仍然始终使用 master 分支:

checkout changelog: false, poll: false, scm: [$class: 'GitSCM' , branches: [[name:'origin/${env.gitlabSourceBranch}']], browser: [$class 'GitLab', repoUrl: 'some-git-repo.com', version: 9.0], doGenerateSubmoduleConfiguration: false, extensions: [[$class: 'SubmoduleOption' disableSubmodules: false, parentCredentials: true, recursiveCredentials: true, recursiveSubmodules: true, reference: '', trackingSubmodules: false], [$class: 'PrebuildMerge', options: [fastForwardMode: 'FF', mergeRemote: '', mergeTarget: 'origin/${env.gitlabTargetBranch}']]], submodulecfg: [], userRemoteConfigs: [[credentialsId: '12345', url: 'git@some-git-repo.com:A/repo.git']]]

(我使用 sn-p 生成器生成了这个命令)

【问题讨论】:

  • 请编辑您的帖子并添加您的代码,您目前尝试过的内容,以便我们可以帮助您更快地解决您的问题。
  • 你有没有在脚本中包含你的另一个分支来执行,你能显示你写的脚本吗

标签: jenkins gitlab jenkins-pipeline


【解决方案1】:

您可以在 Jenkins 中使用“通用 Webhook 触发器”插件。 它允许您从 Gitlab 发送的 POST 请求中获取分支名称,将其映射为变量并在您的管道中使用它。

配置:

管道内部:

stage('Clone sources') {
        steps {
            git credentialsId: '...', poll: false, branch: ${branch}, url: '...'
        }
    }

完整示例位于:https://pillsfromtheweb.blogspot.com/2021/10/trigger-jenkins-on-merge-request-from.html

【讨论】:

    猜你喜欢
    • 2017-10-10
    • 2016-07-11
    • 2020-05-05
    • 2022-11-04
    • 2019-04-12
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多