Search in sources :

Example 66 with Build

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());
    }
}
Also used : GerritTriggerNewServer(org.jenkinsci.test.acceptance.plugins.gerrit_trigger.GerritTriggerNewServer) GerritTriggerServer(org.jenkinsci.test.acceptance.plugins.gerrit_trigger.GerritTriggerServer) Build(org.jenkinsci.test.acceptance.po.Build) GerritTriggerJob(org.jenkinsci.test.acceptance.plugins.gerrit_trigger.GerritTriggerJob) IOException(java.io.IOException) Job(org.jenkinsci.test.acceptance.po.Job) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) GerritTriggerJob(org.jenkinsci.test.acceptance.plugins.gerrit_trigger.GerritTriggerJob) AbstractJUnitTest(org.jenkinsci.test.acceptance.junit.AbstractJUnitTest) Test(org.junit.Test)

Example 67 with Build

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());
    }
}
Also used : GerritTriggerNewServer(org.jenkinsci.test.acceptance.plugins.gerrit_trigger.GerritTriggerNewServer) GerritTriggerServer(org.jenkinsci.test.acceptance.plugins.gerrit_trigger.GerritTriggerServer) Build(org.jenkinsci.test.acceptance.po.Build) GerritTriggerJob(org.jenkinsci.test.acceptance.plugins.gerrit_trigger.GerritTriggerJob) IOException(java.io.IOException) Job(org.jenkinsci.test.acceptance.po.Job) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) GerritTriggerJob(org.jenkinsci.test.acceptance.plugins.gerrit_trigger.GerritTriggerJob) AbstractJUnitTest(org.jenkinsci.test.acceptance.junit.AbstractJUnitTest) Test(org.junit.Test)

Example 68 with Build

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));
}
Also used : Build(org.jenkinsci.test.acceptance.po.Build) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) AbstractJUnitTest(org.jenkinsci.test.acceptance.junit.AbstractJUnitTest) Test(org.junit.Test)

Example 69 with Build

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));
}
Also used : SecretStringCredentialsBinding(org.jenkinsci.test.acceptance.plugins.credentialsbinding.SecretStringCredentialsBinding) ManagedCredentialsBinding(org.jenkinsci.test.acceptance.plugins.credentialsbinding.ManagedCredentialsBinding) CredentialsPage(org.jenkinsci.test.acceptance.plugins.credentials.CredentialsPage) Build(org.jenkinsci.test.acceptance.po.Build) StringCredentials(org.jenkinsci.test.acceptance.plugins.credentials.StringCredentials) ShellBuildStep(org.jenkinsci.test.acceptance.po.ShellBuildStep) FreeStyleJob(org.jenkinsci.test.acceptance.po.FreeStyleJob) AbstractJUnitTest(org.jenkinsci.test.acceptance.junit.AbstractJUnitTest) Test(org.junit.Test)

Example 70 with Build

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")));
}
Also used : Build(org.jenkinsci.test.acceptance.po.Build) WorkflowJob(org.jenkinsci.test.acceptance.po.WorkflowJob) DumbSlave(org.jenkinsci.test.acceptance.po.DumbSlave) AbstractJUnitTest(org.jenkinsci.test.acceptance.junit.AbstractJUnitTest) Test(org.junit.Test) WithPlugins(org.jenkinsci.test.acceptance.junit.WithPlugins)

Aggregations

Build (org.jenkinsci.test.acceptance.po.Build)175 Test (org.junit.Test)157 FreeStyleJob (org.jenkinsci.test.acceptance.po.FreeStyleJob)113 AbstractJUnitTest (org.jenkinsci.test.acceptance.junit.AbstractJUnitTest)101 WithPlugins (org.jenkinsci.test.acceptance.junit.WithPlugins)40 DockerTest (org.jenkinsci.test.acceptance.junit.DockerTest)22 WorkflowJob (org.jenkinsci.test.acceptance.po.WorkflowJob)20 Issue (org.jvnet.hudson.test.Issue)18 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)14 GitRepo (org.jenkinsci.test.acceptance.plugins.git.GitRepo)13 JobDslBuildStep (org.jenkinsci.test.acceptance.plugins.job_dsl.JobDslBuildStep)13 Pattern (java.util.regex.Pattern)11 Job (org.jenkinsci.test.acceptance.po.Job)11 SmokeTest (org.jenkinsci.test.acceptance.junit.SmokeTest)9 WithCredentials (org.jenkinsci.test.acceptance.junit.WithCredentials)9 GitScm (org.jenkinsci.test.acceptance.plugins.git.GitScm)9 Matchers.containsString (org.hamcrest.Matchers.containsString)8 WarningsAction (org.jenkinsci.test.acceptance.plugins.warnings.WarningsAction)8 MavenModuleSet (org.jenkinsci.test.acceptance.plugins.maven.MavenModuleSet)7 IOException (java.io.IOException)6