diff --git a/pom.xml b/pom.xml index 64ca8639..5d9d879b 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ THE SOFTWARE. 999999-SNAPSHOT - 2.414.3 + 2.444 false jenkinsci/${project.artifactId}-plugin @@ -71,11 +71,17 @@ THE SOFTWARE. io.jenkins.tools.bom - bom-2.414.x - 2705.vf5c48c31285b_ + bom-2.440.x + 2746.vb_79a_1d3e7b_c8 import pom + + + org.jenkins-ci.plugins + cloudbees-folder + 6.919.va_e17e72383f5 + diff --git a/src/test/java/org/jenkinsci/plugins/workflow/multibranch/WorkflowMultiBranchProjectTest.java b/src/test/java/org/jenkinsci/plugins/workflow/multibranch/WorkflowMultiBranchProjectTest.java index 0a322f22..86d2af83 100644 --- a/src/test/java/org/jenkinsci/plugins/workflow/multibranch/WorkflowMultiBranchProjectTest.java +++ b/src/test/java/org/jenkinsci/plugins/workflow/multibranch/WorkflowMultiBranchProjectTest.java @@ -26,6 +26,7 @@ import com.cloudbees.hudson.plugins.folder.computed.FolderComputation; import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.model.AbstractItem; import hudson.model.DescriptorVisibilityFilter; import hudson.model.Item; import hudson.model.Queue; @@ -53,13 +54,19 @@ import jenkins.plugins.git.GitSCMSource; import jenkins.plugins.git.GitBranchSCMHead; import jenkins.plugins.git.GitSampleRepoRule; +import jenkins.plugins.git.traits.BranchDiscoveryTrait; import jenkins.scm.api.SCMHead; import jenkins.scm.api.SCMSource; import jenkins.scm.impl.SingleSCMSource; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; import org.jenkinsci.plugins.workflow.job.WorkflowJob; import org.jenkinsci.plugins.workflow.job.WorkflowRun; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; @@ -267,4 +274,34 @@ public DescriptorImpl() { r.assertLogContains("branch=feature2", b2); } + @Issue("JENKINS-72613") + @Test public void reloadMangledName() throws Exception { + r.jenkins.setQuietPeriod(0); + sampleRepo.init(); + sampleRepo.write("Jenkinsfile", "echo 'on master'"); + sampleRepo.git("add", "Jenkinsfile"); + sampleRepo.git("commit", "--all", "--message=init"); + for (var branch : List.of("ok-1", "danger_1")) { + sampleRepo.git("checkout", "-b", branch, "master"); + sampleRepo.write("Jenkinsfile", "echo 'on " + branch + "'"); + sampleRepo.git("add", "Jenkinsfile"); + sampleRepo.git("commit", "--all", "--message=" + branch); + } + var mp = r.jenkins.createProject(WorkflowMultiBranchProject.class, "p"); + var source = new GitSCMSource(sampleRepo.toString()); + source.setTraits(List.of(new BranchDiscoveryTrait())); + mp.getSourcesList().add(new BranchSource(source)); + var ok = scheduleAndFindBranchProject(mp, "ok-1"); + var danger = findBranchProject(mp, "danger_1"); + r.waitUntilNoActivity(); + assertThat(ok.getRootDir().getName(), is("ok-1")); + assertThat(danger.getRootDir().getName(), is("danger-1.i2g9ue")); + ok.doReload(); + assertThat(mp.getItems().stream().map(AbstractItem::getName).toArray(String[]::new), + arrayContainingInAnyOrder("master", "ok-1", "danger_1")); + danger.doReload(); + assertThat(mp.getItems().stream().map(AbstractItem::getName).toArray(String[]::new), + arrayContainingInAnyOrder("master", "ok-1", "danger_1")); + } + }