Have a lot of jobs created with jenkins-jobs-builder that it is proving
difficult to maintain.
Looking to move to dsl and possibly pipeline-dsl.
Most of jobs have the following logic:
- ability to build debug and/or release builds
- manually invoked or scm triggered
- ability to select whether to promote or not, which I use to store
artifacts to package repository or a ssh-server depending on job
- users want build artifacts for each build
- users may not want those artifacts to be used by dependent jobs
OR promoted to package repository.
For every job, there are 2 sub-jobs to handle the release and debug builds
- actual builds are performed in a docker container
- there is a shared id (patch number) between the release and debug
builds, but again user can disable one or both via build parameter.
I can't quite figure out how to do everything in dsl yet and pipeline-dsl
even less.
First, thing. I have a set of parameters for each job, 1 that is using
PersistentParameter plugin. This is needed for manually triggered usage
where user can set a value and it is remembered the next time. Looking at
the dsl-plugin api viewer, I can see the plugin, but can not make it work.
import com.gem.persistentparameter.*
job('ci') {
description 'Build and test the app.'
parameters {
stringParam('p1','master','my des')
persistentStringParameterDefinition('p2','t123',false, 'help')
}
scm {
github 'sheehan/job-dsl-playground'
}
steps {
gradle 'test'
}
publishers {
archiveJunit 'build/test-results/**/*.xml'
}
}
javaposse.jobdsl.dsl.DslScriptException: (script, line 7) No signature of
method:
javaposse.jobdsl.dsl.helpers.BuildParametersContext.persistentStringParameterDefinition()
is applicable for argument types: (java.lang.String, java.lang.String,
java.lang.Boolean, java.lang.String) values: [p2, t123, false, help]
How can I achieve this?
However, I can port my yaml/logic to dsl and clean things up and hopefully
simplified, and I can use gradle to load jobs into jenkins.
For pipeline-dsl, I am less sure. Loading Jenkinsfile from scm doesn't fit
my situation, but possibly a dsl seedjob to handle it can work. The
pipeline-dsl has less features so I will probably be face with similar
issues as above. How would I handle? To really clean my jobs up, ideally,
would want my parameters moved up to pipeline parameters.
Thanks in advance,
Doug
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/922678bd-84b2-4a31-8dc4-476a55922b7a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.