-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathgitMergePipeline.groovy
77 lines (63 loc) · 1.56 KB
/
gitMergePipeline.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//
// Author: Hari Sekhon
// Date: 2021-04-30 15:25:01 +0100 (Fri, 30 Apr 2021)
//
// vim:ts=2:sts=2:sw=2:et
//
// https://github.com/HariSekhon/Jenkins
//
// License: see accompanying Hari Sekhon LICENSE file
//
// If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish
//
// https://www.linkedin.com/in/HariSekhon
//
// ========================================================================== //
// G i t M e r g e B r a n c h e P i p e l i n e
// ========================================================================== //
// Usage in Jenkinsfile:
//
// @Library('github.com/harisekhon/jenkins@master') _
// gitMergePipeline('staging', 'dev')
//
def call (fromBranch, toBranch) {
pipeline {
agent any
options {
disableConcurrentBuilds()
}
// backup to catch GitHub -> Jenkins webhook failures
triggers {
pollSCM('H/10 * * * *')
}
stages {
stage('Environment') {
steps {
printEnv()
}
}
stage('Git Merge') {
steps {
gitMerge("$fromBranch", "$toBranch")
}
}
// git push needs to be done in the same step gitMerge to benefit properly from the locking
//stage('Git Push') {
// steps {
// sh (
// label: 'Git Push',
// script: 'git push origin --all'
// )
// }
//}
}
post {
failure {
Notify()
}
fixed {
Notify()
}
}
}
}