【问题标题】:git stash, jenkins pipeline, No git jobs using repositorygit stash,jenkins 管道,没有使用存储库的 git 作业
【发布时间】:2016-12-13 12:32:32
【问题描述】:

我正在尝试使用 stash webhook 到 jenkins 插件设置从 Atlassian Stash 触发 jenkins 多分支管道。我的项目配置已将 Build Periodically 设置为 @daily,如果没有设置为 1 天,则定期设置为 1 天,并且我已经索引了我的分支但是当我单击 stash webhook 配置上的“Trigger Jenkins”按钮时,我收到以下错误

Error: Jenkins response: No git jobs using repository

我之前读过这可能是因为在项目上禁用了轮询,但是在顶层没有启用它的设置。我已经尝试在主分支 Jenkinsfile 中启用它,但是当我为主作业“查看配置”时它没有显示为选中状态。我还可以在 Jenkins 日志中看到:

no trigger, or post-commit hooks disabled, on my-repo » master

我找不到任何其他方法来让它工作?

【问题讨论】:

  • 当您在多分支管道中特定分支的 jenkins 页面上时,一直滚动到底部并单击 REST API 链接。如果您一直滚动到底部,您会在那里看到一个链接,如果您转到该链接,则应该安排构建。

标签: git jenkins jenkins-pipeline bitbucket-server


【解决方案1】:

您看到的来自 Jenkins 日志的提示是正确的

no trigger, or post-commit hooks disabled, on my-repo » master

Jenkins 端的 post-commit 钩子在创建作业后默认禁用,而没有显式打开它。要启用它,您应该通过选择以下两个触发器来更新要触发的作业的 Build Triggers 配置(在您的情况下为 my-repo » master):

  1. [✓] 在将更改推送到 BitBucket 时构建
  2. [✓] 投票 SCMSchedule 文本框为空

如果您使用 Jenkins 管道脚本而不是 Jenkins UI,那么您的 Jenkinsfile 应该包含正确的 triggers 指令(对应于上面的屏幕):

triggers {
  bitbucketPush()
  pollSCM('') // empty cron expression string
}

重要的是让 Schedule 字段文本框为空。否则,如果您在此处输入 cron 表达式,那么您的构建将被触发两次。一次是提交挂钩通知,第二次是 cron 表达式触发器被触发时。这是由放置在 Schedule 字段下的标签来解释的:

没有计划,因此如果由提交后挂钩触发,只会由于 SCM 更改而运行

【讨论】:

  • Jenkinsfile 解决方案对我有用,Azure DevOps + WebHook + Jenkins
猜你喜欢
  • 1970-01-01
  • 2018-02-15
  • 2017-03-06
  • 2019-02-26
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
相关资源
最近更新 更多