我有一个不包含Jenkinsfile的存储库-我无法影响存储库本身。这意味着我既不能在资源库中添加任何文件,也不能在资源库中更改任何文件(在本例中为Qt repo)。

我想做的是创建多个Jenkinsfile,分别为一个不同的目标配置和构建Qt库,或者运行不同的其他脚本。
所有这些Jenkinsfiles将收集在不同的存储库中。

现在,我的问题是如何创建管道作业,一旦Qt存储库中发生更改,该作业就会被触发,但是会使用另一个存储库中的Jenkinsfile。

据我所知,根据to these posts的研究,我离开了我,留下了两个选择:

  • 将两个存储库都添加到“定义”部分-类似以下内容:
    jenkins - 如何从没有jenkinsfile的存储库中触发Jenkins管道构建?-LMLPHP
    不幸的是,这对我不起作用,因为两个存储库仍需要一个Jenkinsfile。此外,我无法为每个存储库指定不同的分支,因此无法监听特定的Qt版本分支。
  • 我看到的第二个(很可能是唯一的)选项是创建一个自由样式的Jenkins作业,该作业仅监听Qt存储库,并在更改时触发构建管道作业,这是其唯一的 Action 。

  • 我认为,第二种方法对我有用,但是我想知道的是,是否有任何插件,配置选项或我错过的任何东西可以用一种更干净的方式解决,或者以上是否是解决问题的方法做吧。

    最佳答案

    为什么不使用常规的“Poll SCM”方法创建一个Jenkins Freestyle Job来监视QT repo ?

    然后让Freestyle作业启动一个或多个Jenkins管道作业。

    您将使管道作业指向管道“jenkinsFile” groovy脚本所在的SCM(您控制的存储库)。

    在管道代码中,您可以使用管道SCM DSL步骤从Qt存储库(不受您控制的代码)中提取代码,然后进行所有构建,测试或其他操作。

    您可以将Qt Repo的URL和修订版作为轮询作业的参数传递到管道中。

    关于jenkins - 如何从没有jenkinsfile的存储库中触发Jenkins管道构建?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41116169/

    10-14 19:36
    查看更多