@@ -46,6 +46,11 @@ pipeline {
46
46
deleteDir()
47
47
gitCheckout(basedir : " ${ BASE_DIR} " , githubNotifyFirstTimeContributor : true )
48
48
stash allowEmpty : true , name : ' source' , useDefaultExcludes : false
49
+ dir(" ${ BASE_DIR} " ){
50
+ setEnvVar(' ONLY_DOCS' , isGitRegionMatch(patterns : [ ' .*\\ .(asciidoc|md)' ], shouldMatchAll : true ). toString())
51
+ setEnvVar(' PACKAGING_CHANGES' , isGitRegionMatch(patterns : [ ' (^dev-tools/packaging/.*|.ci/Jenkinsfile)' ], shouldMatchAll : false ). toString())
52
+ setEnvVar(' K8S_CHANGES' , isGitRegionMatch(patterns : [ ' (^deploy/kubernetes/.*|^version/docs/version.asciidoc)' ], shouldMatchAll : false ). toString())
53
+ }
49
54
}
50
55
}
51
56
stage(' Lint' ){
@@ -66,6 +71,17 @@ pipeline {
66
71
}
67
72
}
68
73
stage(' Test' ) {
74
+ when {
75
+ // Always when running builds on branches/tags
76
+ // On a PR basis, skip if changes are only related to docs.
77
+ anyOf {
78
+ not { changeRequest() } // If no PR
79
+ allOf { // If PR and no docs changes
80
+ expression { return env. ONLY_DOCS == " false" }
81
+ changeRequest()
82
+ }
83
+ }
84
+ }
69
85
failFast false
70
86
matrix {
71
87
agent {label " ${ PLATFORM} " }
@@ -108,10 +124,15 @@ pipeline {
108
124
}
109
125
stage(' K8s' ) {
110
126
when {
111
- // TODO: Run only if changes in
112
- // - "^deploy/kubernetes/.*"
113
- // - "^version/docs/version.asciidoc"
114
- expression { return env. PLATFORM == ' ubuntu-20.04 && immutable' }
127
+ // Always when running builds on branches/tags
128
+ // Enable if k8s related changes.
129
+ allOf {
130
+ expression { return env. PLATFORM == ' ubuntu-20.04 && immutable' }
131
+ anyOf {
132
+ not { changeRequest() } // If no PR
133
+ expression { return env. K8S_CHANGES == " true" }
134
+ }
135
+ }
115
136
}
116
137
steps {
117
138
runK8s(k8sVersion : ' v1.23.0' , kindVersion : ' v0.11.1' , context : " K8s-${ PLATFORM} " )
@@ -124,7 +145,8 @@ pipeline {
124
145
anyOf {
125
146
expression { return env. GITHUB_COMMENT ?. contains(' package' ) }
126
147
expression { matchesPrLabel(label : ' ci:package' ) }
127
- // not { changeRequest() }
148
+ not { changeRequest() }
149
+ expression { return env. PACKAGING_CHANGES == " true" }
128
150
}
129
151
// Run packaging only for the linux specific arch
130
152
expression { return (PLATFORM . contains(' ubuntu' ) || PLATFORM . contains(' aarch64' )) }
@@ -170,10 +192,17 @@ pipeline {
170
192
}
171
193
stage(' K8s' ) {
172
194
when {
173
- // TODO: Run only if changes in
174
- // - "^deploy/kubernetes/.*"
175
- // - "^version/docs/version.asciidoc"
176
- not { changeRequest() }
195
+ // Always when running builds on branches/tags
196
+ // On a PR basis, skip if changes are only related to docs.
197
+ // Enable if k8s related changes.
198
+ anyOf {
199
+ not { changeRequest() } // If no PR
200
+ allOf { // If PR and no docs changes
201
+ expression { return env. ONLY_DOCS == " false" }
202
+ changeRequest()
203
+ }
204
+ expression { return env. K8S_CHANGES == " true" } // If k8s changes
205
+ }
177
206
}
178
207
steps {
179
208
runAllK8s([" v1.23.0" , " v1.22.0" , " v1.21.1" , " v1.20.7" , " v1.19.11" , " v1.18.19" ])
0 commit comments