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

custom-folder-icon 2.11 fails tests in plugin bill of materials #280

Closed
MarkEWaite opened this issue Jan 6, 2024 · 4 comments · Fixed by #282 · May be fixed by jenkinsci/job-dsl-plugin#1414
Closed

custom-folder-icon 2.11 fails tests in plugin bill of materials #280

MarkEWaite opened this issue Jan 6, 2024 · 4 comments · Fixed by #282 · May be fixed by jenkinsci/job-dsl-plugin#1414
Assignees
Labels
bug Something isn't working

Comments

@MarkEWaite
Copy link
Contributor

Jenkins and plugins versions report

Jenkins 2.426.1 has a test failure in the plugin bill of materials with custom folder icon 2.11. Test failure is noted in:

What Operating System are you using (both controller, and any agents involved in the problem)?

Linux

Reproduction steps

  1. From the plugin bill of materials master branch plus the addition of custom folder icon 2.11, tests fail with the command:
LINE=2.426.x PLUGINS=custom-folder-icon TEST=JobDSLConfigurationTest bash local-test.sh

Expected Results

Tests should pass with custom folder icon plugin 2.11 as they did with custom folder icon plugin 2.10

Actual Results

Tests fail with 2.11 but pass with 2.10

Anything else?

No response

Are you interested in contributing a fix?

No response

@strangelookingnerd
Copy link
Contributor

strangelookingnerd commented Jan 7, 2024

@MarkEWaite

Expected Results

Tests should pass with custom folder icon plugin 2.11 as they did with custom folder icon plugin 2.10

The tests did not yet exist in 2.10. Removing them should not be an option.

I can not reproduce any failing tests locally or on jenkins.io.
Running local-test.sh on my machine gives me

FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)

This seems like something related to the job-dsl-plugin - any idea why these tests do not fail locally?

