我有一个Jenkins管道,它有多个阶段,例如:
node("nodename") {
stage("Checkout") {
git ....
}
stage("Check Preconditions") {
...
if(!continueBuild) {
// What do I put here? currentBuild.xxx ?
}
}
stage("Do a lot of work") {
....
}
}
Run Code Online (Sandbox Code Playgroud)
如果不满足某些先决条件并且没有实际工作要做,我希望能够取消(而不是失败)构建.我怎样才能做到这一点?我知道currentBuild变量可用,但我找不到它的文档.
是否有API来确定给定作业当前是否正在运行?
理想情况下,我还希望能够确定其估计完成百分比并获取SVN修订号的详细信息并提交评论!
编辑:
我找到了答案.http://host/job/project/lastBuild/api/在某个地方几乎拥有我需要的所有东西!如果您启动手动构建,它将不会告诉您SCM更改集,但这是有道理的.它仍然告诉你最新的SCM修订版,所以这很好.总而言之,这对我的目的来说足够好了.
我在Jenkins有一个提交构建项目,它在完成时安排一个验收构建项目.由于提交的速度比接受构建作业完成的速度快,因此在短时间后,现在有六个排队的接受构建作业.我希望验收构建项目像"Poll SCM"功能一样工作 - 完成后,启动最近排队的作业,跳过其余部分.
因为我需要将提交构建作业中的信息传递给接受构建作业,所以我不能使用"构建其他项目之后构建"而不需要更多黑客攻击.