git - Jenkins 作业生成器 gitlab 触发器被忽略

标签 git jenkins continuous-integration jenkins-pipeline jenkins-job-builder

我有以下 Jenkins 作业定义:

- scm:
  name: some-project
  scm:
    - git:
      url: git@gitlab.****/some-project.git
      credentials-id: some-ssh-username-with-private-key
      branches:
        - origin/master
- project:
    name: some-project
    jobs:
      - '{name}':
        triggers:
          gitlab:
            trigger-push: true
            trigger-merge-request: false
            trigger-open-merge-request-push: never

现在这个作业可以上传到 Jenkins,不会出现错误,但是如果我进入 Jenkins Web UI 中 some-projectConfigure 页面,我可以看到 未启用触发器部分中将更改推送到 GitLab 时进行构建。 GitLab 存储库已正确配置 - 此作业的源代码管理部分有 git@gitlab.****/some-project.gitsome-ssh- username-with-private-key 凭证和分支 origin/master 配置。但如果没有有效的触发器,这是没有用的。

我做错了什么?

请注意,我不是询问如何配置 GitLab WebHooks 来触发 Jenkins 作业。我可以手动执行此操作并且效果很好。但我们希望使用 Jenkins 作业构建器来管理 Jenkins 作业,以避免通过 Web UI 配置它们的过程中容易出错的过程,并跟踪作业配置的更改 - 我们正在使用 Jenkins 作业定义创建 git 存储库。

最佳答案

我怀疑您可能需要将触发器放在job本身中,而不是在/project/jobs.

使用project键下的触发器,我遇到了与您相同的症状。 我的触发器都没有在 Jenkins 中创建。将 triggers 部分移动到 job 中解决了我的问题。

此 yaml 将构建一个名为 builder-test 的 jenkins 作业,并选中“将更改推送到 GitLab 时构建”复选框:

- scm:
    name: gitlab
    scm:
      - git:
          url: https://gitlab.com/user/repo-name.git
          branches:
            - origin/master
- job:
    name: builder-test
    project-type: freestyle
    description: "builder-test desc"
    scm:
      - gitlab            
    triggers:
      - gitlab: 
          trigger-push: true
- project:
    name: builder-test-project
    jobs:
      - 'builder-test'

使用 GitLab 插件 1.5.1 和 JJB 1.6.2 在 Jenkins 2.32.3 上进行测试

关于git - Jenkins 作业生成器 gitlab 触发器被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47201966/

相关文章:

git - 由于未 merge 的文件,无法 git pull

azure - Jenkins azure部署错误: az login error issuer

mysql - 通过 ssh 使用 SQL 脚本失败,但直接在主机上启动时不会

ruby-on-rails - 在 127.0.0.1:6379 上连接到 Redis 时出错 (Errno::ECONNREFUSED) - Wercker

jenkins - 如何清除我的 Jenkins/Hudson 构建历史记录?

variables - TFS CI 构建触发器包含变量

windows - 如何通过 Cygwin 使用 Windows git 创建的符号链接(symbolic link)

git - git 中存储库/分支的轻型版本

jenkins - 为什么 Jenkins 的工作流引擎设计成延续传递式的方式?

linux - GIT merge --no-ff