Log output
[INFO] --- surefire:3.2.2:test (default-cli) @ custom-folder-icon ---
[INFO] Surefire report directory: <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\surefire-reports
[INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running jenkins.plugins.foldericon.JobDSLConfigurationTest
   0.036 [id=1] INFO    o.jvnet.hudson.test.WarExploder#findJenkinsWar: Using WAR file path <REDACTED>\bom\target\megawar-2.426.x.war specified by the jth.jenkins-war.path system property
   0.040 [id=1] INFO    o.jvnet.hudson.test.WarExploder#explode: Exploding <REDACTED>\bom\target\megawar-2.426.x.war into <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\jenkins-for-test
   1.659 [id=1] INFO    o.jvnet.hudson.test.JenkinsRule#createWebServer: Running on http://localhost:51593/jenkins/
   1.796 [id=44]        INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
  11.285 [id=70]        INFO    hudson.PluginManager$1$3$1#isDuplicate: Ignoring <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\jenkins11978885466724302595\plugins\custom-folder-icon.jpi because <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\jenkins11978885466724302595\plugins\custom-folder-icon.jpl is already loaded
  21.810 [id=54]        INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
  45.829 [id=47]        INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
  45.838 [id=72]        INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
  45.840 [id=54]        INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/<REDACTED>/.m2/repository/org/codehaus/groovy/groovy-all/2.4.21/groovy-all-2.4.21.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
  49.958 [id=74]        INFO    h.p.c.CopyArtifactConfiguration#load: CopyArtifact is set to Production mode.
  50.261 [id=50]        INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
  50.320 [id=76]        INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
  50.320 [id=49]        INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
  50.321 [id=76]        INFO    o.j.p.l.NodesMirror#createNodeResources: lockable-resources-plugin: configure node resources
  50.322 [id=46]        INFO    o.j.p.u.i.IdStoreMigratorV1ToV2#migrateIdStore: Starting migration of IDs
  50.322 [id=46]        INFO    o.j.p.u.i.IdStoreMigratorV1ToV2#performMigration: migration of unique IDs for Jobs and Folders complete - will continue to process Runs in the background.
  50.323 [id=98]        INFO    o.j.p.u.i.IdStoreMigratorV1ToV2$RunIDMigrationThread#run: Finished unique-id migration of builds in 0 minutes 0 seconds.  Processed 0 runs from 0 jobs.
  50.330 [id=49]        INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
  50.346 [id=66]        INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
  51.169 [id=93]        INFO    j.j.plugin.JenkinsJobManagement#createOrUpdateConfig: createOrUpdateConfig for emoji-icon
  51.792 [id=1] INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Stopping Jenkins
  51.829 [id=1] INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Jenkins stopped
  51.861 [id=1] INFO    o.j.h.t.TemporaryDirectoryAllocator#dispose: deleting <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h2556564847227733394
   0.012 [id=1] INFO    o.jvnet.hudson.test.JenkinsRule#createWebServer: Running on http://localhost:51788/jenkins/
   0.031 [id=141]       INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
   0.032 [id=172]       INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
   0.595 [id=152]       INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
   0.598 [id=141]       INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
   0.600 [id=169]       INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
   0.825 [id=161]       INFO    h.p.c.CopyArtifactConfiguration#load: CopyArtifact is set to Production mode.
   0.861 [id=150]       INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
   0.876 [id=159]       WARNING o.j.p.s.EventHistoryStore#enableAutoDeleteOnExpire: AutoExpireTimer was already enable.
   0.884 [id=159]       INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
   0.884 [id=166]       INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
   0.884 [id=178]       INFO    o.j.p.l.NodesMirror#createNodeResources: lockable-resources-plugin: configure node resources
   0.885 [id=173]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2#migrateIdStore: Starting migration of IDs
   0.885 [id=173]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2#performMigration: migration of unique IDs for Jobs and Folders complete - will continue to process Runs in the background.
   0.885 [id=188]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2$RunIDMigrationThread#run: Finished unique-id migration of builds in 0 minutes 0 seconds.  Processed 0 runs from 0 jobs.
   0.886 [id=166]       INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
   1.140 [id=155]       INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
   1.499 [id=181]       INFO    j.j.plugin.JenkinsJobManagement#createOrUpdateConfig: createOrUpdateConfig for build-status
   1.701 [id=1] INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Stopping Jenkins
   1.716 [id=1] INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Jenkins stopped
   1.748 [id=1] INFO    o.j.h.t.TemporaryDirectoryAllocator#dispose: deleting <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h2554718370732993961
   0.010 [id=1] INFO    o.jvnet.hudson.test.JenkinsRule#createWebServer: Running on http://localhost:51819/jenkins/
   0.027 [id=218]       INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
   0.029 [id=248]       INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
   0.599 [id=226]       INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
   0.601 [id=250]       INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
   0.603 [id=243]       INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
   1.175 [id=248]       INFO    h.p.c.CopyArtifactConfiguration#load: CopyArtifact is set to Production mode.
   1.208 [id=250]       INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
   1.216 [id=231]       WARNING o.j.p.s.EventHistoryStore#enableAutoDeleteOnExpire: AutoExpireTimer was already enable.
   1.223 [id=231]       INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
   1.224 [id=222]       INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
   1.224 [id=238]       INFO    o.j.p.l.NodesMirror#createNodeResources: lockable-resources-plugin: configure node resources
   1.224 [id=218]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2#migrateIdStore: Starting migration of IDs
   1.224 [id=218]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2#performMigration: migration of unique IDs for Jobs and Folders complete - will continue to process Runs in the background.
   1.225 [id=265]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2$RunIDMigrationThread#run: Finished unique-id migration of builds in 0 minutes 0 seconds.  Processed 0 runs from 0 jobs.
   1.225 [id=245]       INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
   1.238 [id=233]       INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
   1.585 [id=257]       INFO    j.j.plugin.JenkinsJobManagement#createOrUpdateConfig: createOrUpdateConfig for fontawesome-icon
   1.789 [id=1] INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Stopping Jenkins
   1.803 [id=1] INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Jenkins stopped
   1.836 [id=1] INFO    o.j.h.t.TemporaryDirectoryAllocator#dispose: deleting <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h18401752526002944834
   0.008 [id=1] INFO    o.jvnet.hudson.test.JenkinsRule#createWebServer: Running on http://localhost:51852/jenkins/
   0.025 [id=295]       INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
   0.027 [id=326]       INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
   0.607 [id=296]       INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
   0.609 [id=301]       INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
   0.610 [id=317]       INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
   0.856 [id=312]       INFO    h.p.c.CopyArtifactConfiguration#load: CopyArtifact is set to Production mode.
   0.891 [id=302]       INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
   0.900 [id=302]       WARNING o.j.p.s.EventHistoryStore#enableAutoDeleteOnExpire: AutoExpireTimer was already enable.
   0.907 [id=302]       INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
   0.908 [id=302]       INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
   0.908 [id=296]       INFO    o.j.p.l.NodesMirror#createNodeResources: lockable-resources-plugin: configure node resources
   0.908 [id=332]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2#migrateIdStore: Starting migration of IDs
   0.908 [id=332]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2#performMigration: migration of unique IDs for Jobs and Folders complete - will continue to process Runs in the background.
   0.908 [id=342]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2$RunIDMigrationThread#run: Finished unique-id migration of builds in 0 minutes 0 seconds.  Processed 0 runs from 0 jobs.
   0.909 [id=316]       INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
   1.148 [id=299]       INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
   2.011 [id=334]       INFO    j.j.plugin.JenkinsJobManagement#createOrUpdateConfig: createOrUpdateConfig for custom-icon
   2.548 [id=1] INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Stopping Jenkins
   2.563 [id=1] INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Jenkins stopped
   2.603 [id=1] INFO    o.j.h.t.TemporaryDirectoryAllocator#dispose: deleting <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h11338079066094116135
   0.009 [id=1] INFO    o.jvnet.hudson.test.JenkinsRule#createWebServer: Running on http://localhost:51887/jenkins/
   0.026 [id=375]       INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
   0.027 [id=406]       INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
   0.601 [id=379]       INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
   0.603 [id=394]       INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
   0.605 [id=374]       INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
   3.598 [id=409]       INFO    h.p.c.CopyArtifactConfiguration#load: CopyArtifact is set to Production mode.
   3.629 [id=389]       INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
   3.642 [id=389]       WARNING o.j.p.s.EventHistoryStore#enableAutoDeleteOnExpire: AutoExpireTimer was already enable.
   3.649 [id=389]       INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
   3.649 [id=386]       INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
   3.650 [id=382]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2#migrateIdStore: Starting migration of IDs
   3.650 [id=379]       INFO    o.j.p.l.NodesMirror#createNodeResources: lockable-resources-plugin: configure node resources
   3.650 [id=382]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2#performMigration: migration of unique IDs for Jobs and Folders complete - will continue to process Runs in the background.
   3.650 [id=422]       INFO    o.j.p.u.i.IdStoreMigratorV1ToV2$RunIDMigrationThread#run: Finished unique-id migration of builds in 0 minutes 0 seconds.  Processed 0 runs from 0 jobs.
   3.650 [id=398]       INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
   3.664 [id=411]       INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
   4.008 [id=414]       INFO    j.j.plugin.JenkinsJobManagement#createOrUpdateConfig: createOrUpdateConfig for ionicon-icon
   4.227 [id=1] INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Stopping Jenkins
   4.302 [id=1] INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Jenkins stopped
   4.338 [id=1] INFO    o.j.h.t.TemporaryDirectoryAllocator#dispose: deleting <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h13613650944452246747
[ERROR] Tests run: 5, Failures: 5, Errors: 0, Skipped: 0, Time elapsed: 62.87 s <<< FAILURE! -- in jenkins.plugins.foldericon.JobDSLConfigurationTest
[ERROR] jenkins.plugins.foldericon.JobDSLConfigurationTest.testEmojiFolderIcon(JenkinsRule) -- Time elapsed: 52.29 s <<< FAILURE!
java.lang.AssertionError:
unexpected build status; build log was:
------
Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h2556564847227733394\workspace\Job DSL Configuration
Processing provided DSL script
FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.ClassNotFoundException: org.jenkinsci.plugins.configfiles.GlobalConfigFiles
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
Caused: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:63)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at groovy.lang.Closure.call(Closure.java:420)
        at groovy.lang.Closure.call(Closure.java:436)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
        at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
        at javaposse.jobdsl.plugin.ExecuteDslScripts.perform(ExecuteDslScripts.java:363)
        at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
        at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:164)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
        at hudson.model.Run.execute(Run.java:1895)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
        at hudson.model.ResourceController.execute(ResourceController.java:101)
        at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

