我对jenkins来说还比较陌生,我正在从事一个大型项目,该项目从多个存储库中提取并进行构建。我用外壳程序命令编写了一个声明性管道,该命令从所需的存储库中提取并构建项目,并且一切正常,但是我想将此管道连接到所有这些存储库,以便每次有新的提交或合并请求时,触发jenkins并启动此管道,然后根据构建结果标记git。我知道如何为一个仓库执行此操作,但我不知道如何为多个仓库进行操作。
答案 0 :(得分:1)
如果您有多个应该触发Jenkins构建的存储库,则各个存储库都需要有Jenkinsfiles。
关键是每个存储库都应调用JenkinsSharedLibrary,这使您可以在一个中央源中维护jenkins构建,而不是每个存储库具有多个“硬编码” jenkins文件。
本文介绍了共享库的用例以及如何在多个git存储库中使用Jenkins。
https://bjurr.com/managing-1000-repos-in-jenkins-with-a-breeze/
答案 1 :(得分:0)
由于我们的网络基础架构,我无法使用webhook来触发jenkins,但现在使用的解决方案是我为每个回购创建了一个运行程序,并编写了curl命令来触发jenkins,因此每次对每个仓库的新提交,跑步者将开始一项新工作,执行curl命令并触发我的詹金斯工作。
这是我在有人需要时使用的curl命令:
curl -i -X POST --user [JENKINS_USERNAME]:[JENKINS_PASSWORD] 'http://[JENKINS_IP]:[JENKINS_PORT]/job/[JENKINS_JOB_NAME]/build?token=[TOKEN_GENERATED_INSIDE_JENKINS]&cause=[ADDITIONAL_INFORMATION_THAT_YOU_WANT_TO_PRINT]'