File tree Expand file tree Collapse file tree 5 files changed +115
-0
lines changed
main/groovy/javaposse/jobdsl/dsl/helpers/step
test/groovy/javaposse/jobdsl/dsl/helpers/step Expand file tree Collapse file tree 5 files changed +115
-0
lines changed Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ Have a look at the [Jenkins Job DSL Gradle example](https://github.com/sheehan/j
2020 * Added support for [ Build Node Column Plugin] ( https://wiki.jenkins-ci.org/display/JENKINS/Build+Node+Column+Plugin )
2121 * Added support for [ Pre-SCM Build Step Plugin] ( https://wiki.jenkins-ci.org/display/JENKINS/pre-scm-buildstep )
2222 * Added support for [ Sonar Plugin] ( http://docs.sonarqube.org/display/SONAR/Jenkins+Plugin )
23+ * Added support for [ Debian Package Builder Plugin] ( https://wiki.jenkins-ci.org/display/JENKINS/Debian+Package+Builder+Plugin )
2324 * Added ` recurse ` option for list views
2425 * Added ` ignorePostCommitHooks ` option for SCM trigger
2526 * Added ` commentFilePath ` option for [ GitHub Pull Request Builder Plugin] ( https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin )
Original file line number Diff line number Diff line change @@ -139,6 +139,7 @@ freeStyleJob(String name) { // since 1.30
139139 boolean flattenFiles, boolean optionalAllowed,
140140 Closure copyArtifactClosure)
141141 criticalBlock(Closure stepClosure) // since 1.24
142+ debianPackage(String path, Closure debianClosure = null) // since 1.31
142143 downstreamParameterized(Closure downstreamClosure)
143144 dsl(Closure dslClosure)
144145 dsl(String scriptText, String removedJobAction = null,
@@ -3067,6 +3068,36 @@ When a job is checked the following conditions must be validated before the job
30673068
30683069(Since 1.19)
30693070
3071+ # Debian Package Builder
3072+
3073+ ``` groovy
3074+ job {
3075+ step {
3076+ debianPackage(String path) {
3077+ signPackage(boolean sign = true) // defaults to true
3078+ generateChangelog(String nextVersion = null, boolean alwaysBuild = false)
3079+ }
3080+ }
3081+ }
3082+ ```
3083+
3084+ Requires the [ Debian Package Builder Plugin] ( https://wiki.jenkins-ci.org/display/JENKINS/Debian+Package+Builder+Plugin ) .
3085+
3086+ The ` path ` parameter refers to a path in the workspace where the 'debian' catalog is stored. The plugin will
3087+ automatically install packages required to build Debian packages.
3088+
3089+ ``` groovy
3090+ job {
3091+ step {
3092+ debianPackage('module') {
3093+ generateChangelog()
3094+ }
3095+ }
3096+ }
3097+ ```
3098+
3099+ (since 1.31)
3100+
30703101# [ Parameterized Trigger as Build Step] ( https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin )
30713102
30723103``` groovy
Original file line number Diff line number Diff line change 1+ package javaposse.jobdsl.dsl.helpers.step
2+
3+ import javaposse.jobdsl.dsl.Context
4+
5+ class DebianContext implements Context {
6+ boolean generateChangelog
7+ String nextVersion
8+ boolean alwaysBuild
9+ boolean signPackage = true
10+
11+ void generateChangelog (String nextVersion = null , boolean alwaysBuild = false ) {
12+ this . generateChangelog = true
13+ this . nextVersion = nextVersion
14+ this . alwaysBuild = alwaysBuild
15+ }
16+
17+ void signPackage (boolean signPackage = true ) {
18+ this . signPackage = signPackage
19+ }
20+ }
Original file line number Diff line number Diff line change @@ -1059,4 +1059,30 @@ class StepContext implements Context {
10591059 nodeJSInstallationName(installation)
10601060 }
10611061 }
1062+
1063+ /**
1064+ * <ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder>
1065+ * <pathToDebian>package</pathToDebian>
1066+ * <nextVersion></nextVersion>
1067+ * <generateChangelog>false</generateChangelog>
1068+ * <signPackage>false</signPackage>
1069+ * <buildEvenWhenThereAreNoChanges>false</buildEvenWhenThereAreNoChanges>
1070+ * </ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder>
1071+ */
1072+ void debianPackage (String path , @DslContext (DebianContext ) Closure closure = null ) {
1073+ jobManagement. requireMinimumPluginVersion(' debian-package-builder' , ' 1.6.6' )
1074+
1075+ Preconditions . checkArgument(! isNullOrEmpty(path), ' path must be specified' )
1076+
1077+ DebianContext context = new DebianContext ()
1078+ ContextHelper . executeInContext(closure, context)
1079+
1080+ stepNodes << new NodeBuilder (). ' ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder' {
1081+ pathToDebian(path)
1082+ nextVersion(context. nextVersion ?: ' ' )
1083+ generateChangelog(context. generateChangelog)
1084+ signPackage(context. signPackage)
1085+ buildEvenWhenThereAreNoChanges(context. alwaysBuild)
1086+ }
1087+ }
10621088}
Original file line number Diff line number Diff line change @@ -2256,4 +2256,41 @@ still-another-dsl.groovy'''
22562256 nodeJSInstallationName[0 ]. value() == ' node (0.0.1)'
22572257 }
22582258 }
2259+
2260+ def ' call debian package with only required option' () {
2261+ when :
2262+ context. debianPackage(' package' )
2263+
2264+ then :
2265+ with(context. stepNodes[0 ]) {
2266+ name() == ' ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder'
2267+ children(). size() == 5
2268+ pathToDebian[0 ]. value() == ' package'
2269+ nextVersion[0 ]. value() == ' '
2270+ generateChangelog[0 ]. value() == false
2271+ signPackage[0 ]. value() == true
2272+ buildEvenWhenThereAreNoChanges[0 ]. value() == false
2273+ }
2274+ _ * jobManagement. requireMinimumPluginVersion(' debian-package-builder' , ' 1.6.6' )
2275+ }
2276+
2277+ def ' call debian package with all options' () {
2278+ when :
2279+ context. debianPackage(' package' ) {
2280+ signPackage(false )
2281+ generateChangelog(' 1.0' , true )
2282+ }
2283+
2284+ then :
2285+ with(context. stepNodes[0 ]) {
2286+ name() == ' ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder'
2287+ children(). size() == 5
2288+ pathToDebian[0 ]. value() == ' package'
2289+ nextVersion[0 ]. value() == ' 1.0'
2290+ generateChangelog[0 ]. value() == true
2291+ signPackage[0 ]. value() == false
2292+ buildEvenWhenThereAreNoChanges[0 ]. value() == true
2293+ }
2294+ _ * jobManagement. requireMinimumPluginVersion(' debian-package-builder' , ' 1.6.6' )
2295+ }
22592296}
You can’t perform that action at this time.
0 commit comments