------

Expected: is <SUCCESS>
     but: was <FAILURE>
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
        at org.jvnet.hudson.test.JenkinsRule.assertBuildStatus(JenkinsRule.java:1502)
        at jenkins.plugins.foldericon.JobDSLConfigurationTest.createFolder(JobDSLConfigurationTest.java:111)
        at jenkins.plugins.foldericon.JobDSLConfigurationTest.testEmojiFolderIcon(JobDSLConfigurationTest.java:70)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)

[ERROR] jenkins.plugins.foldericon.JobDSLConfigurationTest.testBuildStatusFolderIcon(JenkinsRule) -- Time elapsed: 1.755 s <<< FAILURE!
java.lang.AssertionError:
unexpected build status; build log was:
------
Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h2554718370732993961\workspace\Job DSL Configuration
Processing provided DSL script
FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:63)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at groovy.lang.Closure.call(Closure.java:420)
        at groovy.lang.Closure.call(Closure.java:436)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
        at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
        at javaposse.jobdsl.plugin.ExecuteDslScripts.perform(ExecuteDslScripts.java:363)
        at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
        at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:164)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
        at hudson.model.Run.execute(Run.java:1895)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
        at hudson.model.ResourceController.execute(ResourceController.java:101)
        at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

------

Expected: is <SUCCESS>
     but: was <FAILURE>
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
        at org.jvnet.hudson.test.JenkinsRule.assertBuildStatus(JenkinsRule.java:1502)
        at jenkins.plugins.foldericon.JobDSLConfigurationTest.createFolder(JobDSLConfigurationTest.java:111)
        at jenkins.plugins.foldericon.JobDSLConfigurationTest.testBuildStatusFolderIcon(JobDSLConfigurationTest.java:56)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)

