From 088a84095a97595a366142ff894f30b6d052de53 Mon Sep 17 00:00:00 2001 From: Artur Harasimiuk Date: Tue, 11 Jun 2019 01:51:32 +0200 Subject: [PATCH 1/2] Added EXECUTOR_COUNT to environment variables --- .../support/steps/ExecutorStepExecution.java | 1 + .../plugins/workflow/EnvWorkflowTest.java | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStepExecution.java b/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStepExecution.java index 0bf7aad5..626f799c 100644 --- a/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStepExecution.java +++ b/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStepExecution.java @@ -758,6 +758,7 @@ private final class PlaceholderExecutable implements ContinuableExecutable, Acce env.put("NODE_NAME", label); } env.put("EXECUTOR_NUMBER", String.valueOf(exec.getNumber())); + env.put("EXECUTOR_COUNT", String.valueOf(computer.countExecutors())); env.put("NODE_LABELS", Util.join(node.getAssignedLabels(), " ")); synchronized (runningTasks) { diff --git a/src/test/java/org/jenkinsci/plugins/workflow/EnvWorkflowTest.java b/src/test/java/org/jenkinsci/plugins/workflow/EnvWorkflowTest.java index 3ee092c2..c16ff2bd 100644 --- a/src/test/java/org/jenkinsci/plugins/workflow/EnvWorkflowTest.java +++ b/src/test/java/org/jenkinsci/plugins/workflow/EnvWorkflowTest.java @@ -100,6 +100,29 @@ public class EnvWorkflowTest { r.assertLogContains("My number on a slave is 0", r.assertBuildStatusSuccess(p.scheduleBuild2(0))); } + /** + * Verifies if EXECUTOR_COUNT environemn variable is set + */ + @Test public void isExecutorCountAvailable() throws Exception { + r.jenkins.setNumExecutors(2); + r.createSlave("node-test", null, null); + WorkflowJob p = r.jenkins.createProject(WorkflowJob.class, "workflow-test"); + + p.setDefinition(new CpsFlowDefinition( + "node('master') {\n" + + " echo \"My number on master is ${env.EXECUTOR_COUNT}\"\n" + + "}\n" + )); + r.assertLogContains("My number on master is 2", r.assertBuildStatusSuccess(p.scheduleBuild2(0))); + + p.setDefinition(new CpsFlowDefinition( + "node('node-test') {\n" + + " echo \"My number on a slave is ${env.EXECUTOR_COUNT}\"\n" + + "}\n" + )); + r.assertLogContains("My number on a slave is 1", r.assertBuildStatusSuccess(p.scheduleBuild2(0))); + } + @Issue("JENKINS-33511") @Test public void isWorkspaceAvailable() throws Exception { WorkflowJob p = r.jenkins.createProject(WorkflowJob.class, "p"); From 448e96ba238f2787165ccb00c1136808aabf40f1 Mon Sep 17 00:00:00 2001 From: Artur Harasimiuk Date: Tue, 11 Jun 2019 20:57:31 +0200 Subject: [PATCH 2/2] Fixed typo in comment Signed-off-by: Artur Harasimiuk --- .../java/org/jenkinsci/plugins/workflow/EnvWorkflowTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/jenkinsci/plugins/workflow/EnvWorkflowTest.java b/src/test/java/org/jenkinsci/plugins/workflow/EnvWorkflowTest.java index c16ff2bd..c281a7d9 100644 --- a/src/test/java/org/jenkinsci/plugins/workflow/EnvWorkflowTest.java +++ b/src/test/java/org/jenkinsci/plugins/workflow/EnvWorkflowTest.java @@ -101,7 +101,7 @@ public class EnvWorkflowTest { } /** - * Verifies if EXECUTOR_COUNT environemn variable is set + * Verifies if EXECUTOR_COUNT environment variable is set */ @Test public void isExecutorCountAvailable() throws Exception { r.jenkins.setNumExecutors(2);