2

我将 Jenkins 项目 B 配置为在项目 A 成功完成时运行。

如何在项目 B 管道中找到 A 的内部版本号?

4

2 回答 2

4

如果您只需要 A 的最后一个成功构建,您可以从 Jenkins 中读取它:

http://JenkinsMaster:Port/job/MyJob/lastSuccessfulBuild/buildNumber

如果您需要构建触发的 B,您可以使用参数化触发器插件并使用:TRIGGERED_BUILD_NUMBER_MyJob="触发的最后构建号"

于 2016-05-22T11:31:23.340 回答
1

您可以执行以下操作:

  1. 在项目 A 的构建过程中,使用执行 windows 批处理执行 shell构建步骤将构建版本存储在文件中 - 例如来自 windows 批处理:

    echo "VARIABLEA=%BUILD_NUMBER%" > %WORKSPACE%\myartifact.properties:
    
  2. 使用Archive the artifacts post build 步骤将文件针对项目 A 中的构建存储

  3. 在项目 B 开始时,使用Copy artifacts from another project build 步骤,指向项目 A 并使用Artifacts to copy字段过滤到您创建的文件,然后选择Last successful build for which build字段
  4. 在项目 A 的构建期间读取 shell 脚本中的文件以获取内部版本号

如果您以以下格式输出工件:

    VARIABLEA=${BUILD_NUMBER} 
    VARIABLEB=${BUILD_NUMBER} 

并且您在 Jenkins 服务器上使用 Linux,您可以使用source命令使 VARIABLEA 和 VARIABLEB 在该 shell 会话中可用,例如:

    source "${WORKSPACE}/myartifact.properties"
    echo ${VARIABLEA}

然后,您可以在 shell 脚本中使用该变量执行某些操作。


或者,您可以在项目 A 上简单地在其他项目的构建后步骤(我认为需要参数化触发器插件)上使用触发器参数化构建,并设置项目 B 以接受这些参数。

于 2016-05-20T18:28:39.843 回答