[ERROR] jenkins.plugins.foldericon.JobDSLConfigurationTest.testFontAwesomeFolderIcon(JenkinsRule) -- Time elapsed: 1.844 s <<< FAILURE!
java.lang.AssertionError:
unexpected build status; build log was:
------
Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h18401752526002944834\workspace\Job DSL Configuration
Processing provided DSL script
FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:63)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at groovy.lang.Closure.call(Closure.java:420)
        at groovy.lang.Closure.call(Closure.java:436)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
        at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
        at javaposse.jobdsl.plugin.ExecuteDslScripts.perform(ExecuteDslScripts.java:363)
        at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
        at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:164)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
        at hudson.model.Run.execute(Run.java:1895)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
        at hudson.model.ResourceController.execute(ResourceController.java:101)
        at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

------

Expected: is <SUCCESS>
     but: was <FAILURE>
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
        at org.jvnet.hudson.test.JenkinsRule.assertBuildStatus(JenkinsRule.java:1502)
        at jenkins.plugins.foldericon.JobDSLConfigurationTest.createFolder(JobDSLConfigurationTest.java:111)
        at jenkins.plugins.foldericon.JobDSLConfigurationTest.testFontAwesomeFolderIcon(JobDSLConfigurationTest.java:76)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)

[ERROR] jenkins.plugins.foldericon.JobDSLConfigurationTest.testCustomIconFolderIcon(JenkinsRule) -- Time elapsed: 2.612 s <<< FAILURE!
java.lang.AssertionError:
unexpected build status; build log was:
------
Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h11338079066094116135\workspace\Job DSL Configuration
Processing provided DSL script
FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:63)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at groovy.lang.Closure.call(Closure.java:420)
        at groovy.lang.Closure.call(Closure.java:436)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
        at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
        at javaposse.jobdsl.plugin.ExecuteDslScripts.perform(ExecuteDslScripts.java:363)
        at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
        at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:164)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
        at hudson.model.Run.execute(Run.java:1895)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
        at hudson.model.ResourceController.execute(ResourceController.java:101)
        at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

------

Expected: is <SUCCESS>
     but: was <FAILURE>
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
        at org.jvnet.hudson.test.JenkinsRule.assertBuildStatus(JenkinsRule.java:1502)
        at jenkins.plugins.foldericon.JobDSLConfigurationTest.createFolder(JobDSLConfigurationTest.java:111)
        at jenkins.plugins.foldericon.JobDSLConfigurationTest.testCustomIconFolderIcon(JobDSLConfigurationTest.java:63)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)

