我有一个漫长的 Jenkins 工作,但构建后操作失败。
如何在不重新运行整个作业的情况下重复运行构建后操作?
如果不能将作业分成 2 个作业,您可以考虑
https://wiki.jenkins-ci.org/display/JENKINS/Promoted+Builds+Plugin
(我相信这是预装的 Jenkins)。这将使“促销”步骤成为一个单独且可重复的过程。您可以将其配置为在构建后自动运行,然后在需要时按需手动运行。
如果您的后期构建步骤需要访问构建工件,您将需要使用https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin将构建工件复制到促销工作区。
另一种解决方案是根据参数跳过构建步骤。有一个名为SkipBuild的选择参数或其他东西。将可能的值设置为 TRUE/FALSE,默认为 FALSE
在您的构建步骤中,在实际构建之前,检查SkipBuild是否设置为 TRUE。如果为 TRUE,则退出 0,如果为 FALSE(默认),则运行 build 命令。
这样,自动构建执行将始终运行构建步骤。但您也可以手动运行构建并选择“SkipBuild=TRUE”以跳过构建步骤并直接进行构建后操作。如果您需要跳过一些构建后操作,则还需要在此处实现此SkipBuild参数。
但是要小心,因为构建的后续执行,即使使用“SkipBuild=TRUE”仍将执行 SVN 检出,因此您的工作区可能会改变。
根据您的构建步骤,您可能能够“跳过”它们。
例如,我的构建步骤是 powershell 和 windows 批处理文件。
如果我想跳过一个步骤,我只需将“exit 0”添加为 powershell 或批处理命令的第一行。
请注意,这仍会导致其他预构建步骤,例如运行工作区清理和 scm 签出。
根据动作是什么,一个粗略的选择可能只是将其拆分为一个独立的作业,由原始作业触发。这样,您就可以自由地手动重新运行它。
要在两个作业之间共享工件或工作区,我会想到以下插件: