use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.
the class GerritTriggerTest method build_is_triggered_after_ref_is_updated.
@Test
public void build_is_triggered_after_ref_is_updated() {
GerritTriggerNewServer newServer = new GerritTriggerNewServer(jenkins);
newServer.saveNewTestServerConfigIfNone(gtHostname);
GerritTriggerServer server = new GerritTriggerServer(jenkins, gtHostname);
server.saveTestServerConfig(gtHostname, gtGerritFrontUrl, gtGerrituser, gtPrivateKey);
Job j = jenkins.jobs.create(FreeStyleJob.class);
String jobName = j.name;
GerritTriggerJob job = new GerritTriggerJob(jenkins, jobName);
job.saveTestJobConfig(GerritTriggerJob.EventToTriggerOn.RefUpdated, gtHostname, gtProject);
try {
pushChangeToGerritNotForReview(jobName);
Build b = new Build(j, j.getNextBuildNumber());
assertTrue(b.waitUntilFinished().isSuccess());
elasticSleep(10000);
} catch (InterruptedException | IOException e) {
fail(e.getMessage());
}
}
use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.
the class GerritTriggerTest method gerrit_trigger_build_when_changes_merged.
@Test
public void gerrit_trigger_build_when_changes_merged() {
GerritTriggerNewServer newServer = new GerritTriggerNewServer(jenkins);
newServer.saveNewTestServerConfigIfNone(gtHostname);
GerritTriggerServer server = new GerritTriggerServer(jenkins, gtHostname);
server.saveTestServerConfig(gtHostname, gtGerritFrontUrl, gtGerrituser, gtPrivateKey);
Job j = jenkins.jobs.create(FreeStyleJob.class);
String jobName = j.name;
GerritTriggerJob job = new GerritTriggerJob(jenkins, jobName);
job.saveTestJobConfig(GerritTriggerJob.EventToTriggerOn.ChangeMerged, gtHostname, gtProject);
try {
String changeId = pushChangeForMerge(jobName);
changes.add(changeId);
Build b = new Build(j, j.getNextBuildNumber());
assertTrue(b.waitUntilFinished().isSuccess());
elasticSleep(10000);
ProcessBuilder gerritQuery = new ProcessBuilder("ssh", "-p", "29418", "-i", gtPrivateKey, gtGerrituser + "@" + gtHostname, "gerrit", "query", "change_id=" + changeId, "--all-approvals", "--format JSON");
String json = removeLastLine(stringFrom(logProcessBuilderIssues(gerritQuery, "gerrit query")));
checkApprovalValueFromJSON(json, "Verified", 1);
checkApprovalValueFromJSON(json, "Code-Review", 1);
} catch (InterruptedException | IOException e) {
fail(e.getMessage());
}
}
use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.
the class JavadocPluginTest method validate_javadoc_retention.
@Test
public void validate_javadoc_retention() {
FreeStyleJob job = jenkins.jobs.create();
setup(job);
Build b = job.startBuild().shouldSucceed();
assertThat(job, hasAction(JAVADOC_ACTION));
assertThat("Build #1 should not have Javadoc action", b, not(hasAction(JAVADOC_ACTION)));
this.setupForRetention(job);
b = job.startBuild().shouldSucceed();
assertThat(job, hasAction(JAVADOC_ACTION));
assertThat(b, hasAction(JAVADOC_ACTION));
}
use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.
the class CredentialsBindingTest method testTextBinding.
@Test
public void testTextBinding() {
CredentialsPage mc = new CredentialsPage(jenkins, ManagedCredentials.DEFAULT_DOMAIN);
mc.open();
StringCredentials cred = mc.add(StringCredentials.class);
cred.scope.select("GLOBAL");
cred.secret.set(SECRET_TEXT);
mc.create();
FreeStyleJob job = jenkins.jobs.create();
job.configure();
job.check("Use secret text(s) or file(s)");
ManagedCredentialsBinding mcb = new ManagedCredentialsBinding(job);
SecretStringCredentialsBinding cb = mcb.addCredentialBinding(SecretStringCredentialsBinding.class);
cb.variable.set("BINDED_SECRET");
ShellBuildStep shell = job.addBuildStep(ShellBuildStep.class);
shell.command("if [ \"$BINDED_SECRET\" = \"" + SECRET_TEXT + "\" ] \n then \n echo \"" + SECRET_OUTPUT + "\" \n fi");
job.save();
Build b = job.scheduleBuild();
b.shouldSucceed();
assertThat(b.getConsole(), containsString(SECRET_OUTPUT));
}
use of org.jenkinsci.test.acceptance.po.Build in project acceptance-test-harness by jenkinsci.
the class DeclarativePipelineTest method basicDeclarativeTests.
@WithPlugins("pipeline-model-definition")
@Test
public void basicDeclarativeTests() throws Exception {
WorkflowJob helloWorldJob = jenkins.jobs.create(WorkflowJob.class);
helloWorldJob.script.set("pipeline {\n" + " agent none\n" + " stages {\n" + " stage('foo') {\n" + " steps {\n" + " echo 'Hello world'\n" + " }\n" + " }\n" + " }\n" + "}\n");
helloWorldJob.sandbox.check();
helloWorldJob.save();
Build helloWorldBuild = helloWorldJob.startBuild().shouldSucceed();
assertThat(helloWorldBuild.getConsole(), containsRegexp("Hello world", Pattern.MULTILINE));
MavenInstallation.installMaven(jenkins, "M3", "3.1.0");
final DumbSlave slave = (DumbSlave) slaveController.install(jenkins).get();
slave.configure(new Callable<Void>() {
@Override
public Void call() throws Exception {
slave.labels.set("remote");
return null;
}
});
WorkflowJob toolsEnvAgentJob = jenkins.jobs.create(WorkflowJob.class);
toolsEnvAgentJob.script.set("pipeline {\n" + " agent { label 'remote' }\n" + " tools {\n" + " maven 'M3'\n" + " }\n" + " environment {\n" + " FOO = 'BAR'\n" + " }\n" + " stages {\n" + " stage('first') {\n" + " steps {\n" + " sh 'mvn --version'\n" + " }\n" + " }\n" + " stage('second') {\n" + " steps {\n" + " echo \"FOO is ${env.FOO}\"\n" + " }\n" + " }\n" + " }\n" + "}\n");
toolsEnvAgentJob.sandbox.check();
toolsEnvAgentJob.save();
Build toolsEnvAgentBuild = toolsEnvAgentJob.startBuild().shouldSucceed();
String toolsEnvAgentConsole = toolsEnvAgentBuild.getConsole();
assertThat(toolsEnvAgentConsole, containsRegexp("\\(first\\)", Pattern.MULTILINE));
assertThat(toolsEnvAgentConsole, containsRegexp("Apache Maven 3\\.1\\.0", Pattern.MULTILINE));
assertThat(toolsEnvAgentConsole, containsRegexp("\\(second\\)", Pattern.MULTILINE));
assertThat(toolsEnvAgentConsole, containsRegexp("FOO is BAR", Pattern.MULTILINE));
WorkflowJob missingAgentJob = jenkins.jobs.create(WorkflowJob.class);
missingAgentJob.script.set("pipeline {\n" + " stages {\n" + " stage('foo') {\n" + " steps {\n" + " echo 'Hello world'\n" + " }\n" + " }\n" + " }\n" + "}\n");
missingAgentJob.sandbox.check();
missingAgentJob.save();
Build missingAgentBuild = missingAgentJob.startBuild().shouldFail();
String missingAgentConsole = missingAgentBuild.getConsole();
assertThat(missingAgentConsole, containsRegexp("Missing required section ['\"]agent['\"]"));
assertThat(missingAgentConsole, not(containsRegexp("Hello world")));
WorkflowJob missingToolVersionJob = jenkins.jobs.create(WorkflowJob.class);
missingToolVersionJob.script.set("pipeline {\n" + " agent { label 'remote' }\n" + " tools {\n" + " maven 'some-other-version'\n" + " }\n" + " environment {\n" + " FOO = 'BAR'\n" + " }\n" + " stages {\n" + " stage('first') {\n" + " steps {\n" + " sh 'mvn --version'\n" + " }\n" + " }\n" + " stage('second') {\n" + " steps {\n" + " echo \"FOO is ${env.FOO}\"\n" + " }\n" + " }\n" + " }\n" + "}\n");
missingToolVersionJob.sandbox.check();
missingToolVersionJob.save();
Build missingToolVersionBuild = missingToolVersionJob.startBuild().shouldFail();
String missingToolVersionConsole = missingToolVersionBuild.getConsole();
assertThat(missingToolVersionConsole, containsRegexp("Tool type ['\"]maven['\"] does not have an install of ['\"]some-other-version['\"] configured"));
assertThat(missingToolVersionConsole, not(containsRegexp("FOO is BAR")));
}
Aggregations