[ERROR] jenkins.plugins.foldericon.JobDSLConfigurationTest.testIoniconFolderIcon(JenkinsRule) -- Time elapsed: 4.347 s <<< FAILURE!
java.lang.AssertionError:
unexpected build status; build log was:
------
Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h13613650944452246747\workspace\Job DSL Configuration
Processing provided DSL script
FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:63)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at groovy.lang.Closure.call(Closure.java:420)
        at groovy.lang.Closure.call(Closure.java:436)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
        at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
        at javaposse.jobdsl.plugin.ExecuteDslScripts.perform(ExecuteDslScripts.java:363)
        at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
        at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:164)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
        at hudson.model.Run.execute(Run.java:1895)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
        at hudson.model.ResourceController.execute(ResourceController.java:101)
        at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

------

Expected: is <SUCCESS>
     but: was <FAILURE>
        at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
        at org.jvnet.hudson.test.JenkinsRule.assertBuildStatus(JenkinsRule.java:1502)
        at jenkins.plugins.foldericon.JobDSLConfigurationTest.createFolder(JobDSLConfigurationTest.java:111)
        at jenkins.plugins.foldericon.JobDSLConfigurationTest.testIoniconFolderIcon(JobDSLConfigurationTest.java:82)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)

[INFO] 
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR]   JobDSLConfigurationTest.testBuildStatusFolderIcon:56->createFolder:111 unexpected build status; build log was:
------
Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h2554718370732993961\workspace\Job DSL Configuration
Processing provided DSL script
FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:63)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at groovy.lang.Closure.call(Closure.java:420)
        at groovy.lang.Closure.call(Closure.java:436)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
        at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
        at javaposse.jobdsl.plugin.ExecuteDslScripts.perform(ExecuteDslScripts.java:363)
        at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
        at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:164)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
        at hudson.model.Run.execute(Run.java:1895)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
        at hudson.model.ResourceController.execute(ResourceController.java:101)
        at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

------

Expected: is <SUCCESS>
     but: was <FAILURE>
[ERROR]   JobDSLConfigurationTest.testCustomIconFolderIcon:63->createFolder:111 unexpected build status; build log was:
------
Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h11338079066094116135\workspace\Job DSL Configuration
Processing provided DSL script
FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:63)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at groovy.lang.Closure.call(Closure.java:420)
        at groovy.lang.Closure.call(Closure.java:436)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
        at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
        at javaposse.jobdsl.plugin.ExecuteDslScripts.perform(ExecuteDslScripts.java:363)
        at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
        at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:164)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
        at hudson.model.Run.execute(Run.java:1895)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
        at hudson.model.ResourceController.execute(ResourceController.java:101)
        at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

------

Expected: is <SUCCESS>
     but: was <FAILURE>
[ERROR]   JobDSLConfigurationTest.testEmojiFolderIcon:70->createFolder:111 unexpected build status; build log was:
------
Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h2556564847227733394\workspace\Job DSL Configuration
Processing provided DSL script
FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.ClassNotFoundException: org.jenkinsci.plugins.configfiles.GlobalConfigFiles
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
Caused: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:63)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at groovy.lang.Closure.call(Closure.java:420)
        at groovy.lang.Closure.call(Closure.java:436)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
        at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
        at javaposse.jobdsl.plugin.ExecuteDslScripts.perform(ExecuteDslScripts.java:363)
        at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
        at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:164)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
        at hudson.model.Run.execute(Run.java:1895)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
        at hudson.model.ResourceController.execute(ResourceController.java:101)
        at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

------

Expected: is <SUCCESS>
     but: was <FAILURE>
[ERROR]   JobDSLConfigurationTest.testFontAwesomeFolderIcon:76->createFolder:111 unexpected build status; build log was:
------
Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h18401752526002944834\workspace\Job DSL Configuration
Processing provided DSL script
FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:63)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at groovy.lang.Closure.call(Closure.java:420)
        at groovy.lang.Closure.call(Closure.java:436)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
        at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
        at javaposse.jobdsl.plugin.ExecuteDslScripts.perform(ExecuteDslScripts.java:363)
        at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
        at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:164)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
        at hudson.model.Run.execute(Run.java:1895)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
        at hudson.model.ResourceController.execute(ResourceController.java:101)
        at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

------

