Hello everyone, I've been setting up a new Jenkins 2.8 with JobDSL 1.47. I looked up and adhered to all change notes, and when it comes to a "conditional Steps" build step, I'm encountering the following error:
fileExists(projectName+'/target/windows/test/tests.exe', BaseDir.WORKSPACE) --> No such property: BaseDir for class: javaposse.jobdsl.dsl.helpers.step.RunConditionContext<https://github.com/jenkinsci/job-dsl-plugin/blob/master/job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/step/RunConditionContext.groovy> I remember encountering this with JobDSL version 1.34 already - my workaround was to import javaposse.jobdsl.dsl.helpers.step.RunConditionContext.BaseDir in the JobDSL file directly. If I do this now, I get the following error, which seems to make this a deadlocked situation: Script1.groovy: 1: unable to resolve class javaposse.jobdsl.dsl.helpers.step.RunConditionContext.BaseDir I am using a Groovy script to do set up a tailored environment for the JobDSL file (binding). It usually works perfectly. I've been trying a dozen things today to circumvent the above condition, including - Direct import of j.j.d.h.s.*, j.j.d.h.s.RunConditionContext, j.j.d.h.s.RunConditionContext.BaseDir - Indirect import of the Enum type (see below) - The above steps with the former, deprecated classpath (it was redirected, the error remained) - Searching for the class on the system in order to add it as classpath (didn't find any on the system oO) - Using filesMatch() instead of fileExists() (same error) - Using FQN - ... The most helpful, but also the most confusing output came when I imported javaposse.jobdsl.dsl.helpers.step.RunConditionContext.BaseDir into the top-level Groovy script, and then passed BaseDir.WORKSPACE in as an environment variable: No signature of method: javaposse.jobdsl.dsl.helpers.step.ConditionalStepsContext.fileExists() is applicable for argument types: (java.lang.String, javaposse.jobdsl.dsl.helpers.step.RunConditionContext$BaseDir) values: [myProject/target/windows/test/tests.exe, WORKSPACE] But this is exactly what fileExists() is defined to work with! I'm starting to think it must be something more basic, and I just didn't see it. Or a bug. Can anyone help? Thanks, Jennifer Code snippet: Closure jobClosure = { steps { conditionalSteps { condition { fileExists(projectName+'/target/windows/test/tests.exe', BaseDir.WORKSPACE) } runner('Fail') steps { batchFile(...) } } } } return jobClosure -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAA587D532C45541B62417404F1D22030E88272E%40you-exch1.younicos.local. For more options, visit https://groups.google.com/d/optout.