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

Update properties when interpolated version references #239

Merged
merged 4 commits into from
May 12, 2020

Conversation

imonteroperez
Copy link
Contributor

@imonteroperez imonteroperez commented May 5, 2020

java -jar plugins-compat-tester-cli/target/plugins-compat-tester-cli.jar \
[...] 
-includePlugins ec2 \
-mavenProperties test=ConfigurationAsCodeTest#testConfigAsCodeExport \
-overridenPlugins io.jenkins:configuration-as-code=1.38

We get the following result:

[ERROR] hudson.plugins.ec2.ConfigurationAsCodeTest.testConfigAsCodeExport  Time elapsed: 9.562 s  <<< ERROR!
java.lang.NoSuchMethodError: io.jenkins.plugins.casc.ConfigurationAsCode.toYaml(Lio/jenkins/plugins/casc/model/CNode;)Lio/jenkins/plugins/casc/snakeyaml/nodes/Node;
	at io.jenkins.plugins.casc.misc.Util.toYamlString(Util.java:152)
	at hudson.plugins.ec2.ConfigurationAsCodeTest.testConfigAsCodeExport(ConfigurationAsCodeTest.java:144)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.jvnet.hudson.test.JenkinsRule$1.evaluate(JenkinsRule.java:597)
	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:288)
	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:282)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.lang.Thread.run(Thread.java:748)

Because ec2 updated Maven pom file looks like:

   <dependency> 
      <groupId>io.jenkins</groupId>  
      <artifactId>configuration-as-code</artifactId>  
      <scope>test</scope>  
      <version>1.38</version>
    </dependency>  
    <dependency> 
      <groupId>io.jenkins.configuration-as-code</groupId>  
      <artifactId>test-harness</artifactId>  
      <version>${jcasc.version}</version>  
      <scope>test</scope> 
    </dependency>  
[...]
<properties> 
    <jcasc.version>1.36</jcasc.version>  
  </properties>  
  • After this PR we will get the following output:
[INFO] Running hudson.plugins.ec2.ConfigurationAsCodeTest
=== Starting testConfigAsCodeExport(hudson.plugins.ec2.ConfigurationAsCodeTest)
   0.049 [id=14]	INFO	o.jvnet.hudson.test.WarExploder#explode: Exploding /home/imontero/.m2/repository/org/jenkins-ci/main/jenkins-war/2.222.2-cb-3/jenkins-war-2.222.2-cb-3.war into /tmp/pct/work/ec2/target/jenkins-for-test
   1.205 [id=14]	INFO	o.jvnet.hudson.test.JenkinsRule#createWebServer: Running on http://localhost:42601/jenkins/
   2.982 [id=28]	INFO	jenkins.InitReactorRunner$1#onAttained: Started initialization
   3.230 [id=48]	INFO	hudson.PluginManager#considerDetachedPlugin: Loading a detached plugin as a dependency: /tmp/pct/work/ec2/target/tmp/jenkins4358973109611827138/jdk-tool.jpi
   5.270 [id=35]	INFO	jenkins.InitReactorRunner$1#onAttained: Listed all plugins
   6.799 [id=27]	INFO	jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
   6.805 [id=32]	INFO	jenkins.InitReactorRunner$1#onAttained: Started all plugins
   6.808 [id=41]	INFO	jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
   7.301 [id=28]	INFO	jenkins.InitReactorRunner$1#onAttained: System config loaded
   7.325 [id=43]	INFO	jenkins.InitReactorRunner$1#onAttained: System config adapted
   7.325 [id=31]	INFO	jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
   7.326 [id=41]	INFO	jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
   7.547 [id=30]	INFO	jenkins.InitReactorRunner$1#onAttained: Completed initialization
   7.740 [id=14]	WARNING	i.j.p.casc.SecretSourceResolver#handleUndefinedVariable: Configuration import: Found unresolved variable PRIVATE_KEY. Will default to empty string
   7.759 [id=14]	WARNING	i.j.p.casc.SecretSourceResolver#handleUndefinedVariable: Configuration import: Found unresolved variable PRIVATE_KEY. Will default to empty string
   7.989 [id=14]	INFO	jenkins.model.Jenkins#cleanUp: Stopping Jenkins
   8.020 [id=14]	INFO	jenkins.model.Jenkins#cleanUp: Jenkins stopped
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.709 s - in hudson.plugins.ec2.ConfigurationAsCodeTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16.250 s
[INFO] Finished at: 2020-05-05T16:25:34+02:00
[INFO] ------------------------------------------------------------------------
succeeded artifactIds: [maven-hpi-plugin, maven-hpi-plugin, maven-surefire-plugin]
executed classname tests: [hudson.plugins.ec2.ConfigurationAsCodeTest]

Because pom file looks like:

    <dependency> 
      <groupId>io.jenkins</groupId>  
      <artifactId>configuration-as-code</artifactId>  
      <version>${jcasc.version}</version>  
      <scope>test</scope> 
    </dependency>  
    <dependency> 
      <groupId>io.jenkins.configuration-as-code</groupId>  
      <artifactId>test-harness</artifactId>  
      <version>${jcasc.version}</version>  
      <scope>test</scope> 
    </dependency>  
[...]
  <properties> 
    <jcasc.version>1.38</jcasc.version> 
  </properties>  

@imonteroperez
Copy link
Contributor Author

PR builder seems not working properly. Not able to compare with master too (seems broken https://ci.jenkins.io/job/jenkinsci-libraries/job/plugin-compat-tester/job/master/133/). Tested locally and working properly but not sure if it is mergeable or not due to check status

@jetersen
Copy link
Member

You absolute hero!

@jglick
Copy link
Member

jglick commented Jun 4, 2020

Is there a plan to release this so we do not need to run snapshots?

@jglick
Copy link
Member

jglick commented Sep 17, 2020

@raul-arabaolaza ping

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants