Jenkins如何从下游找到上游构建的内部版本号

时间:2015-07-31 09:21:26

标签: jenkins continuous-integration

我在詹金斯有两份工作:

  1. 作业A:构建源代码+运行单元测试,由SCM更改触发。这很快。它本身并没有触发任何东西

  2. 作业B:构建安装程序。这需要一些时间。它是通过监视成功构建的作业A("构建其他项目之后的构建")来触发的。 它使用来自作业A的工件。

  3. 当单个作业B正在运行时,可能会发生多个作业A构建。

    Job A #1 -> triggers Job B #1
                      |
    Job A #2          |
                      |
    Job A #3  -.      ` Job B #1 finishes
                `-> triggers Job B #2
    Job A #4          |
                      |
    Job A #5          |
     |                ` Job B #2 finishes
      `-----------> triggers job B #3
    

    我的问题是:如何确定A的构建数量是否触发了某个B的构建数量,因此在作业B中我可以从作业A的确切构建中复制工件?

    复制神器'插件允许指定特定的内部版本号,但我从哪里获取它?

3 个答案:

答案 0 :(得分:5)

执行此操作的最简单,最便宜的方法之一: 您可以使用Parametrized Build pluginA ${BUILD_NUMBER}环境变量传递给B。例如,在B中定义PARENT_BUILD_NUMBER变量,从PARENT_BUILD_NUMBER=$BUILD_NUMBERA定义B

答案 1 :(得分:4)

当然,选项就在Copy Artifact插件中......

enter image description here

答案 2 :(得分:1)

这对我有用,无需使用curl / ruby​​插件。您可能需要生成API密钥并将其传递给身份验证。

package.json

查看信息,它包含您从上游工作中获得的所有信息。