Skip to content

Commit bccac9f

Browse files
committed
Merge remote-tracking branch 'origin/master' into JENKINS-74912
2 parents d5d05b7 + 1001d94 commit bccac9f

File tree

13 files changed

+89
-72
lines changed

13 files changed

+89
-72
lines changed

Jenkinsfile

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
buildPlugin(useContainerAgent: false, configurations: [
2-
[platform: 'linux', jdk: 21],
3-
[platform: 'maven-17-windows', jdk: 17] // TODO Docker-based tests fail when using Docker on Windows. The maven-windows agents do not have Docker installed so tests that require Docker are skipped.
1+
/*
2+
See the documentation for more options:
3+
https://github.com/jenkins-infra/pipeline-library/
4+
*/
5+
buildPlugin(
6+
useContainerAgent: false, // Set to `false` if you need to use Docker for containerized tests
7+
configurations: [
8+
[platform: 'linux', jdk: 21],
9+
[platform: 'linux', jdk: 17],
10+
// TODO Windows tests seem to be failing on temporary Windows CI infrastructure from https://github.com/jenkins-infra/helpdesk/issues/4490
11+
//[platform: 'maven-17-windows', jdk: 17], // TODO Docker-based tests fail when using Docker on Windows. The maven-windows agents do not have Docker installed so tests that require Docker are skipped.
412
])

pom.xml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
<parent>
55
<groupId>org.jenkins-ci.plugins</groupId>
66
<artifactId>plugin</artifactId>
7-
<version>4.86</version>
8-
<relativePath />
7+
<version>4.88</version>
8+
<relativePath/>
99
</parent>
1010
<artifactId>docker-workflow</artifactId>
1111
<version>${changelist}</version>
@@ -30,7 +30,9 @@
3030

3131
<properties>
3232
<changelist>999999-SNAPSHOT</changelist>
33-
<jenkins.version>2.361.4</jenkins.version>
33+
<!-- https://www.jenkins.io/doc/developer/plugin-development/choosing-jenkins-baseline/ -->
34+
<jenkins.baseline>2.452</jenkins.baseline>
35+
<jenkins.version>${jenkins.baseline}.4</jenkins.version>
3436
<gitHubRepo>jenkinsci/${project.artifactId}-plugin</gitHubRepo>
3537
</properties>
3638
<repositories>
@@ -49,8 +51,8 @@
4951
<dependencies>
5052
<dependency>
5153
<groupId>io.jenkins.tools.bom</groupId>
52-
<artifactId>bom-2.361.x</artifactId>
53-
<version>2102.v854b_fec19c92</version>
54+
<artifactId>bom-${jenkins.baseline}.x</artifactId>
55+
<version>3893.v213a_42768d35</version>
5456
<scope>import</scope>
5557
<type>pom</type>
5658
</dependency>

src/main/java/org/jenkinsci/plugins/docker/workflow/WithContainerStep.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@
4242
import hudson.os.WindowsUtil;
4343
import hudson.slaves.WorkspaceList;
4444
import hudson.util.VersionNumber;
45+
import java.util.ArrayList;
46+
import java.util.Arrays;
47+
import java.util.Collection;
48+
import java.util.Iterator;
49+
import java.util.LinkedHashMap;
50+
import java.util.LinkedHashSet;
51+
import java.util.List;
52+
import java.util.Map;
53+
import java.util.Set;
54+
import java.util.TreeSet;
4555
import org.jenkinsci.plugins.docker.commons.tools.DockerTool;
4656
import org.jenkinsci.plugins.docker.workflow.client.DockerClient;
4757
import org.jenkinsci.plugins.docker.workflow.client.WindowsDockerClient;
@@ -59,16 +69,6 @@
5969
import java.io.IOException;
6070
import java.io.Serializable;
6171
import java.nio.charset.Charset;
62-
import java.util.ArrayList;
63-
import java.util.Arrays;
64-
import java.util.Collection;
65-
import java.util.Iterator;
66-
import java.util.LinkedHashMap;
67-
import java.util.LinkedHashSet;
68-
import java.util.List;
69-
import java.util.Map;
70-
import java.util.Set;
71-
import java.util.TreeSet;
7272
import java.util.concurrent.TimeUnit;
7373
import java.util.logging.Level;
7474
import java.util.logging.Logger;

src/test/java/org/jenkinsci/plugins/docker/workflow/DockerDSLTest.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
import static org.hamcrest.core.IsNot.not;
5656
import static org.hamcrest.core.StringContains.containsString;
5757
import static org.hamcrest.core.StringRegularExpression.matchesRegex;
58-
import static org.jenkinsci.plugins.docker.workflow.DockerTestUtil.DOCKER_OS_MODE;
5958
import static org.jenkinsci.plugins.docker.workflow.DockerTestUtil.assumeDocker;
6059
import static org.jenkinsci.plugins.docker.workflow.DockerTestUtil.assumeNotWindows;
6160
import static org.junit.Assert.assertEquals;
@@ -114,7 +113,7 @@ private static void grep(File dir, String text, String prefix, Set<String> match
114113
assumeDocker();
115114
WorkflowJob p = story.j.jenkins.createProject(WorkflowJob.class, "prj");
116115
p.setDefinition(new CpsFlowDefinition(
117-
"def r = docker.image('httpd:2.4.59').inside {\n" +
116+
"def r = docker.image('httpd:2.4.62').inside {\n" +
118117
" semaphore 'wait'\n" +
119118
" sh 'cat /usr/local/apache2/conf/extra/httpd-userdir.conf'\n" +
120119
" 42\n" +
@@ -141,7 +140,7 @@ private static void grep(File dir, String text, String prefix, Set<String> match
141140
assumeDocker();
142141
WorkflowJob p = story.j.jenkins.createProject(WorkflowJob.class, "p");
143142
p.setDefinition(new CpsFlowDefinition(
144-
"docker.image('maven:3.5.3-jdk-8').inside {\n" +
143+
"docker.image('maven:3.9.9-eclipse-temurin-17').inside {\n" +
145144
" sh 'mvn -version'\n" +
146145
"}", true));
147146

@@ -186,7 +185,7 @@ private static void grep(File dir, String text, String prefix, Set<String> match
186185
WorkflowJob p = story.j.jenkins.createProject(WorkflowJob.class, "prj");
187186
p.setDefinition(new CpsFlowDefinition(
188187
"node {\n" +
189-
" def img = docker.image('httpd:2.4.59')\n" +
188+
" def img = docker.image('httpd:2.4.62')\n" +
190189
" img.run().stop()\n" +
191190
" img.run('--memory-swap=-1').stop()\n" +
192191
" img.withRun {}\n" +
@@ -205,7 +204,7 @@ private static void grep(File dir, String text, String prefix, Set<String> match
205204
assumeDocker();
206205
WorkflowJob p = story.j.jenkins.createProject(WorkflowJob.class, "prj");
207206
p.setDefinition(new CpsFlowDefinition(
208-
"def r = docker.image('httpd:2.4.59').withRun {c ->\n" +
207+
"def r = docker.image('httpd:2.4.62').withRun {c ->\n" +
209208
" semaphore 'wait'\n" +
210209
" sh \"docker exec ${c.id} cat /usr/local/apache2/conf/extra/httpd-userdir.conf\"\n" +
211210
" 42\n" +
@@ -231,7 +230,7 @@ private static void grep(File dir, String text, String prefix, Set<String> match
231230
assumeDocker();
232231
WorkflowJob p = story.j.jenkins.createProject(WorkflowJob.class, "prj");
233232
p.setDefinition(new CpsFlowDefinition(
234-
" docker.image('maven:3.3.9-jdk-8').withRun(\"--entrypoint mvn\", \"-version\") {c ->\n" +
233+
" docker.image('maven:3.9.9-eclipse-temurin-17').withRun(\"--entrypoint mvn\", \"-version\") {c ->\n" +
235234
" sh \"docker logs ${c.id}\"" +
236235
"}", true));
237236
story.j.assertBuildStatusSuccess(p.scheduleBuild2(0));
@@ -347,7 +346,7 @@ private static void grep(File dir, String text, String prefix, Set<String> match
347346
WorkflowJob p = story.j.jenkins.createProject(WorkflowJob.class, "prj");
348347
p.setDefinition(new CpsFlowDefinition(
349348
"docker.withTool('default') {\n" +
350-
" docker.image('httpd:2.4.59').withRun {}\n" +
349+
" docker.image('httpd:2.4.62').withRun {}\n" +
351350
" sh 'echo PATH=$PATH'\n" +
352351
"}", true));
353352
story.j.assertLogContains("PATH=/usr/bin:", story.j.assertBuildStatusSuccess(p.scheduleBuild2(0)));
@@ -438,7 +437,7 @@ private static void grep(File dir, String text, String prefix, Set<String> match
438437
WorkflowJob p = story.j.jenkins.createProject(WorkflowJob.class, "prj");
439438
p.setDefinition(new CpsFlowDefinition(
440439
"node {\n" +
441-
" def img = docker.image('httpd:2.4.59')\n" +
440+
" def img = docker.image('httpd:2.4.62')\n" +
442441
" def port = img.withRun('-p 12345:80') { c -> c.port(80) }\n" +
443442
" echo \"container running on ${port}\"" +
444443
"}", true));

src/test/java/org/jenkinsci/plugins/docker/workflow/DockerTestUtil.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,10 @@
2424
package org.jenkinsci.plugins.docker.workflow;
2525

2626
import hudson.EnvVars;
27+
import org.jenkinsci.plugins.docker.workflow.client.DockerClient;
2728
import hudson.Launcher;
2829
import hudson.util.StreamTaskListener;
2930
import hudson.util.VersionNumber;
30-
import org.jenkinsci.plugins.docker.commons.tools.DockerTool;
31-
import org.jenkinsci.plugins.docker.workflow.client.DockerClient;
3231
import org.junit.Assume;
3332

3433
import java.io.ByteArrayOutputStream;
@@ -41,6 +40,8 @@
4140
import java.util.regex.Matcher;
4241
import java.util.regex.Pattern;
4342

43+
import org.jenkinsci.plugins.docker.commons.tools.DockerTool;
44+
4445
/**
4546
* @author <a href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
4647
*/
@@ -61,14 +62,15 @@ public enum DOCKER_OS_MODE {
6162
LINUX,
6263
WINDOWS
6364
}
65+
6466
public static void assumeDocker() throws Exception {
6567
assumeDocker(DOCKER_OS_MODE.LINUX, new VersionNumber(DEFAULT_MINIMUM_VERSION));
6668
}
6769

6870
public static void assumeDocker(DOCKER_OS_MODE osMode) throws Exception {
6971
assumeDocker(osMode, new VersionNumber(DEFAULT_MINIMUM_VERSION));
7072
}
71-
73+
7274
public static void assumeDocker(DOCKER_OS_MODE osMode, VersionNumber minimumVersion) throws Exception {
7375
Launcher.LocalLauncher localLauncher = new Launcher.LocalLauncher(StreamTaskListener.NULL);
7476
try {

src/test/java/org/jenkinsci/plugins/docker/workflow/WithContainerStepTest.java

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,27 @@
3232
import hudson.model.FileParameterValue;
3333
import hudson.model.Result;
3434
import hudson.model.TaskListener;
35-
import hudson.os.WindowsUtil;
3635
import hudson.slaves.DumbSlave;
3736
import hudson.tools.ToolProperty;
3837
import hudson.util.ArgumentListBuilder;
3938
import hudson.util.Secret;
4039
import hudson.util.StreamTaskListener;
40+
import java.io.File;
41+
import java.util.Collection;
42+
import java.util.Collections;
43+
import java.util.logging.Level;
44+
4145
import hudson.util.VersionNumber;
42-
import jenkins.util.SystemProperties;
46+
import java.io.IOException;
47+
import java.lang.reflect.Field;
48+
import java.nio.file.Files;
49+
import java.nio.file.Path;
50+
import java.util.Set;
51+
import java.util.concurrent.TimeUnit;
4352
import org.apache.commons.fileupload.FileItem;
4453
import org.apache.commons.io.FileUtils;
4554
import org.hamcrest.Matchers;
55+
import static org.hamcrest.Matchers.is;
4656
import org.jenkinsci.lib.configprovider.ConfigProvider;
4757
import org.jenkinsci.lib.configprovider.model.Config;
4858
import org.jenkinsci.plugins.configfiles.custom.CustomConfig;
@@ -61,10 +71,12 @@
6171
import org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution;
6272
import org.jenkinsci.plugins.workflow.test.steps.SemaphoreStep;
6373
import org.junit.Assume;
74+
import static org.junit.Assert.assertTrue;
75+
import static org.junit.Assume.assumeTrue;
6476
import org.junit.ClassRule;
6577
import org.junit.Ignore;
66-
import org.junit.Rule;
6778
import org.junit.Test;
79+
import org.junit.Rule;
6880
import org.junit.rules.TemporaryFolder;
6981
import org.junit.runners.model.Statement;
7082
import org.jvnet.hudson.test.BuildWatcher;
@@ -75,21 +87,6 @@
7587
import org.jvnet.hudson.test.TestExtension;
7688
import org.kohsuke.stapler.DataBoundConstructor;
7789

78-
import java.io.File;
79-
import java.io.IOException;
80-
import java.lang.reflect.Field;
81-
import java.nio.file.Files;
82-
import java.nio.file.Path;
83-
import java.util.Collection;
84-
import java.util.Collections;
85-
import java.util.Set;
86-
import java.util.concurrent.TimeUnit;
87-
import java.util.logging.Level;
88-
89-
import static org.hamcrest.Matchers.is;
90-
import static org.junit.Assert.assertTrue;
91-
import static org.junit.Assume.assumeTrue;
92-
9390
public class WithContainerStepTest {
9491

9592
@ClassRule public static BuildWatcher buildWatcher = new BuildWatcher();

src/test/java/org/jenkinsci/plugins/docker/workflow/client/DockerClientTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import hudson.util.StreamTaskListener;
3131
import hudson.util.VersionNumber;
3232
import org.jenkinsci.plugins.docker.commons.fingerprint.ContainerRecord;
33-
import org.jenkinsci.plugins.docker.workflow.DockerTestUtil;
3433
import org.junit.Assert;
3534
import org.junit.Before;
3635
import org.junit.Test;

src/test/java/org/jenkinsci/plugins/docker/workflow/client/WindowsDockerClientTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99
import org.junit.Assert;
1010
import org.junit.Before;
1111
import org.junit.Test;
12-
import org.jvnet.hudson.test.Issue;
1312

14-
import java.io.IOException;
1513
import java.util.Collections;
1614

1715
public class WindowsDockerClientTest {

src/test/java/org/jenkinsci/plugins/docker/workflow/declarative/DeclarativeDockerUtilsTest.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl;
3434
import hudson.ExtensionList;
3535
import hudson.Functions;
36+
import hudson.model.Descriptor.FormException;
3637
import hudson.model.Slave;
3738
import org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint;
3839
import org.jenkinsci.plugins.docker.workflow.DockerTestUtil;
@@ -51,12 +52,23 @@
5152
* And related configurations like {@link DockerPropertiesProvider}.
5253
*/
5354
public class DeclarativeDockerUtilsTest extends AbstractModelDefTest {
54-
private static final UsernamePasswordCredentialsImpl globalCred = new UsernamePasswordCredentialsImpl(CredentialsScope.GLOBAL,
55-
"globalCreds", "sample", "bobby", "s3cr37");
56-
private static final UsernamePasswordCredentialsImpl folderCred = new UsernamePasswordCredentialsImpl(CredentialsScope.GLOBAL,
57-
"folderCreds", "other sample", "andrew", "s0mething");
58-
private static final UsernamePasswordCredentialsImpl grandParentCred = new UsernamePasswordCredentialsImpl(CredentialsScope.GLOBAL,
59-
"grandParentCreds", "yet another sample", "leopold", "idunno");
55+
56+
private static final UsernamePasswordCredentialsImpl globalCred;
57+
private static final UsernamePasswordCredentialsImpl folderCred;
58+
private static final UsernamePasswordCredentialsImpl grandParentCred;
59+
60+
static {
61+
try {
62+
globalCred = new UsernamePasswordCredentialsImpl(CredentialsScope.GLOBAL,
63+
"globalCreds", "sample", "bobby", "s3cr37");
64+
folderCred = new UsernamePasswordCredentialsImpl(CredentialsScope.GLOBAL,
65+
"folderCreds", "other sample", "andrew", "s0mething");
66+
grandParentCred = new UsernamePasswordCredentialsImpl(CredentialsScope.GLOBAL,
67+
"grandParentCreds", "yet another sample", "leopold", "idunno");
68+
} catch (FormException e) {
69+
throw new RuntimeException(e);
70+
}
71+
}
6072

6173
@BeforeClass
6274
public static void setup() throws Exception {

0 commit comments

Comments
 (0)