Skip to content

Commit c432d92

Browse files
authored
Merge pull request #12 from MarkEWaite/skip-docker-test-when-docker-unavailable
Skip Docker test when Docker is not available
2 parents cb4a98a + 02f3763 commit c432d92

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55
buildPlugin(
66
forkCount: '1C', // run this number of tests in parallel for faster feedback. If the number terminates with a 'C', the value will be multiplied by the number of available CPU cores
7-
useContainerAgent: true, // Set to `false` if you need to use Docker for containerized tests
7+
useContainerAgent: false, // Need testcontainer in EddsaTest
88
configurations: [
99
[platform: 'linux', jdk: 21],
1010
[platform: 'windows', jdk: 17],

src/test/java/io/jenkins/plugins/eddsa_api/EddsaTest.java

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.jenkins.plugins.eddsa_api;
22

33
import static org.junit.Assert.assertTrue;
4+
import static org.junit.Assume.assumeTrue;
45

56
import com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey;
67
import com.cloudbees.plugins.credentials.CredentialsScope;
@@ -21,6 +22,7 @@
2122
import org.junit.Test;
2223
import org.jvnet.hudson.test.JenkinsRule;
2324
import org.jvnet.hudson.test.RealJenkinsRule;
25+
import org.testcontainers.DockerClientFactory;
2426
import org.testcontainers.containers.GenericContainer;
2527
import org.testcontainers.images.builder.ImageFromDockerfile;
2628

@@ -37,26 +39,32 @@ public class EddsaTest implements Serializable {
3739
public static final String USER = "jenkins";
3840

3941
@Rule
40-
public transient GenericContainer agentContainer = new GenericContainer(new ImageFromDockerfile(
41-
SSH_AGENT_NAME, false)
42-
.withFileFromClasspath(
43-
SSH_AUTHORIZED_KEYS,
44-
AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS)
45-
.withFileFromClasspath(
46-
SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH)
47-
.withFileFromClasspath(
48-
SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH)
49-
.withFileFromClasspath(
50-
SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG)
51-
.withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE))
52-
.withExposedPorts(22);
42+
public transient GenericContainer agentContainer = !DockerClientFactory.instance()
43+
.isDockerAvailable()
44+
? null
45+
: new GenericContainer(new ImageFromDockerfile(SSH_AGENT_NAME, false)
46+
.withFileFromClasspath(
47+
SSH_AUTHORIZED_KEYS,
48+
AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS)
49+
.withFileFromClasspath(
50+
SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH)
51+
.withFileFromClasspath(
52+
SSH_KEY_PUB_PATH,
53+
AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH)
54+
.withFileFromClasspath(
55+
SSH_SSHD_CONFIG,
56+
AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG)
57+
.withFileFromClasspath(
58+
DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE))
59+
.withExposedPorts(22);
5360

5461
@Rule(order = 10)
5562
public transient RealJenkinsRule j =
5663
new RealJenkinsRule().withDebugPort(8000).withDebugServer(true).withDebugSuspend(true);
5764

5865
@Test
5966
public void connectionTests() throws Throwable {
67+
assumeTrue(DockerClientFactory.instance().isDockerAvailable());
6068
String host = agentContainer.getHost();
6169
int port = agentContainer.getMappedPort(SSH_PORT);
6270
String keyPath = SSH_AGENT_NAME + "/" + SSH_KEY_PATH;

0 commit comments

Comments
 (0)