我安装了Promoted Build Plugin
来自 Jenkins
现在我在从现有工作中推广构建时遇到了一些麻烦。这是场景:
Nightly Build
每天晚上运行的作业,运行所需的所有测试和指标; Deploy Build
接受参数 ${BUILD_NUMBER} 并部署具有来自 Nightly Build
的相应 ${BUILD_NUMBER} 的构建Build Promotions
的部分...Nightly Build #39
(注意它之前已经建好了)来自 Deploy Build
?或者甚至可能来自其他地方,坦率地说,我在这里迷路了:( 最佳答案
参数化触发器插件 2.23 版更新:
版本 2.23+ behavior changed (感谢 AbhijeetKamble 指出)。 传递的任何参数预定义参数 调用 ( 构建 ) 作业的部分必须存在于被调用的 ( 部署 ) 作业中。此外,被调用的作业参数的限制适用,所以如果被调用的作业的参数是选择 ,它必须预先填充所有可能的值(来自促销)。或者直接使用 正文 参数类型。
解决方案
是的,我有完全相同的设置:构建作业(基于 SVN 提交)和手动执行的部署作业。当用户从构建作业中选择任何构建(包括较旧的构建)时,他们可以转到 促销状态 链接并执行各种部署推广,例如部署到 DEV、部署到 QA 等
以下是在构建作业上设置促销的方法:
Server=IP_of_my_dev_server`
Job=$PROMOTED_JOB_NAME`
BuildSelection=<SpecificBuildSelector><buildNumber>$PROMOTED_NUMBER</buildNumber></SpecificBuildSelector>
Server
, Job
和 BuildSelection
.Server=
是我自己的,因为我的部署作业可以部署到多台服务器。但是,如果您的部署作业被硬编码为始终部署到特定位置,则您将不需要它。Job=
参数是必需的,但参数的名称取决于您在部署作业中设置的内容(我将在那里解释配置)。值 $PROMOTED_JOB_NAME
必须保持原样。这是提升过程知道的环境变量,并引用回构建作业的名称(配置提升过程的名称)BuildSelection=
参数是必需的。这整条线必须保持原样。传递的值为 $PROMOTED_NUMBER
,这再次宣传是知道的。在您的示例中,它将是 #39
.Server
(此名称必须与上一节中促销 预定义参数 中的配置匹配)Job
(此名称必须与上一节中促销 预定义参数 中的配置匹配)Job=
来自 预定义参数 我们配置)。此外,如果没有从促销的 传递的值预定义参数 ,将使用第一个选择值。如果构建和部署作业之间存在一对一的关系,则可以省略 Job=
促销配置中的参数。 BuildSelection
${Job}
Specified by a build parameter
BuildSelection
(没有 ${...}
!)https://stackoverflow.com/questions/15126059/