如何使用 Jenkins 参数化构建?

Posted

技术标签:

【中文标题】如何使用 Jenkins 参数化构建?【英文标题】:How to use Jenkins parameterized builds? 【发布时间】:2013-09-30 05:45:00 【问题描述】:

Jenkins 允许您对构建进行参数化,但我不知道如何实际使用它:

假设我通常会像这样从命令行启动我的 Ant 构建:

ant -buildfile /path/to/my/build.xml -DpackageType=jar package

这将调用build.xmlpackage 目标,并为其提供一个名为packageType 的属性,其值为jar

我假设在上面的屏幕截图中,Name 字段是我指定packageType 的位置,但值呢?

    如果 Jenkins 要我为属性指定一个默认值,那么我应该在哪里指定我的项目正在使用的值?例如,我可能想要war默认值,但让这个 Jenkins 作业传入 jar 的值(以覆盖默认值)。 另外,Jenkins 所说的“...允许用户保存输入实际值。”是什么意思?哪个用户?无论如何,您会在哪里输入值?

提前致谢!

【问题讨论】:

【参考方案1】:

每当用户在 Jenkins 中配置参数化构建时,参数名称都会被视为环境变量

用户可以通过环境变量使用这些参数。

例如,在您的情况下,如果 packageType 是您要传递的参数,

然后将名称指定为 packageType 并将值指定为 war

您可以在所需的脚本中使用它作为 %packageType%(用于 Batch)或 $packageType(用于 shell)

配置作业后,每当您单击立即构建按钮时,Jenkins都会提示输入参数

当你使用文件参数时,上传的文件会被放到工作目录中

【讨论】:

啊,这对我来说将所有内容联系在一起:Jenkins 在构建时提示您。现在说得通了——谢谢! 从 Jenkins “Execute Shell”,我能够通过 $FOOBAR 访问 String Parameter 的值,其中 FOOBAR 是构建参数。使用 %FOOBAR% 对我不起作用。 %PARAM% 用于批处理,$PARAM 用于外壳

以上是关于如何使用 Jenkins 参数化构建?的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins参数化构建之 Maven command line使用Jenkins参数

Jenkins 远程参数化构建始终使用默认参数值而不是传递的参数值

如何访问参数化构建中的参数?

Jenkins的参数化构建

Jenkins的参数化构建

技术分享 | Jenkins 如何参数化job ?