我有一个不包含詹金斯文件 https://jenkins.io/doc/book/pipeline/jenkinsfile/- 而且我无法影响存储库本身。这意味着我既不能向存储库添加也不能更改任何文件(在本例中,它是Qt repo http://code.qt.io/cgit/qt/qt5.git/).
我想要做的是创建多个 Jenkinsfile,每个文件都为不同的目标配置和构建 Qt 库,或者运行不同的附加脚本。
所有这些 Jenkins 文件将收集在不同的存储库中。
现在,我的问题是如何创建一个管道作业,一旦 Qt 存储库中发生更改,该作业就会被触发,但使用其他存储库中的 Jenkinsfile。
研究离开了我——据我所知和根据to https://stackoverflow.com/questions/16538198/jenkins-multiple-git-repositories-for-one-project these https://stackoverflow.com/questions/38821362/jenkins-pipeline-code-auto-trigger-with-multiple-repositories-through-github-org posts https://stackoverflow.com/questions/24391572/how-can-i-make-a-jenkins-build-for-a-github-repository-be-triggered-by-a-push-to- 有两个选项:
Adding both repositories to the Definition section - something along the lines of this:
Unfortunately, this does not work for me, as both repositories would still need a Jenkinsfile. Further, I cannot specify a different branch for each repository, so I cannot listen to a specific Qt Version branch.
我看到的第二个(嗯,可能是唯一的)选项是创建一个自由式 Jenkins 作业,它仅监听 Qt 存储库并在更改时触发管道作业的构建作为其唯一操作。
我认为第二种方法对我有用,但我想知道是否有任何插件、配置选项或我错过的任何东西可以以更干净的方式解决这个问题,或者上述是否是解决问题的方法做吧。
为什么不创建一个 Jenkins Freestyle 作业来使用常规的“轮询 SCM”方法来监视 QT 存储库?
然后让 Freestyle 工作启动您的一项或多项 Jenkins 管道工作。
您将使管道作业指向管道“jenkinsFile”groovy 脚本所在的 SCM(您控制的存储库)。
在管道代码内部,您可以使用管道 SCM DSL 步骤从 Qt 存储库(不受您控制的存储库)中提取代码,然后执行所有构建、测试或其他操作。
您可以将 Qt Repo 的 URL 和修订版本作为轮询作业的参数传递到管道中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)