【发布时间】:2015-03-25 02:31:46
【问题描述】:
我使用 Jenkins 作为服务器来运行以其他作业成功为条件的 cron 作业。这些可以作为多个执行 shell 步骤运行。我特别想知道是否有办法使执行 shell 步骤取决于前一个执行 shell 步骤的退出状态。
【问题讨论】:
-
你可以使用 $?状态作为每个命令的循环条件作为迭代.. 例如:
while $? -eq 0 ; exec command.
我使用 Jenkins 作为服务器来运行以其他作业成功为条件的 cron 作业。这些可以作为多个执行 shell 步骤运行。我特别想知道是否有办法使执行 shell 步骤取决于前一个执行 shell 步骤的退出状态。
【问题讨论】:
while $? -eq 0 ; exec command.
这是默认行为。每个构建步骤,例如 "Execute Shell" 步骤,都会返回一个退出代码(最后一个命令)。如果那是0,则执行下一个构建步骤。如果不是0,Jenkins 会“失败”构建,并直接跳到构建后的步骤。
如果您的 shell 在成功时返回 0,而其他一切都失败了,只需将几个“执行 Shell”构建步骤一个接一个地放置。
【讨论】: