@Override public void evaluate() throws Throwable { Map<String,String> slaveEnv = new HashMap<String,String>(); slaveEnv.put("BUILD_TAG", null); slaveEnv.put("PERMACHINE", "set"); createSpecialEnvSlave(story.j, "slave", null, slaveEnv); p = jenkins().createProject(WorkflowJob.class, "demo"); p.setDefinition(new CpsFlowDefinition("node('slave') {\n" + " if (isUnix()) {sh 'echo tag=$BUILD_TAG PERMACHINE=$PERMACHINE'} else {bat 'echo tag=%BUILD_TAG% PERMACHINE=%PERMACHINE%'}\n" + " env.BUILD_TAG='custom'\n" + " if (isUnix()) {sh 'echo tag2=$BUILD_TAG'} else {bat 'echo tag2=%BUILD_TAG%'}\n" + " env.STUFF='more'\n" + " semaphore 'env'\n" + " env.BUILD_TAG=\"${env.BUILD_TAG}2\"\n" + " if (isUnix()) {sh 'echo tag3=$BUILD_TAG stuff=$STUFF'} else {bat 'echo tag3=%BUILD_TAG% stuff=%STUFF%'}\n" + " if (isUnix()) {env.PATH=\"/opt/stuff/bin:${env.PATH}\"} else {env.PATH=$/c:\\whatever;${env.PATH}/$}\n" + " if (isUnix()) {sh 'echo shell PATH=$PATH'} else {bat 'echo shell PATH=%PATH%'}\n" + " echo \"groovy PATH=${env.PATH}\"\n" + " echo \"simplified groovy PATH=${PATH}\"\n" + "}", true)); startBuilding(); SemaphoreStep.waitForStart("env/1", b); assertTrue(b.isBuilding()); } });
@Override public void evaluate() throws Throwable { p = jenkins().createProject(WorkflowJob.class, "demo"); p.setDefinition(new CpsFlowDefinition("semaphore 'wait'", false)); startBuilding(); SemaphoreStep.waitForStart("wait/1", b); assertTrue(b.isBuilding()); liveness(); } });
@Override public void evaluate() throws Throwable { p = jenkins().createProject(WorkflowJob.class, "demo"); p.setDefinition(new CpsFlowDefinition( "int count=0;\n" + "retry(3) {\n" + " semaphore 'wait'\n" + " if (count++ < 2) {\n" + // forcing retry " error 'died'\n" + " }\n" + "}", false)); startBuilding(); SemaphoreStep.waitForStart("wait/1", b); assertTrue(b.isBuilding()); } });
@Override public void evaluate() throws Throwable { jenkins().setSecurityRealm(story.j.createDummySecurityRealm()); jenkins().save(); QueueItemAuthenticatorConfiguration.get().getAuthenticators().add(new MockQueueItemAuthenticator(Collections.singletonMap("demo", User.getById("someone", true).impersonate()))); p = jenkins().createProject(WorkflowJob.class, "demo"); p.setDefinition(new CpsFlowDefinition("checkAuth()", false)); ScriptApproval.get().preapproveAll(); startBuilding(); waitForWorkflowToSuspend(); assertTrue(b.isBuilding()); story.j.waitForMessage("running as someone", b); CheckAuth.finish(false); waitForWorkflowToSuspend(); assertTrue(b.isBuilding()); story.j.waitForMessage("still running as someone", b); } });