@Override public StringParameterValue getDefaultParameterValue() { return new StringParameterValue(getName(), defaultValue == null ? choices.get(0) : defaultValue, getDescription()); }
@Override public String toString() { return "(StringParameterValue) " + getName() + "='" + value + "'"; }
@Override public ParameterValue createValue(StaplerRequest req, JSONObject jo) { StringParameterValue value = req.bindJSON(StringParameterValue.class, jo); if (isTrim() && value!=null) { value.doTrim(); } value.setDescription(getDescription()); return value; }
@Override public StringParameterValue getDefaultParameterValue() { StringParameterValue value = new StringParameterValue(getName(), defaultValue, getDescription()); if (isTrim()) { value.doTrim(); } return value; }
private void addBuildParameter(AbstractBuild<?, ?> build) { if (!CollectionUtils.isEmpty(this.latestBaselines)) { ArrayList<ParameterValue> parameters = new ArrayList<ParameterValue>(); String baselineName = latestBaselines.get(0); parameters.add(new StringParameterValue(ENV_CC_BASELINE_NAME, baselineName)); build.addAction(new ParametersAction(parameters)); } }
@Override public void evaluate() throws Throwable { WorkflowJob p = story.j.jenkins.createProject(WorkflowJob.class, "p"); p.addProperty(new ParametersDefinitionProperty(new StringParameterDefinition("param", ""))); p.setDefinition(new CpsFlowDefinition("echo \"run with ${param}\"", true)); WorkflowRun b1 = story.j.assertBuildStatusSuccess(p.scheduleBuild2(0, new ParametersAction(new StringParameterValue("param", "some value")))); story.j.assertLogContains("run with some value", b1); // When we replay a parameterized build, we expect the original parameter values to be set. WorkflowRun b2 = (WorkflowRun) b1.getAction(ReplayAction.class).run("echo \"run again with ${param}\"", Collections.<String,String>emptyMap()).get(); story.j.assertLogContains("run again with some value", story.j.assertBuildStatusSuccess(b2)); } });
@Bug(4271) @Test public void parameterizedBuildsBranch() throws Exception { m.hg(repo, "init"); m.touchAndCommit(repo, "trunk"); m.hg(repo, "update", "null"); m.hg(repo, "branch", "b"); m.touchAndCommit(repo, "variant"); FreeStyleProject p = j.createFreeStyleProject(); p.setScm(new MercurialSCM(hgInstallation(), repo.getPath(), "${BRANCH}", null, null, null, false)); // SECURITY-170 - have to use ParametersDefinitionProperty p.addProperty(new ParametersDefinitionProperty(new StringParameterDefinition("BRANCH", "b"))); String log = m.buildAndCheck(p, "variant", new ParametersAction( new StringParameterValue("BRANCH", "b"))); assertTrue(log, log.contains("--rev b")); assertFalse(log, log.contains("--rev ${BRANCH}")); m.touchAndCommit(repo, "further-variant"); // the following assertion commented out as a part of the fix to // HUDSON-6126 // assertTrue(pollSCMChanges(p)); m.buildAndCheck(p, "further-variant", new ParametersAction( new StringParameterValue("BRANCH", "b"))); }
@Issue("JENKINS-22568") @Test @Ignore("TODO use docker-fixtures for a reproducible test case") public void pollingWithDefaultParametersWithCurlyBraces() throws Exception { FreeStyleProject p = r.createFreeStyleProject(); String repo = "https://svn.jenkins-ci.org/"; String path = "trunk/hudson/test-projects/trivial-ant/"; p.setScm(new SubversionSCM("${REPO}" + path)); ParametersDefinitionProperty property = new ParametersDefinitionProperty(new StringParameterDefinition("REPO", repo)); p.addProperty(property); FreeStyleBuild b = p.scheduleBuild2(0, new Cause.UserIdCause(), new ParametersAction(new StringParameterValue("REPO", repo))).get(); r.assertBuildStatus(Result.SUCCESS,b); assertTrue(b.getWorkspace().child("build.xml").exists()); // as a baseline, this shouldn't detect any change TaskListener listener = r.createTaskListener(); PollingResult poll = p.poll(listener); assertFalse("Polling shouldn't have any changes.", poll.hasChanges()); }
@Override public StringParameterValue getDefaultParameterValue() { StringParameterValue v = new StringParameterValue(getName(), defaultValue, getDescription()); return v; }
@Issue("JENKINS-45455") @Test public void parametersAndRestart() throws Exception { // Initial build passes - we mainly just want it to add the parameters. WorkflowRun original = expect("restart", "parametersAndRestart").go(); WorkflowJob p = original.getParent(); WorkflowRun failing = p.scheduleBuild2(0, new ParametersAction(new BooleanParameterValue("flag", false), new StringParameterValue("someParam", "changed"))).waitForStart(); j.assertBuildStatus(Result.FAILURE, j.waitForCompletion(failing)); HtmlPage redirect = restartFromStageInUI(failing, "restart"); assertNotNull(redirect); assertEquals(p.getAbsoluteUrl(), redirect.getUrl().toString()); j.waitUntilNoActivity(); WorkflowRun b3 = p.getBuildByNumber(3); assertNotNull(b3); j.assertBuildStatusSuccess(b3); j.assertLogContains("Odd numbered build, success", b3); j.assertLogContains("Stage \"pre-restart\" skipped due to this build restarting at stage \"restart\"", b3); j.assertLogContains("Flag is false", b3); j.assertLogContains("someParam is changed", b3); j.assertLogContains("otherParam is should not change", b3); j.assertLogNotContains("hello on non-restart", b3); }
@Override protected int run() throws Exception { Run r = getCurrentlyBuilding(); r.checkPermission(Run.UPDATE); StringParameterValue p = new StringParameterValue(name, value); ParametersAction a = r.getAction(ParametersAction.class); if (a!=null) { r.replaceAction(a.createUpdated(Collections.singleton(p))); } else { r.addAction(new ParametersAction(p)); } return 0; } }
WorkflowJob p = scheduleAndFindBranchProject(mp, "master"); assertEquals(1, mp.getItems().size()); r.waitUntilNoActivity(); WorkflowRun b1 = p.getLastBuild(); assertEquals(1, b1.getNumber()); r.assertLogContains("received default value", b1); WorkflowRun b2 = r.assertBuildStatusSuccess(p.scheduleBuild2(0, new ParametersAction(new StringParameterValue("myparam", "special value")))); assertEquals(2, b2.getNumber()); r.assertLogContains("received special value", b2); assertEquals(3, b3.getNumber()); r.assertLogContains("enabled? false", b3); WorkflowRun b4 = r.assertBuildStatusSuccess(p.scheduleBuild2(0, new ParametersAction(new BooleanParameterValue("flag", true)))); assertEquals(4, b4.getNumber()); r.assertLogContains("enabled? true", b4); assertEquals(6, b6.getNumber()); r.assertLogContains("value foo", b6); WorkflowRun b7 = r.assertBuildStatusSuccess(p.scheduleBuild2(0, new ParametersAction(new StringParameterValue("select", "bar", "")))); assertEquals(7, b7.getNumber()); r.assertLogContains("value bar", b7); assertEquals(8, b8.getNumber()); r.assertLogContains("value foo", b8); WorkflowRun b9 = r.assertBuildStatusSuccess(p.scheduleBuild2(0, new ParametersAction(new StringParameterValue("select", "bar", "")))); assertEquals(9, b9.getNumber()); r.assertLogContains("value bar", b9);
private static ParametersAction getVersionParameterAction(AbstractBuild build, String version) { ParameterValue value = new StringParameterValue(PipelineVersionContributor.VERSION_PARAMETER, version); ParametersAction action = build.getAction(ParametersAction.class); if (action != null) { List<ParameterValue> parameters = new ArrayList<>(action.getParameters()); parameters.add(value); return new ParametersAction(parameters); } return new ParametersAction(value); }
@Test @Ignore("TODO use docker-fixtures for a reproducible test case") public void urlWithVariable() throws Exception { FreeStyleProject p = r.createFreeStyleProject(); // --- 1st case: URL with a variable --- String repo = "https://svn.jenkins-ci.org"; String path = "/trunk/hudson/test-projects/trivial-maven/src/test/java/test"; p.setScm(new SubversionSCM("$REPO" + path)); FreeStyleBuild b = p.scheduleBuild2(0, new Cause.UserIdCause(), new ParametersAction(new StringParameterValue("REPO", repo))).get(); System.out.println(b.getLog(LOG_LIMIT)); r.assertBuildStatus(Result.SUCCESS,b); assertTrue(b.getWorkspace().child("AppTest.java").exists()); // --- 2nd case: URL with an empty variable --- p.setScm(new SubversionSCM(repo + path + "$EMPTY_VAR")); b = p.scheduleBuild2(0, new Cause.UserIdCause(), new ParametersAction(new StringParameterValue("EMPTY_VAR", ""))).get(); r.assertBuildStatus(Result.SUCCESS,b); assertTrue(b.getWorkspace().child("AppTest.java").exists()); }
private List<ParameterValue> getParametersValues(final Job job, final String branch) { final ParametersDefinitionProperty paramDefProp = (ParametersDefinitionProperty) job.getProperty(ParametersDefinitionProperty.class); final ArrayList<ParameterValue> defValues = new ArrayList<>(); for (final ParameterDefinition paramDefinition : paramDefProp.getParameterDefinitions()) { if ("BRANCH".equals(paramDefinition.getName())) { final StringParameterValue branchParam = new StringParameterValue("BRANCH", branch); defValues.add(branchParam); } else { final ParameterValue defaultValue = paramDefinition.getDefaultParameterValue(); if (defaultValue != null) defValues.add(defaultValue); } } return defValues; }
triggerWithEscapeQuotesOn.createParameters(eventWithQuotes, project); ParameterValue strPara = new StringParameterValue(GERRIT_CHANGE_SUBJECT.name(), stringWithQuotesEscaped); verify(changeWithQuotes, times(1)).getSubject(); assertEquals(strPara, paremetersAction.getParameter(GERRIT_CHANGE_SUBJECT.name())); strPara = new StringParameterValue(GERRIT_CHANGE_SUBJECT.name(), stringWithoutQuotes); verify(changeWithoutQuotes, times(1)).getSubject(); assertEquals(strPara, paremetersAction.getParameter(GERRIT_CHANGE_SUBJECT.name()));
this.build.getAction(hudson.model.ParametersAction.class); for (ParameterValue value : action.getParameters()) { map.put(value.getName(), value); StringParameterValue spv = (StringParameterValue) pv; modLst.add(new StringParameterDefinition(spv.getName(), spv.value));
StringParameterValue value = new StringParameterValue(getName(), valueResult); value.setDescription(getDescription()); return value; StringParameterValue value = new StringParameterValue(getName(), valueResult); value.setDescription(getDescription()); return value;
for(ParameterValue pv: pa.getParameters()) { pv.buildEnvironment(run, otherEnv); if (!Objects.equals(spv.getValue(), otherEnv.get(spv.getName()))) { return false;
@Override public ParameterValue createValue(StaplerRequest req, JSONObject jo) { StringParameterValue value = req.bindJSON(StringParameterValue.class, jo); value.setDescription(getDescription()); return value; }