Skip to content

Commit c1082b9

Browse files
committed
SCMSourceRetrieverTest: provide directly a sampleRepoNotifyCommit() to work around some GitSampleRepoRule.notifyCommit() issue
1 parent 6668195 commit c1082b9

File tree

1 file changed

+35
-11
lines changed

1 file changed

+35
-11
lines changed

src/test/java/org/jenkinsci/plugins/workflow/libs/SCMSourceRetrieverTest.java

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@
4040
import hudson.model.Result;
4141
import hudson.model.Run;
4242
import hudson.model.TaskListener;
43-
import hudson.plugins.git.GitSCM;
43+
import hudson.plugins.git.ApiTokenPropertyConfiguration;
4444
import hudson.plugins.git.BranchSpec;
45+
import hudson.plugins.git.GitSCM;
4546
import hudson.scm.ChangeLogSet;
4647
import hudson.scm.SCM;
4748
import hudson.slaves.EnvironmentVariablesNodeProperty;
@@ -79,6 +80,7 @@
7980
import jenkins.scm.impl.subversion.SubversionSCMSource;
8081
import jenkins.scm.impl.subversion.SubversionSampleRepoRule;
8182
import org.apache.commons.io.FileUtils;
83+
import org.htmlunit.WebResponse;
8284
import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition;
8385
import org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition;
8486
import org.jenkinsci.plugins.workflow.job.WorkflowJob;
@@ -127,6 +129,28 @@ public class SCMSourceRetrieverTest {
127129
@Rule public LoggerRule logging = new LoggerRule().record(SCMBasedRetriever.class, Level.FINE);
128130

129131
// Repetitive helpers for test cases dealing with @Issue("JENKINS-69731") and others
132+
private void sampleRepoNotifyCommit(GitSampleRepoRule sampleRepo) throws Exception {
133+
try {
134+
sampleRepo.notifyCommit(r);
135+
} catch(java.lang.NoSuchMethodError ignored) {
136+
// Some versions of git-plugin maybe mix up "WebClient"
137+
// from "JenkinsRule" and from "htmlunit" packages, while
138+
// using the former implicitly. Maybe something else; says:
139+
// java.lang.NoSuchMethodError: 'com.gargoylesoftware.htmlunit.Page
140+
// org.jvnet.hudson.test.JenkinsRule$WebClient.goTo(java.lang.String, java.lang.String)'
141+
// The catch-code below is an adapted copy of
142+
// GitSampleRepoRule.notifyCommit() as of git-plugin-5.0.0:
143+
144+
// SKIPPED: protected code: sampleRepo.synchronousPolling(r);
145+
String notifyCommitToken = ApiTokenPropertyConfiguration.get().generateApiToken("notifyCommit").getString("value");
146+
JenkinsRule.WebClient wc = r.createWebClient();
147+
WebResponse webResponse =
148+
wc.goTo("git/notifyCommit?url=" + sampleRepo.bareUrl() + "&token=" + notifyCommitToken, "text/plain").getWebResponse();
149+
// SKIPPED logging of the response
150+
r.waitUntilNoActivity();
151+
}
152+
}
153+
130154
private void sampleRepo1ContentMaster() throws Exception {
131155
sampleRepo1ContentMaster(null);
132156
}
@@ -492,7 +516,7 @@ private void sampleRepo2ContentUniqueMasterFeatureBogus_staticStrings(String sub
492516
// definition of MBP "leaf" jobs, and launch of builds,
493517
// so below we just make sure they complete and analyze
494518
// the outcomes.
495-
sampleRepo2.notifyCommit(r);
519+
sampleRepoNotifyCommit(sampleRepo2);
496520
r.waitUntilNoActivity();
497521
System.out.println("Jobs generated by MBP: " + mbp.getItems().toString());
498522

@@ -550,7 +574,7 @@ private void sampleRepo2ContentUniqueMasterFeatureBogus_staticStrings(String sub
550574
// definition of MBP "leaf" jobs, and launch of builds,
551575
// so below we just make sure they complete and analyze
552576
// the outcomes.
553-
sampleRepo2.notifyCommit(r);
577+
sampleRepoNotifyCommit(sampleRepo2);
554578
r.waitUntilNoActivity();
555579
System.out.println("Jobs generated by MBP: " + mbp.getItems().toString());
556580

@@ -608,7 +632,7 @@ private void sampleRepo2ContentUniqueMasterFeatureBogus_staticStrings(String sub
608632
// definition of MBP "leaf" jobs, and launch of builds,
609633
// so below we just make sure they complete and analyze
610634
// the outcomes.
611-
sampleRepo2.notifyCommit(r);
635+
sampleRepoNotifyCommit(sampleRepo2);
612636
r.waitUntilNoActivity();
613637
System.out.println("Jobs generated by MBP: " + mbp.getItems().toString());
614638

@@ -681,7 +705,7 @@ private void sampleRepo2ContentUniqueMasterFeatureBogus_staticStrings(String sub
681705
mbp.save();
682706
// Rescan to actually define leaf jobs:
683707
mbp.scheduleBuild(0);
684-
sampleRepo2.notifyCommit(r);
708+
sampleRepoNotifyCommit(sampleRepo2);
685709
r.waitUntilNoActivity();
686710
System.out.println("All Jenkins items: " + r.jenkins.getItems().toString());
687711
System.out.println("MBP sources: " + mbp.getSourcesList().toString());
@@ -770,7 +794,7 @@ private void sampleRepo2ContentUniqueMasterFeatureBogus_staticStrings(String sub
770794
mbp.save();
771795
// Rescan to actually define leaf jobs:
772796
mbp.scheduleBuild(0);
773-
sampleRepo2.notifyCommit(r);
797+
sampleRepoNotifyCommit(sampleRepo2);
774798
r.waitUntilNoActivity();
775799
System.out.println("All Jenkins items: " + r.jenkins.getItems().toString());
776800
System.out.println("MBP sources: " + mbp.getSourcesList().toString());
@@ -855,7 +879,7 @@ private void sampleRepo2ContentUniqueMasterFeatureBogus_staticStrings(String sub
855879

856880
WorkflowJob p0 = r.jenkins.createProject(WorkflowJob.class, "p0");
857881
p0.setDefinition(new CpsScmFlowDefinition(gitSCM, "Jenkinsfile"));
858-
sampleRepo2.notifyCommit(r);
882+
sampleRepoNotifyCommit(sampleRepo2);
859883
r.waitUntilNoActivity();
860884

861885
WorkflowRun b0 = r.buildAndAssertSuccess(p0);
@@ -896,7 +920,7 @@ private void sampleRepo2ContentUniqueMasterFeatureBogus_staticStrings(String sub
896920

897921
WorkflowJob p0 = r.jenkins.createProject(WorkflowJob.class, "p0");
898922
p0.setDefinition(new CpsScmFlowDefinition(gitSCM, "Jenkinsfile"));
899-
sampleRepo2.notifyCommit(r);
923+
sampleRepoNotifyCommit(sampleRepo2);
900924
r.waitUntilNoActivity();
901925

902926
WorkflowRun b0 = r.buildAndAssertSuccess(p0);
@@ -945,7 +969,7 @@ private void sampleRepo2ContentUniqueMasterFeatureBogus_staticStrings(String sub
945969
Collections.singletonList(new BranchSpec("*/feature")),
946970
null, null, Collections.emptyList());
947971

948-
sampleRepo2.notifyCommit(r);
972+
sampleRepoNotifyCommit(sampleRepo2);
949973
r.waitUntilNoActivity();
950974

951975
// First run a job definition with a fixed library version,
@@ -1070,7 +1094,7 @@ private void sampleRepo2ContentUniqueMasterFeatureBogus_staticStrings(String sub
10701094

10711095
WorkflowJob p1 = r.jenkins.createProject(WorkflowJob.class, "p1");
10721096
p1.setDefinition(new CpsScmFlowDefinition(gitSCM, "Jenkinsfile"));
1073-
sampleRepo2.notifyCommit(r);
1097+
sampleRepoNotifyCommit(sampleRepo2);
10741098
r.waitUntilNoActivity();
10751099
p1.scheduleBuild2(0);
10761100
r.waitUntilNoActivity();
@@ -1131,7 +1155,7 @@ private void sampleRepo2ContentUniqueMasterFeatureBogus_staticStrings(String sub
11311155
csfd.setLightweight(true);
11321156
WorkflowJob p0 = r.jenkins.createProject(WorkflowJob.class, "p0");
11331157
p0.setDefinition(csfd);
1134-
sampleRepo2.notifyCommit(r);
1158+
sampleRepoNotifyCommit(sampleRepo2);
11351159
r.waitUntilNoActivity();
11361160

11371161
WorkflowRun b0 = r.buildAndAssertSuccess(p0);

0 commit comments

Comments
 (0)