diff --git a/core/src/main/java/hudson/cli/BuildCommand.java b/core/src/main/java/hudson/cli/BuildCommand.java index a69008f0c32f005c8456f7d9346a9d68b23eb50a..232d7c6728f129bad7bd37b1cff8914eaa2d6ef4 100644 --- a/core/src/main/java/hudson/cli/BuildCommand.java +++ b/core/src/main/java/hudson/cli/BuildCommand.java @@ -131,8 +131,19 @@ public class BuildCommand extends CLICommand { } } - QueueTaskFuture f = job.scheduleBuild2(0, new CLICause(Jenkins.getAuthentication().getName()), a); + if (!job.isBuildable()) { + String msg = Messages.BuildCommand_CLICause_CannotBuildUnknownReasons(job.getFullDisplayName()); + if (job.isDisabled()) { + msg = Messages.BuildCommand_CLICause_CannotBuildDisabled(job.getFullDisplayName()); + } else if (job.isHoldOffBuildUntilSave()){ + msg = Messages.BuildCommand_CLICause_CannotBuildConfigNotSaved(job.getFullDisplayName()); + } + stderr.println(msg); + return -1; + } + QueueTaskFuture f = job.scheduleBuild2(0, new CLICause(Jenkins.getAuthentication().getName()), a); + if (wait || sync) { AbstractBuild b = f.waitForStart(); // wait for the start stdout.println("Started "+b.getFullDisplayName()); diff --git a/core/src/main/java/hudson/model/Job.java b/core/src/main/java/hudson/model/Job.java index c444c2d2a19b33cd3a2f4ea40183359e7fca24ec..aef474184ac66d21114e69e82c51c22bac4a1069 100644 --- a/core/src/main/java/hudson/model/Job.java +++ b/core/src/main/java/hudson/model/Job.java @@ -254,7 +254,7 @@ public abstract class Job, RunT extends Run