Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add conditional build step plugin to fix BOM tests #1375

Merged
merged 1 commit into from Dec 11, 2022

Conversation

MarkEWaite
Copy link
Contributor

Add conditional build step plugin to fix BOM tests

Notes from Basil Crow are in jenkinsci/bom#1623 (comment)

Checklist

  • I have read the CONTRIBUTING doc
  • Unit tests pass locally with my changes
  • I have added documentation as necessary
  • No Javadoc warnings were introduced with my changes
  • No spotbugs warnings were introduced with my changes
  • Documentation in README has been updated as necessary
  • Online help has been added and reviewed for any new or modified fields
  • I have interactively tested my changes
  • Any dependent changes have been merged and published in upstream modules (like git-client-plugin)

Types of changes

  • Test

Further comments

Attempting first pass as a test dependency and as optional. If that passes the BOM tests, then that's lowest impact on the plugin, since it does not add an optional runtime dependency.

If the test dependency is not enough, then conditional build step plugin will be added as an optional dependency until the next release of parameterized trigger plugin.

Notes from Basil Crow:

Can be reproduced in git-plugin by running

```
$ mvn -Denforcer.skip=true \
-Dhpi-plugin.version=3.37 -Djenkins.version=2.381 \
-Djth.jenkins-war.path=~/src/jenkinsci/bom/target/local-test/megawar.war \
-DoverrideWar=~/src/jenkinsci/bom/target/local-test/megawar.war \
-DoverrideWarAdditions=true -Dtest=InjectedTest \
-DupperBoundsExcludes=javax.servlet:servlet-api -DuseUpperBounds=true \
clean verify
```

after running

```
$ PLUGINS=git TEST=InjectedTest bash local-test.sh
```

in bom to build the megawar.

Bisection shows the trouble started occurring at jenkinsci#1369
which updated parameterized-trigger from 2.39 to 2.43.1, which in
turn updated conditional-buildstep from 1.3.1 to 1.4.1, which in turn
put maven-plugin on the compile classpath. Turns out that declaring
maven-plugin as non-optional was a bug in conditional-buildstep 1.4.1,
fixed in 1.4.2 with jenkinsci/conditional-buildstep-plugin#27.

Verified that the problem can be successfully worked around in git-plugin
by downgrading parameterized-trigger back to 2.39 (which also downgrades
conditional-buildstep down to 1.3.1) or upgrading conditional-buildstep
to 1.4.2 with

diff --git a/pom.xml b/pom.xml
index 3753e57c..e187d4f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,6 +79,11 @@
         <type>pom</type>
         <scope>import</scope>
       </dependency>
+      <dependency>
+        <groupId>org.jenkins-ci.plugins</groupId>
+        <artifactId>conditional-buildstep</artifactId>
+        <version>1.4.2</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>

But a better solution would be to upgrade conditional-buildstep
to 1.4.2 in parameterized-trigger; i.e., releasing
jenkinsci/parameterized-trigger-plugin#252 and then upgrading to that
release in the Git plugin.
@github-actions github-actions bot added dependencies Dependency related change and removed test labels Dec 11, 2022
@MarkEWaite MarkEWaite merged commit fef498d into jenkinsci:master Dec 11, 2022
@MarkEWaite MarkEWaite deleted the fix-bom-tests branch December 11, 2022 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Dependency related change
Projects
None yet
1 participant