如何从多个存储库触发詹金斯管道
How to trigger a jenkins pipeline from multiple repository
我对 jenkins 比较陌生,我正在从事一个从多个回购中提取构建的大项目。我用 shell 命令编写了一个声明性管道,我使用它从所需的回购中提取并构建项目,一切正常,但我想将这个管道连接到所有这些回购,所以每次有新的提交或合并请求,触发 jenkins 并启动此管道,然后根据构建结果标记 git。我知道如何为一个回购做到这一点,但我不知道如何为多个回购做到这一点。
如果您有多个应该触发 Jenkins 构建的存储库,则相应的存储库需要有 Jenkinsfiles。
关键是每个存储库都应该调用 JenkinsSharedLibrary,这使您可以在一个中央源中维护您的 jenkins 构建,而不是每个存储库有多个 "hardcoded" jenkinsfiles。
本文介绍了共享库的用例以及如何跨多个 git 存储库使用 Jenkins。
https://bjurr.com/managing-1000-repos-in-jenkins-with-a-breeze/
由于我们的网络基础设施,我无法使用 webhook 来触发 jenkins,但我现在使用的解决方案是为每个 repo 创建一个运行器,我编写了一个 curl 命令来触发 jenkins,所以每次都有是对每个 repos 的新提交,runner 开始新工作,执行 curl 命令并触发我的 jenkins 工作。
这是我正在使用的 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]'
我对 jenkins 比较陌生,我正在从事一个从多个回购中提取构建的大项目。我用 shell 命令编写了一个声明性管道,我使用它从所需的回购中提取并构建项目,一切正常,但我想将这个管道连接到所有这些回购,所以每次有新的提交或合并请求,触发 jenkins 并启动此管道,然后根据构建结果标记 git。我知道如何为一个回购做到这一点,但我不知道如何为多个回购做到这一点。
如果您有多个应该触发 Jenkins 构建的存储库,则相应的存储库需要有 Jenkinsfiles。
关键是每个存储库都应该调用 JenkinsSharedLibrary,这使您可以在一个中央源中维护您的 jenkins 构建,而不是每个存储库有多个 "hardcoded" jenkinsfiles。
本文介绍了共享库的用例以及如何跨多个 git 存储库使用 Jenkins。
https://bjurr.com/managing-1000-repos-in-jenkins-with-a-breeze/
由于我们的网络基础设施,我无法使用 webhook 来触发 jenkins,但我现在使用的解决方案是为每个 repo 创建一个运行器,我编写了一个 curl 命令来触发 jenkins,所以每次都有是对每个 repos 的新提交,runner 开始新工作,执行 curl 命令并触发我的 jenkins 工作。
这是我正在使用的 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]'