@Override public void onCompleted(@Nonnull Run r, @Nonnull TaskListener listener) { Collection<ReverseBuildTrigger> triggers; synchronized (this) { if (upstream2Trigger == null) { upstream2Trigger = calculateCache(); } Collection<ReverseBuildTrigger> _triggers = upstream2Trigger.get(r.getParent()); if (_triggers == null || _triggers.isEmpty()) { return; } triggers = new ArrayList<>(_triggers); } for (final ReverseBuildTrigger trigger : triggers) { if (trigger.shouldTrigger(r, listener)) { if (!trigger.job.isBuildable()) { listener.getLogger().println(hudson.tasks.Messages.BuildTrigger_Disabled(ModelHyperlinkNote.encodeTo(trigger.job))); continue; } String name = ModelHyperlinkNote.encodeTo(trigger.job) + " #" + trigger.job.getNextBuildNumber(); if (ParameterizedJobMixIn.scheduleBuild2(trigger.job, -1, new CauseAction(new Cause.UpstreamCause(r))) != null) { listener.getLogger().println(hudson.tasks.Messages.BuildTrigger_Triggering(name)); } else { listener.getLogger().println(hudson.tasks.Messages.BuildTrigger_InQueue(name)); } } } } }
continue; if (!downstream.isBuildable()) { // some other reason; no API to retrieve cause logger.println(Messages.BuildTrigger_NotBuildable(ModelHyperlinkNote.encodeTo(downstream))); continue;
if (!job.isBuildable()) { String msg = Messages.BuildCommand_CLICause_CannotBuildUnknownReasons(job.getFullDisplayName()); if (job instanceof ParameterizedJobMixIn.ParameterizedJob && ((ParameterizedJobMixIn.ParameterizedJob) job).isDisabled()) {
public boolean apply(Job job) { return job != null && job.isBuildable(); } };
public boolean apply(ITEM item) { return item instanceof Job ? ((Job<?, ?>) item).isBuildable() : item instanceof BuildableItem; } };
public static Predicate<Item> isBuildable() { return item -> nonNull(item) && item instanceof Job && ((Job) item).isBuildable(); }
@Override public boolean hasPermission(String sid, Permission p, RoleType type, AccessControlled item, Macro macro) { if (Job.class.isAssignableFrom(item.getClass())) { Job job = (Job)item; return job.isBuildable(); } else { return false; } }
public GhprbRepository getRepository() { if (this.repository == null && super.job != null && super.job.isBuildable()) { try { this.initState(); } catch (IOException e) { LOGGER.log(Level.SEVERE, "Unable to init trigger state!", e); } } return this.repository; }
/** * Checks if the project is buildable. * The method also takes the security implications from {@link QueueItemAuthenticator} into account. * @param job Job to be checked * @return true if the job can be scheduled from the */ protected boolean canBeScheduled(@Nonnull Job<?, ?> job) { if (!job.isBuildable()) { return false; } return job.hasPermission(Item.BUILD); }
/** * Can be useful to ignore disabled jobs on reregistering hooks * * @return predicate with true on apply if item is buildable */ public static <ITEM extends Item> Predicate<ITEM> isBuildable() { return item -> { if (item instanceof Job) { return ((Job) item).isBuildable(); } else if (item instanceof ComputedFolder) { return ((ComputedFolder) item).isBuildable(); } return item instanceof BuildableItem; }; }
public boolean isActive() { String name = super.job != null ? super.job.getFullName() : "NOT STARTED"; boolean isActive = true; if (super.job == null) { LOGGER.log(Level.FINE, "Project was never set, start was never run"); isActive = false; } else if (!super.job.isBuildable()) { LOGGER.log(Level.FINE, "Project is disabled, ignoring trigger run call for job {0}", name); isActive = false; } else if (getRepository() == null) { LOGGER.log(Level.SEVERE, "The ghprb trigger for {0} wasn''t properly started - repository is null", name); isActive = false; } return isActive; }
/* accessible to Jelly */ public boolean isRebuildEnabled() { if (!run.hasPermission(Item.BUILD)) { return false; } if (!run.getParent().isBuildable()) { return false; } return true; }
@Override public String getUrlName() { Job project = getProject(); if (project == null) { return null; } boolean isBuildable = project.isBuildable(); boolean hasCompletedBuild = project.getLastCompletedBuild() != null; if (isBuildable) { if (hasCompletedBuild) { return "lastCompletedBuild/rebuild"; } else { return "build?delay=0sec"; } } else { return null; } }
@Override public void run() { Job<?,?> job = this.getBuilder().getJob(); String name = job.getFullName(); if (!job.isBuildable()) { logger.log(Level.FINE, "Build Skip for job - {0}.", name); } else { logger.log(Level.FINE, "running trigger for the job - {0}", name); pool.submit(new TriggerRunnable(this.getBuilder())); this.getDescriptor().save(); } }
/** * Called periodically by the GerritTriggerTimer according to its schedule. */ @Override public void run() { GerritTrigger trigger = getGerritTrigger(); if (trigger == null) { return; } if (StringUtils.isEmpty(trigger.getTriggerConfigURL())) { return; } if (trigger.getJob() != null && !trigger.getJob().isBuildable()) { return; } trigger.updateTriggerConfigURL(); }
/** * Method for checking,whether the rebuild functionality would be available * for build. * * @return boolean */ public boolean isRebuildAvailable() { Job project = getProject(); return project != null && project.hasPermission(Item.BUILD) && project.isBuildable() && project instanceof Queue.Task && !isMatrixRun() && !isRebuildDisabled(); }
@Override public void run() { if(!this.getBuilder().getJob().isBuildable()) { logger.info(format("Build Skip (%s).", getBuilder().getJob().getName())); } else { logger.info(format("Build started (%s).", getBuilder().getJob().getName())); this.stashPullRequestsBuilder.run(); } this.getDescriptor().save(); }
@Exported public boolean isRestartEnabled() { ExecutionModelAction executionModelAction = run.getAction(ExecutionModelAction.class); return executionModelAction != null && !run.isBuilding() && run.hasPermission(Item.BUILD) && run.getParent().isBuildable() && getExecution() != null; }
/** * Retriggers one build in a set of many. * * @param project the project to retrigger. * @param event the event. * @see #retriggerAllBuilds(com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.TriggerContext) */ private void retrigger(Job project, GerritTriggeredEvent event) { if (project.isBuildable()) { initializeProvider(event); if (!silentMode) { ToGerritRunListener listener = ToGerritRunListener.getInstance(); if (listener != null) { listener.onRetriggered(project, event, null); } } GerritUserCause cause = new GerritUserCause(event, silentMode); schedule(cause, event, project); } }
/* accessible to Jelly */ public boolean isEnabled() { if (!run.hasPermission(REPLAY)) { return false; } if (!run.getParent().isBuildable()) { return false; } CpsFlowExecution exec = getExecutionLazy(); if (exec != null) { return exec.isSandbox() || Jenkins.get().hasPermission(Jenkins.RUN_SCRIPTS); // We have to check for ADMIN because un-sandboxed code can execute arbitrary on-master code } else { // If the execution hasn't been lazy-loaded then we will wait to do deeper checks until someone tries to lazy load // OR until isReplayableSandboxTest is invoked b/c they actually try to replay the build return true; } }