private long getNextBuildNumber(@Nonnull Object entry) { if (entry instanceof Queue.Item) { Queue.Task task = ((Queue.Item) entry).task; if (task instanceof Job) { return ((Job) task).getNextBuildNumber(); } } else if (entry instanceof Run) { return ((Run) entry).getParent().getNextBuildNumber(); } // TODO maybe this should be an error? return HistoryPageEntry.getEntryId(entry) + 1; }
@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)); } } } } }
/** * Get the URL of the first declared repository in the project configuration. * Use this as default source repository url. * * @return URIish the default value of the source repository url * @throws IllegalStateException Project does not use git scm. */ private URIish getSourceRepoURLDefault(Job<?, ?> job) { SCMTriggerItem item = SCMTriggerItem.SCMTriggerItems.asSCMTriggerItem(job); GitSCM gitSCM = getGitSCM(item); if (gitSCM == null) { LOGGER.log(Level.WARNING, "Could not find GitSCM for project. Project = {1}, next build = {2}", array(job.getName(), String.valueOf(job.getNextBuildNumber()))); throw new IllegalStateException("This project does not use git:" + job.getName()); } return getFirstRepoURL(gitSCM.getRepositories()); }
RunMap<RunT> _builds = createBuildRunMap(); int max = _builds.maxNumberOnDisk(); int next = asJob().getNextBuildNumber(); if (next <= max) { LOGGER.log(Level.WARNING, "JENKINS-27530: improper nextBuildNumber {0} detected in {1} with highest build number {2}; adjusting", new Object[] {next, asJob(), max});
/** * Get the URL of the first declared repository in the project configuration. * Use this as default source repository url. * * @return URIish the default value of the source repository url * @throws IllegalStateException Project does not use git scm. */ private URIish getSourceRepoURLDefault(Job<?, ?> job) { SCMTriggerItem item = SCMTriggerItem.SCMTriggerItems.asSCMTriggerItem(job); GitSCM gitSCM = getGitSCM(item); if (gitSCM == null) { LOGGER.log(Level.WARNING, "Could not find GitSCM for project. Project = {1}, next build = {2}", array(job.getName(), String.valueOf(job.getNextBuildNumber()))); throw new IllegalStateException("This project does not use git:" + job.getName()); } return getFirstRepoURL(gitSCM.getRepositories()); }
public int superGetNextBuildNumber() { return super.getNextBuildNumber(); }
private long getNextBuildNumber(@Nonnull Object entry) { if (entry instanceof Queue.Item) { Queue.Task task = ((Queue.Item) entry).task; if (task instanceof Job) { return ((Job) task).getNextBuildNumber(); } } else if (entry instanceof Run) { return ((Run) entry).getParent().getNextBuildNumber(); } // TODO maybe this should be an error? return HistoryPageEntry.getEntryId(entry) + 1; }
/** * @return true if the build should be part of the graph. */ /* package */boolean reportBuild(int buildNumber) { int buildsNumber; try { buildsNumber = Integer.parseInt(this.numBuilds); } catch (NumberFormatException ex) { // Report all builds buildsNumber = Integer.MAX_VALUE; } return buildNumber >= project.getNextBuildNumber() - buildsNumber && (keepRecords || project.getBuildByNumber(buildNumber) != null); } }
@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)); } } } } }
@Override @Exported public int getNextBuildNumber() { initPython(); if (pexec.isImplemented(14)) { return pexec.execPythonInt("get_next_build_number"); } else { return super.getNextBuildNumber(); } }
public void run() { if (runPolling()) { GitHubPushCause cause; try { cause = new GitHubPushCause(getLogFile(), pushBy); } catch (IOException e) { LOGGER.warn("Failed to parse the polling log", e); cause = new GitHubPushCause(pushBy); } if (asParameterizedJobMixIn(job).scheduleBuild(cause)) { LOGGER.info("SCM changes detected in " + job.getFullName() + ". Triggering #" + job.getNextBuildNumber()); } else { LOGGER.info("SCM changes detected in " + job.getFullName() + ". Job is already in the queue"); } } } });
RunMap<RunT> _builds = createBuildRunMap(); int max = _builds.maxNumberOnDisk(); int next = asJob().getNextBuildNumber(); if (next <= max) { LOGGER.log(Level.WARNING, "JENKINS-27530: improper nextBuildNumber {0} detected in {1} with highest build number {2}; adjusting", new Object[] {next, asJob(), max});
public void run() { if (runPolling()) { String name = " #"+job.getNextBuildNumber(); BitBucketPushCause cause; try { cause = new BitBucketPushCause(getLogFile(), pushBy); } catch (IOException e) { LOGGER.log(Level.WARNING, "Failed to parse the polling log",e); cause = new BitBucketPushCause(pushBy); } ParameterizedJobMixIn pJob = new ParameterizedJobMixIn() { @Override protected Job asJob() { return job; } }; BitBucketPayload bitBucketPayload = new BitBucketPayload(payload); pJob.scheduleBuild2(5, new CauseAction(cause), bitBucketPayload); if (pJob.scheduleBuild(cause)) { LOGGER.info("SCM changes detected in "+ job.getName()+". Triggering "+ name); } else { LOGGER.info("SCM changes detected in "+ job.getName()+". Job is already in the queue"); } } }
@Override public void onStarted(Run<?, ?> build, TaskListener listener) { final Job<?, ?> project = build.getParent(); if (project.getNextBuildNumber() <= 2) { super.onStarted(build, listener); return;
dependenciesMessage + ", invocation rejected."); } else { listener.getLogger().println("[withMaven] downstreamPipelineTriggerRunListener - Triggering downstream pipeline " + ModelHyperlinkNote.encodeTo(downstreamJob) + "#" + downstreamJob.getNextBuildNumber() + " due to dependency on " + dependenciesMessage + " ...");
} else { triggeredPipelines.add(downstreamJobFullName); logger.log(Level.FINE, "Triggering downstream pipeline " + logger.modelHyperlinkNoteEncodeTo(downstreamJob) + "#" + downstreamJob.getNextBuildNumber() + " due to dependency on " + dependenciesMessage + " ...");
final Job job = (Job) project; final int quietPeriod = scmTriggerItem.getQuietPeriod(); final String targetUrl = job.getAbsoluteUrl() + job.getNextBuildNumber();