Expected: is <SUCCESS>
     but: was <FAILURE>
[ERROR]   JobDSLConfigurationTest.testIoniconFolderIcon:82->createFolder:111 unexpected build status; build log was:
------
Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\bom\target\pct-work\custom-folder-icon-plugin\target\tmp\j h13613650944452246747\workspace\Job DSL Configuration
Processing provided DSL script
FATAL: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
java.lang.NoClassDefFoundError: org/jenkinsci/plugins/configfiles/GlobalConfigFiles
        at javaposse.jobdsl.plugin.JenkinsDslScriptLoader.extractGeneratedItems(JenkinsDslScriptLoader.java:26)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader$_runScripts_closure1.doCall(AbstractDslScriptLoader.groovy:63)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
        at groovy.lang.Closure.call(Closure.java:420)
        at groovy.lang.Closure.call(Closure.java:436)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
        at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at javaposse.jobdsl.dsl.AbstractDslScriptLoader.runScripts(AbstractDslScriptLoader.groovy:46)
        at javaposse.jobdsl.plugin.ExecuteDslScripts.perform(ExecuteDslScripts.java:363)
        at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
        at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:164)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
        at hudson.model.Run.execute(Run.java:1895)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
        at hudson.model.ResourceController.execute(ResourceController.java:101)
        at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

------

Expected: is <SUCCESS>
     but: was <FAILURE>
[INFO]
[ERROR] Tests run: 5, Failures: 5, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:07 min
[INFO] Finished at: 2024-01-07T12:01:25+01:00
[INFO] ------------------------------------------------------------------------

@strangelookingnerd strangelookingnerd self-assigned this Jan 7, 2024
@strangelookingnerd
Copy link
Contributor

strangelookingnerd commented Jan 7, 2024

On further investigation I can see the same tests failing locally when I run them via IntelliJ. This seems to be related to the target\test-classes\test-dependencies folder containing the plugins for testing.

Legacy code started this job.  No cause information is available
Running as SYSTEM
Building in workspace <REDACTED>\custom-folder-icon-plugin\target\tmp\j h8428124287318749407\workspace\Job DSL Configuration
Processing provided DSL script
ERROR: (script, line 1) version 5.14 or later of plugin 'cloudbees-folder' needs to be installed
Finished: FAILURE

However once I ran mvn clean test to create the folder and plugins the test failures disappear.
Interestingly mvn clean test does not have any failing tests.

@strangelookingnerd
Copy link
Contributor

strangelookingnerd commented Jan 8, 2024

@MarkEWaite

So it seems like in order to successfully run local-test.sh I explicitly need to define

        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>config-file-provider</artifactId>
            <version>959.vcff671a_4518b_</version>
            <scope>test</scope>
        </dependency>

In my plugin pom.xml. However the reason why that would be required is beyond me. As stated before this is not required when running the plugin build normally. To me it seems like there is something wrong in either PCT or the BOM build.

Could it be that resolving optional dependencies is causing issues here?

Possibly related to jenkinsci/maven-hpi-plugin#391

@MarkEWaite
Copy link
Contributor Author

So it seems like in order to successfully run local-test.sh I explicitly need to define

        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>config-file-provider</artifactId>
            <version>959.vcff671a_4518b_</version>
            <scope>test</scope>
        </dependency>

In my plugin pom.xml. However the reason why that would be required is beyond me.

I don't have a good explanation why it is needed, but I believe it is valid to include config-file-provider as a test dependency of custom-folder-icon if that allows the new Job DSL test to also be run in the plugin bill of materials.

I think that you are right that the behavior is related to jenkinsci/maven-hpi-plugin#391 although I don't understand the details. The Job DSL plugin dependencies include an optional dependency on config-file-provider plugin. That optional dependency seems to not be resolved in the context of the additional plugins that are loaded into the test environment by the plugin bill of materials.

In other failure cases like this, we've been able to find a subset of the plugin bom dependencies that would cause the plugin test to fail in the plugin's own repository. However, since you've already found that the addition of a test scoped dependency on config-file-provider resolves the failure, I'm not sure that it is worth the effort to find that subset of dependencies that will show the failure in the plugin's own repository. It seems reasonable to add that test dependency with a comment that it is needed for the plugin bill of materials and can be removed in the future once plugin bill of materials testing no longer requires it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
2 participants