jenkins - 如何从没有 jenkinsfile 的存储库触发 Jenkins 管道构建?

标签 jenkins jenkins-pipeline jenkinsfile

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

我想要做的是创建多个 Jenkinsfiles,每个文件都为不同的目标配置和构建 Qt 库,或者运行不同的附加脚本。
所有这些 Jenkinsfiles 将被收集在不同的存储库中。

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

研究离开了我 - 据我所知,据 to these posts - 有两个选项:

  • 将两个存储库添加到定义部分 - 大致如下:
    enter image description here
    不幸的是,这对我不起作用,因为两个存储库仍然需要一个 Jenkinsfile。此外,我无法为每个存储库指定不同的分支,因此我无法监听特定的 Qt 版本分支。
  • 我看到的第二个(好吧,可能是唯一的)选项是创建一个自由式 Jenkins 作业,该作业仅监听 Qt 存储库并在更改时触发管道作业的构建作为其唯一操作。

  • 我认为,第二种方法对我有用,但我想知道的是,是否有任何插件、配置选项或我遗漏的任何可以以更清晰的方式解决此问题的方法,或者上述方法是否适用做吧。

    最佳答案

    为什么不创建一个使用常规“Poll SCM”方法监视 QT 存储库的 Jenkins 自由式作业?

    然后让 Freestyle 工作启动您的一项或多项 Jenkins 管道工作。

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

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

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

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

    相关文章:

    jenkins - InfluxDB Jenkins管道插件: Target was null

    groovy - 如何知道哪个用户在 Jenkinsfile 中运行构建

    docker - 为什么我的Docker构建无法在jenkins代理上失败?

    jenkins - 当我添加Windows从节点时,我的jenkins中没有 "Launch agent via Java Web Start"选项

    java - Jenkins Windows Slave JNLP 连接错误

    java - 如何在 Jenkins 上设置 LD_LIBRARY_PATH

    Jenkins文件,检查Globals变量是否存在

    jenkins - 如何在同一个 Jenkins 节点中加载另一个 groovy 脚本?

    groovy - 在 groovy 编译器异常的情况下,try/catch/finally 会掩盖 Jenkinsfile 问题

    本地 Jenkins 服务器上的 Github Webhook