在构建完成后手动失败

jau*_*tin 5 jenkins

在构建完成后是否可以为构建设置构建结果?

我找不到任何已经做到这一点的插件,我正在考虑自己编写,但我想看看这是否有可能在走这条路之前.

(我已经看过现有的代码以及"失败的构建"插件如何作为一个例子,但我对Jenkins代码库的理解还不够先进,无法理解所有可能性.)

用例:我们有一个构建管道,在管道的末端附近有一个deploy-to-qa步骤,可以将工件部署到QA环境.我们在此步骤之前进行了自动化测试以尝试捕获工件的任何问题,但是我们的测试覆盖率在某些区域并不是很高,因此错误仍然可以通过裂缝.我希望能够在事后标记部署到qa的构建为FAILED,以表示该特定管道无效且不是生产发布的候选者.(基本上与此Build Pipeline插件问题相同)

jau*_*tin 3

经过对代码的更多研究,我相信这是不可能的。

hudson.model.Run

public void setResult(Result r) {
    // state can change only when we are building
    assert state==State.BUILDING;

    // snip
    ...
}
Run Code Online (Sandbox Code Playgroud)

因此,除非处于“构建”状态,否则构建结果不会改变。

我可以尝试使用 lastSuccessful 和 lastStable 符号链接(正如delete()中的函数所做的那样hudson.model.AbstractBuild),但是一旦 Jenkins 重新加载来自 的构建结果,这些符号链接就会被重置jobs/JOBNAME/builds/