【问题标题】:Run Nant script as a Jenkins post build action将 Nant 脚本作为 Jenkins 后期构建操作运行
【发布时间】:2023-11-26 20:15:01
【问题描述】:

是否可以将 Nant 脚本作为 Jenkins 构建后操作运行?

我可以选择将脚本作为构建步骤运行,而不是作为构建操作。是否有任何特定的插件可以启用此选项。

我正在寻找此功能的原因是我需要运行一个依赖于 ArtifactDeployer 构建后操作的脚本。如果我在构建步骤中指定代码,它将在 ArtifactDeployer 之前执行并且构建失败

【问题讨论】:

    标签: jenkins hudson nant jenkins-plugins hudson-plugins


    【解决方案1】:

    您可以使用Post Build Task Plugin

    编辑

    如果无法使用此插件,获取内部版本号的一种方法是使用Groovy Post Build Plugin

    使用它,您可以执行 groovy 代码作为构建后操作,获取构建号并执行 NAnt

    内部版本号可从以下属性访问

    manager.build.number

    【讨论】:

    • 感谢这项工作。但我无法在此脚本中使用构建变量 ($BUILD_NUMBER)。知道如何在后期构建脚本中访问它们
    • 这很奇怪,环境变量 BUILD_NUMBER 应该可以工作(在 *nix 机器中使用 $BUILD_NUMBER 访问,在 Windows 中使用 %BUILD_NUMBER% 访问),你能重新检查一下吗?您是否有机会使用升级的构建插件?如果是这样,变量名应该是 PROMOTED_NUMBER
    • 我现在正在检查。是否也可以访问自定义变量?由于 BUILD_NUMBER 是 Jenkins 固有的,所以我还有另一个不属于 Jenkins 的值
    • %BUILD_NUMBER% 不起作用。我从 nant 脚本中回显了它。我猜这些值仅适用于构建步骤,而不适用于后期构建 [echo] Build Number: %BUILD_NUMBER%
    • 嗯,我明白了,我已经用不同的方法更新了我的答案,看看
    【解决方案2】:

    构建后操作 -> 在构建成功或失败后执行一组脚本运行。我的经验表明,它仅有时在构建中止时运行。

    如上所述,构建后操作 -> 构建后任务(通过命名的发布任务插件)始终被评估为运行(无论构建退出状态如何)。通过日志中的短语(“构建已中止”)进行的其他设置对我来说很可靠。

    我的问题是即使在中止的构建上运行某些东西,并且构建后任务解决了这个问题。

    【讨论】: