@Override public void onCheckout(Run<?,?> build, SCM scm, FilePath workspace, TaskListener listener, File changelogFile, SCMRevisionState pollingBaseline) throws Exception { if (build instanceof WorkflowRun && pollingBaseline != null) { WorkflowJob job = ((WorkflowRun) build).getParent(); if (job.pollingBaselines == null) { job.pollingBaselines = new ConcurrentHashMap<>(); } job.pollingBaselines.put(scm.getKey(), pollingBaseline); } } }
public static String of(WorkflowRun build) { if (build == null) { return null; } return build.getParent().getFullName(); }
@Override public boolean hasAbortPermission() { return run.getParent().hasAbortPermission(); }
@Override public void checkAbortPermission() { run.getParent().checkAbortPermission(); }
@Override public Label getAssignedLabel() { return run.getParent().getAssignedLabel(); }
@Override public Node getLastBuiltOn() { return run.getParent().getLastBuiltOn(); }
Owner(WorkflowRun run) { job = run.getParent().getFullName(); id = run.getId(); this.run = run; } private String key() {
private String key() { return getParent().getFullName() + '/' + getId(); }
@Override public void onStarted(WorkflowRun workflowRun, TaskListener listener) { WorkflowJob parent = workflowRun.getParent(); JiraSite site = JiraSite.get(parent); if (site != null) { try { setAction(parent, site); } catch (IOException e) { LOGGER.log(Level.WARNING, "Could not set JiraJobAction for <" + parent.getFullName() + ">", e); } } } }
private static int progressOfStage(WorkflowRun build, Stage currentStage) throws PipelineException { Run previousRun = workflowApi.lastFinishedRunFor(build.getParent()); if (previousRun == null || !previousRun.hasStage(currentStage.name)) { return 99; } long stageStartTime = currentStage.startTimeMillis.getMillis(); long estimatedStageDuration = Stage.getDurationOfStageFromRun(previousRun, currentStage); return Progress.calculate(stageStartTime, estimatedStageDuration); } }
@Override public void onDeleted(WorkflowRun run) { globalPipelineMavenConfig.getDao().deleteBuild(run.getParent().getFullName(), run.getNumber()); }
private static Stage getStage(WorkflowRun build, FlowNode stageStartNode) throws PipelineException { List<Run> runs = workflowApi.getRunsFor(build.getParent()); Run run = getRunById(runs, build.getNumber()); Stage stage = run.getStageByName(stageStartNode.getDisplayName()); if (stage == null) { throw new PipelineException("Could not resolve stage " + stageStartNode.getDisplayName() + " for pipeline " + build.getDisplayName()); } return stage; }
@Override public void onInitialize(WorkflowRun run) { super.onInitialize(run); for (Cause cause: run.getCauses()) { if (cause instanceof Cause.UpstreamCause) { Cause.UpstreamCause upstreamCause = (Cause.UpstreamCause) cause; String upstreamJobName = upstreamCause.getUpstreamProject(); int upstreamBuildNumber = upstreamCause.getUpstreamBuild(); globalPipelineMavenConfig.getDao().recordBuildUpstreamCause(upstreamJobName, upstreamBuildNumber, run.getParent().getFullName(), run.getNumber()); } } }
@Ignore("jira-step pulls in dependencies that break form submission, so...ignore this test. We know it's fine now anyway.") @Issue("JENKINS-48115") @Test public void disableConcurrentBuilds() throws Exception { WorkflowRun b = expect("disableConcurrentBuilds") .go(); WorkflowJob p = b.getParent(); DisableConcurrentBuildsJobProperty prop = p.getProperty(DisableConcurrentBuildsJobProperty.class); assertNotNull(prop); }
@Issue("JENKINS-51227") @Test public void quietPeriod() throws Exception { WorkflowRun b = expect("quietPeriod") .logContains("hello") .go(); WorkflowJob p = b.getParent(); assertNotNull(p); assertEquals(15, p.getQuietPeriod()); }
@Issue("JENKINS-44149") @Test public void paramsRemoved() throws Exception { WorkflowRun b = getAndStartNonRepoBuild("simpleParameters"); j.assertBuildStatusSuccess(j.waitForCompletion(b)); WorkflowJob job = b.getParent(); ParametersDefinitionProperty paramProp = job.getProperty(ParametersDefinitionProperty.class); assertNotNull(paramProp); assertEquals(1, paramProp.getParameterDefinitions().size()); job.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("propsTriggersParamsRemoved"), true)); j.buildAndAssertSuccess(job); assertNull(job.getProperty(ParametersDefinitionProperty.class)); }
@Issue("JENKINS-44149") @Test public void triggersRemoved() throws Exception { WorkflowRun b = getAndStartNonRepoBuild("simpleTriggers"); j.assertBuildStatusSuccess(j.waitForCompletion(b)); WorkflowJob job = b.getParent(); PipelineTriggersJobProperty triggersJobProperty = job.getProperty(PipelineTriggersJobProperty.class); assertNotNull(triggersJobProperty); assertEquals(1, triggersJobProperty.getTriggers().size()); job.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("propsTriggersParamsRemoved"), true)); j.buildAndAssertSuccess(job); assertNull(job.getProperty(PipelineTriggersJobProperty.class)); }
@Issue("JENKINS-46252") @Test public void declarativeJobAction() throws Exception { WorkflowRun r1 = expect("simplePipeline").go(); WorkflowJob j1 = r1.getParent(); assertNotNull(j1.getAction(DeclarativeJobAction.class)); WorkflowJob j2 = j.createProject(WorkflowJob.class, "nonDeclarative"); j2.setDefinition(new CpsFlowDefinition("echo 'hi'", true)); j.buildAndAssertSuccess(j2); assertNull(j2.getAction(DeclarativeJobAction.class)); }
@Issue("JENKINS-44149") @Test public void propsRemoved() throws Exception { WorkflowRun b = getAndStartNonRepoBuild("simpleJobProperties"); j.assertBuildStatusSuccess(j.waitForCompletion(b)); WorkflowJob job = b.getParent(); assertNotNull(job.getProperty(BuildDiscarderProperty.class)); job.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("propsTriggersParamsRemoved"), true)); j.buildAndAssertSuccess(job); assertNull(job.getProperty(BuildDiscarderProperty.class)); }
@Issue("JENKINS-51227") @Test public void quietPeriodRemoved() throws Exception { WorkflowRun b = getAndStartNonRepoBuild("quietPeriod"); j.assertBuildStatusSuccess(j.waitForCompletion(b)); WorkflowJob job = b.getParent(); assertEquals(15, job.getQuietPeriod()); job.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("propsTriggersParamsRemoved"), true)); j.buildAndAssertSuccess(job); assertEquals(j.jenkins.getQuietPeriod(), job.getQuietPeriod()); }