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

shm*_*111 7 git jenkins bitbucket-server jenkins-pipeline

我正在尝试使用存储webhook到jenkins插件设置从Atlassian Stash触发jenkins multibranch管道.我的项目配置有定期设置为@daily,定期如果没有设置为1天我已索引我的分支但是当我点击隐藏webhook配置上的'触发詹金斯'按钮时,我得到以下错误

Error: Jenkins response: No git jobs using repository
Run Code Online (Sandbox Code Playgroud)

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

no trigger, or post-commit hooks disabled, on my-repo » master
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*tek 4

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

\n\n
no trigger, or post-commit hooks disabled, on my-repo \xc2\xbb master\n
Run Code Online (Sandbox Code Playgroud)\n\n

创建作业后,Jenkins 端的提交后挂钩默认处于禁用状态,而无需明确打开它。要启用它,您应该通过选择以下两个触发器来更新Build Triggers您想要触发的作业的配置(在您的情况下):my-repo \xc2\xbb master

\n\n
    \n
  1. [\xe2\x9c\x93] 当更改推送到 BitBucket 时构建
  2. \n
  3. [\xe2\x9c\x93] 轮询 SCM“计划”文本框留空
  4. \n
\n\n

在此输入图像描述

\n\n

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

\n\n
triggers {\n  bitbucketPush()\n  pollSCM(\'\') // empty cron expression string\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

重要的是将“计划”字段文本框保留为空。否则,如果您在那里输入 cron 表达式,那么您的构建将被触发两次。一次是提交挂钩通知,第二次是当 cron 表达式触发器被触发时。“计划”字段下的标签对此进行了解释:

\n\n
\n

没有计划,因此只有在提交后挂钩触发时才会因 SCM 更改而运行

\n
\n