我将 Jenkins 项目 B 配置为在项目 A 成功完成时运行。
如何在项目 B 管道中找到 A 的内部版本号?
如果您只需要 A 的最后一个成功构建,您可以从 Jenkins 中读取它:
http://JenkinsMaster:Port/job/MyJob/lastSuccessfulBuild/buildNumber
如果您需要构建触发的 B,您可以使用参数化触发器插件并使用:TRIGGERED_BUILD_NUMBER_MyJob="触发的最后构建号"
您可以执行以下操作:
在项目 A 的构建过程中,使用执行 windows 批处理或执行 shell构建步骤将构建版本存储在文件中 - 例如来自 windows 批处理:
echo "VARIABLEA=%BUILD_NUMBER%" > %WORKSPACE%\myartifact.properties:
使用Archive the artifacts post build 步骤将文件针对项目 A 中的构建存储
如果您以以下格式输出工件:
VARIABLEA=${BUILD_NUMBER}
VARIABLEB=${BUILD_NUMBER}
并且您在 Jenkins 服务器上使用 Linux,您可以使用source命令使 VARIABLEA 和 VARIABLEB 在该 shell 会话中可用,例如:
source "${WORKSPACE}/myartifact.properties"
echo ${VARIABLEA}
然后,您可以在 shell 脚本中使用该变量执行某些操作。
或者,您可以在项目 A 上简单地在其他项目的构建后步骤(我认为需要参数化触发器插件)上使用触发器参数化构建,并设置项目 B 以接受这些参数。