File tree Expand file tree Collapse file tree 4 files changed +107
-0
lines changed
main/groovy/javaposse/jobdsl/dsl/helpers/step
test/groovy/javaposse/jobdsl/dsl/helpers/step Expand file tree Collapse file tree 4 files changed +107
-0
lines changed 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)
142143 downstreamParameterized(Closure downstreamClosure)
143144 dsl(Closure dslClosure)
144145 dsl(String scriptText, String removedJobAction = null,
@@ -3044,6 +3045,22 @@ When a job is checked the following conditions must be validated before the job
30443045
30453046(Since 1.19)
30463047
3048+ # [ Debian Package Builder Plugin] ( https://wiki.jenkins-ci.org/display/JENKINS/Debian+Package+Builder+Plugin )
3049+
3050+ ``` groovy
3051+ debianPackage(String path, Closure debianClosure) {
3052+ signPackage(true) // Sign package with GPG (key configured in Jenkins settings)
3053+ generateChangelog(false) // Build changelog from Git
3054+ buildEvenWhenThereAreNoChanges(false) // Build package if no changes has been made in SCM
3055+ }
3056+ ```
3057+
3058+ Supports <a href =" https://wiki.jenkins-ci.org/display/JENKINS/Debian+Package+Builder+Plugin " >the Debian PackageBuilder Plugin</a >.
3059+
3060+ Path refers to a path in the workspace where the 'debian' catalog is stored.
3061+
3062+ The plugin will automatically install packages required to build Debian packages.
3063+
30473064# [ Parameterized Trigger as Build Step] ( https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin )
30483065
30493066``` 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+ String nextVersion
7+ boolean generateChangelog
8+ boolean signPackage
9+ boolean buildEvenWhenThereAreNoChanges
10+
11+ void nextVersion (String nextVersion ) {
12+ this . nextVersion = nextVersion
13+ }
14+
15+ void generateChangelog (boolean generateChangelog ) {
16+ this . generateChangelog = generateChangelog
17+ }
18+
19+ void signPackage (boolean signPackage ) {
20+ this . signPackage = signPackage
21+ }
22+
23+ void buildEvenWhenThereAreNoChanges (boolean buildEvenWhenThereAreNoChanges ) {
24+ this . buildEvenWhenThereAreNoChanges = buildEvenWhenThereAreNoChanges
25+ }
26+
27+ }
Original file line number Diff line number Diff line change @@ -1116,4 +1116,30 @@ class StepContext implements Context {
11161116 }
11171117 }
11181118 }
1119+
1120+ /**
1121+ * <ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder plugin="debian-package-builder@1.6.6">
1122+ * <pathToDebian>package</pathToDebian>
1123+ * <nextVersion></nextVersion>
1124+ * <generateChangelog>false</generateChangelog>
1125+ * <signPackage>false</signPackage>
1126+ * <buildEvenWhenThereAreNoChanges>false</buildEvenWhenThereAreNoChanges>
1127+ * </ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder>
1128+ */
1129+ void debianPackage (String path , @DslContext (DebianContext ) Closure closure = null ) {
1130+ Preconditions . checkArgument(! isNullOrEmpty(path), ' path must be specified' )
1131+
1132+ DebianContext context = new DebianContext ()
1133+ ContextHelper . executeInContext(closure, context)
1134+
1135+ stepNodes << new NodeBuilder (). ' ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder' {
1136+ pathToDebian(path)
1137+ if (context. nextVersion != null ) {
1138+ nextVersion(context. nextVersion)
1139+ }
1140+ generateChangelog(context. generateChangelog)
1141+ signPackage(context. signPackage)
1142+ buildEvenWhenThereAreNoChanges(context. buildEvenWhenThereAreNoChanges)
1143+ }
1144+ }
11191145}
Original file line number Diff line number Diff line change @@ -2451,4 +2451,41 @@ still-another-dsl.groovy'''
24512451 where :
24522452 mode << [' GET' , ' POST' , ' PUT' , ' DELETE' ]
24532453 }
2454+
2455+ def ' call debian package with only required option' () {
2456+ when :
2457+ context. debianPackage(' package' )
2458+
2459+ then :
2460+ context. stepNodes. size() == 1
2461+ with(context. stepNodes[0 ]) {
2462+ name() == ' ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder'
2463+ pathToDebian[0 ]. value() == ' package'
2464+ signPackage[0 ]. value() == false
2465+ generateChangelog[0 ]. value() == false
2466+ buildEvenWhenThereAreNoChanges[0 ]. value() == false
2467+ }
2468+
2469+ }
2470+
2471+ def ' call debian package with all options' () {
2472+ when :
2473+ context. debianPackage(' package' ) {
2474+ signPackage(true )
2475+ generateChangelog(true )
2476+ buildEvenWhenThereAreNoChanges(true )
2477+ }
2478+
2479+ then :
2480+ context. stepNodes. size() == 1
2481+ with(context. stepNodes[0 ]) {
2482+ name() == ' ru.yandex.jenkins.plugins.debuilder.DebianPackageBuilder'
2483+ pathToDebian[0 ]. value() == ' package'
2484+ signPackage[0 ]. value() == true
2485+ generateChangelog[0 ]. value() == true
2486+ buildEvenWhenThereAreNoChanges[0 ]. value() == true
2487+ }
2488+
2489+ }
2490+
24542491}
You can’t perform that action at this time.
0 commit comments