git stash,jenkins pipeline,没有使用存储库的git工作

时间:2016-12-13 12:32:33

标签: git jenkins jenkins-pipeline bitbucket-server

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

Error: Jenkins response: No git jobs using repository

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

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

我找不到任何其他方法让这个工作?

1 个答案:

答案 0 :(得分:0)

您看到的詹金斯日志中的提示是正确的

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

默认情况下,创建作业后,Jenkins侧的提交后挂钩是默认禁用的。要启用它,您应该通过选择以下两个触发器来更新要触发的作业的Build Triggers配置(在您的情况下为my-repo » master

  1. [✓] 将更改推送到BitBucket时构建
  2. [✓] 投票SCM 将“时间表” 文本框留空

enter image description here

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

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

重要的是将 Schedule 字段文本框留空。否则,如果您在其中输入cron表达式,那么您的构建将被触发两次。一旦执行提交挂接通知,第二次触发cron表达式触发器。可以通过 Schedule 字段下的标签进行解释:

  

没有时间表,因此仅在SCM更改的情况下才由提交后挂钩触发