github.com/noironetworks/cilium-net@v1.6.12/jenkinsfiles/ginkgo-kubernetes-all.Jenkinsfile (about) 1 @Library('cilium') _ 2 3 pipeline { 4 agent { 5 label 'baremetal' 6 } 7 8 parameters { 9 string(defaultValue: '${ghprbPullDescription}', name: 'ghprbPullDescription') 10 string(defaultValue: '${ghprbActualCommit}', name: 'ghprbActualCommit') 11 string(defaultValue: '${ghprbTriggerAuthorLoginMention}', name: 'ghprbTriggerAuthorLoginMention') 12 string(defaultValue: '${ghprbPullAuthorLoginMention}', name: 'ghprbPullAuthorLoginMention') 13 string(defaultValue: '${ghprbGhRepository}', name: 'ghprbGhRepository') 14 string(defaultValue: '${ghprbPullLongDescription}', name: 'ghprbPullLongDescription') 15 string(defaultValue: '${ghprbCredentialsId}', name: 'ghprbCredentialsId') 16 string(defaultValue: '${ghprbTriggerAuthorLogin}', name: 'ghprbTriggerAuthorLogin') 17 string(defaultValue: '${ghprbPullAuthorLogin}', name: 'ghprbPullAuthorLogin') 18 string(defaultValue: '${ghprbTriggerAuthor}', name: 'ghprbTriggerAuthor') 19 string(defaultValue: '${ghprbCommentBody}', name: 'ghprbCommentBody') 20 string(defaultValue: '${ghprbPullTitle}', name: 'ghprbPullTitle') 21 string(defaultValue: '${ghprbPullLink}', name: 'ghprbPullLink') 22 string(defaultValue: '${ghprbAuthorRepoGitUrl}', name: 'ghprbAuthorRepoGitUrl') 23 string(defaultValue: '${ghprbTargetBranch}', name: 'ghprbTargetBranch') 24 string(defaultValue: '${ghprbPullId}', name: 'ghprbPullId') 25 string(defaultValue: '${ghprbActualCommitAuthor}', name: 'ghprbActualCommitAuthor') 26 string(defaultValue: '${ghprbActualCommitAuthorEmail}', name: 'ghprbActualCommitAuthorEmail') 27 string(defaultValue: '${ghprbTriggerAuthorEmail}', name: 'ghprbTriggerAuthorEmail') 28 string(defaultValue: '${GIT_BRANCH}', name: 'GIT_BRANCH') 29 string(defaultValue: '${ghprbPullAuthorEmail}', name: 'ghprbPullAuthorEmail') 30 string(defaultValue: '${sha1}', name: 'sha1') 31 string(defaultValue: '${ghprbSourceBranch}', name: 'ghprbSourceBranch') 32 } 33 34 environment { 35 PROJ_PATH = "src/github.com/cilium/cilium" 36 MEMORY = "4096" 37 TESTDIR="${WORKSPACE}/${PROJ_PATH}/test" 38 GOPATH="${WORKSPACE}" 39 SERVER_BOX = "cilium/ubuntu" 40 FAILFAST=setIfLabel("ci/fail-fast", "true", "false") 41 CNI_INTEGRATION=setIfLabel("integration/cni-flannel", "FLANNEL", "") 42 GINKGO_TIMEOUT="98m" 43 } 44 45 options { 46 timeout(time: 300, unit: 'MINUTES') 47 timestamps() 48 ansiColor('xterm') 49 } 50 51 stages { 52 stage('Checkout') { 53 options { 54 timeout(time: 20, unit: 'MINUTES') 55 } 56 57 steps { 58 sh 'env' 59 Status("PENDING", "${env.JOB_NAME}") 60 checkout scm 61 sh 'mkdir -p ${PROJ_PATH}' 62 sh 'ls -A | grep -v src | xargs mv -t ${PROJ_PATH}' 63 sh '/usr/local/bin/cleanup || true' 64 } 65 } 66 stage('Preload vagrant boxes') { 67 steps { 68 sh '/usr/local/bin/add_vagrant_box ${WORKSPACE}/${PROJ_PATH}/vagrant_box_defaults.rb' 69 } 70 post { 71 unsuccessful { 72 script { 73 if (!currentBuild.displayName.contains('fail')) { 74 currentBuild.displayName = 'preload vagrant boxes fail' + currentBuild.displayName 75 } 76 } 77 } 78 } 79 } 80 stage('Copy code and boot VMs 1.{11,12}'){ 81 82 options { 83 timeout(time: 60, unit: 'MINUTES') 84 } 85 86 environment { 87 GOPATH="${WORKSPACE}" 88 TESTDIR="${WORKSPACE}/${PROJ_PATH}/test" 89 } 90 91 parallel { 92 stage('Boot vms 1.11') { 93 environment { 94 TESTED_SUITE="1.11" 95 GOPATH="${WORKSPACE}/${TESTED_SUITE}-gopath" 96 TESTDIR="${GOPATH}/${PROJ_PATH}/test" 97 } 98 steps { 99 sh 'mkdir -p ${GOPATH}/src/github.com/cilium' 100 sh 'cp -a ${WORKSPACE}/${PROJ_PATH} ${GOPATH}/${PROJ_PATH}' 101 retry(3) { 102 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} vagrant destroy k8s1-${TESTED_SUITE} k8s2-${TESTED_SUITE} --force' 103 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} vagrant up k8s1-${TESTED_SUITE} k8s2-${TESTED_SUITE} --provision' 104 } 105 } 106 post { 107 unsuccessful { 108 script { 109 if (!currentBuild.displayName.contains('fail')) { 110 currentBuild.displayName = 'K8S 1.11 vm provisioning fail\n' + currentBuild.displayName 111 } 112 } 113 } 114 } 115 } 116 stage('Boot vms 1.12') { 117 environment { 118 TESTED_SUITE="1.12" 119 GOPATH="${WORKSPACE}/${TESTED_SUITE}-gopath" 120 TESTDIR="${GOPATH}/${PROJ_PATH}/test" 121 } 122 steps { 123 sh 'mkdir -p ${GOPATH}/src/github.com/cilium' 124 sh 'cp -a ${WORKSPACE}/${PROJ_PATH} ${GOPATH}/${PROJ_PATH}' 125 retry(3) { 126 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} vagrant destroy k8s1-${TESTED_SUITE} k8s2-${TESTED_SUITE} --force' 127 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} vagrant up k8s1-${TESTED_SUITE} k8s2-${TESTED_SUITE} --provision' 128 } 129 } 130 post { 131 unsuccessful { 132 script { 133 if (!currentBuild.displayName.contains('fail')) { 134 currentBuild.displayName = 'K8S 1.12 vm provisioning fail\n' + currentBuild.displayName 135 } 136 } 137 } 138 } 139 } 140 } 141 } 142 stage('BDD-Test-k8s-1.11-and-1.12') { 143 environment { 144 CONTAINER_RUNTIME=setIfLabel("area/containerd", "containerd", "docker") 145 } 146 options { 147 timeout(time: 100, unit: 'MINUTES') 148 } 149 parallel { 150 stage('BDD-Test-k8s-1.11') { 151 environment { 152 TESTED_SUITE="1.11" 153 GOPATH="${WORKSPACE}/${TESTED_SUITE}-gopath" 154 TESTDIR="${GOPATH}/${PROJ_PATH}/test" 155 } 156 steps { 157 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} ginkgo --focus=" K8s*" -v --failFast=${FAILFAST} -- -cilium.provision=false -cilium.timeout=${GINKGO_TIMEOUT}' 158 } 159 post { 160 always { 161 sh 'cd ${TESTDIR}; ./post_build_agent.sh || true' 162 sh 'cd ${TESTDIR}; ./archive_test_results.sh || true' 163 sh 'cd ${TESTDIR}/..; mv *.zip ${WORKSPACE} || true' 164 sh 'cd ${TESTDIR}; mv *.xml ${WORKSPACE}/${PROJ_PATH}/test || true' 165 sh 'cd ${TESTDIR}; vagrant destroy -f || true' 166 } 167 unsuccessful { 168 script { 169 if (!currentBuild.displayName.contains('fail')) { 170 currentBuild.displayName = 'K8s 1.11 tests fail\n' + currentBuild.displayName 171 } 172 } 173 } 174 } 175 } 176 stage('BDD-Test-k8s-1.12') { 177 environment { 178 TESTED_SUITE="1.12" 179 GOPATH="${WORKSPACE}/${TESTED_SUITE}-gopath" 180 TESTDIR="${GOPATH}/${PROJ_PATH}/test" 181 } 182 steps { 183 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} ginkgo --focus=" K8s*" -v --failFast=${FAILFAST} -- -cilium.provision=false -cilium.timeout=${GINKGO_TIMEOUT}' 184 } 185 post { 186 always { 187 sh 'cd ${TESTDIR}; ./post_build_agent.sh || true' 188 sh 'cd ${TESTDIR}; ./archive_test_results.sh || true' 189 sh 'cd ${TESTDIR}/..; mv *.zip ${WORKSPACE} || true' 190 sh 'cd ${TESTDIR}; mv *.xml ${WORKSPACE}/${PROJ_PATH}/test || true' 191 sh 'cd ${TESTDIR}; vagrant destroy -f || true' 192 } 193 unsuccessful { 194 script { 195 if (!currentBuild.displayName.contains('fail')) { 196 currentBuild.displayName = 'K8s 1.12 tests fail\n' + currentBuild.displayName 197 } 198 } 199 } 200 } 201 } 202 } 203 } 204 205 stage('Copy code and boot VMs 1.{13,14}'){ 206 207 options { 208 timeout(time: 60, unit: 'MINUTES') 209 } 210 211 environment { 212 GOPATH="${WORKSPACE}" 213 TESTDIR="${WORKSPACE}/${PROJ_PATH}/test" 214 } 215 216 parallel { 217 stage('Boot vms 1.13') { 218 environment { 219 TESTED_SUITE="1.13" 220 GOPATH="${WORKSPACE}/${TESTED_SUITE}-gopath" 221 TESTDIR="${GOPATH}/${PROJ_PATH}/test" 222 } 223 steps { 224 sh 'mkdir -p ${GOPATH}/src/github.com/cilium' 225 sh 'cp -a ${WORKSPACE}/${PROJ_PATH} ${GOPATH}/${PROJ_PATH}' 226 retry(3) { 227 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} vagrant destroy k8s1-${TESTED_SUITE} k8s2-${TESTED_SUITE} --force' 228 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} vagrant up k8s1-${TESTED_SUITE} k8s2-${TESTED_SUITE} --provision' 229 } 230 } 231 post { 232 unsuccessful { 233 script { 234 if (!currentBuild.displayName.contains('fail')) { 235 currentBuild.displayName = 'K8S 1.13 vm provisioning fail\n' + currentBuild.displayName 236 } 237 } 238 } 239 } 240 } 241 stage('Boot vms 1.14') { 242 environment { 243 TESTED_SUITE="1.14" 244 GOPATH="${WORKSPACE}/${TESTED_SUITE}-gopath" 245 TESTDIR="${GOPATH}/${PROJ_PATH}/test" 246 } 247 steps { 248 sh 'mkdir -p ${GOPATH}/src/github.com/cilium' 249 sh 'cp -a ${WORKSPACE}/${PROJ_PATH} ${GOPATH}/${PROJ_PATH}' 250 retry(3) { 251 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} vagrant destroy k8s1-${TESTED_SUITE} k8s2-${TESTED_SUITE} --force' 252 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} vagrant up k8s1-${TESTED_SUITE} k8s2-${TESTED_SUITE} --provision' 253 } 254 } 255 post { 256 unsuccessful { 257 script { 258 if (!currentBuild.displayName.contains('fail')) { 259 currentBuild.displayName = 'K8S 1.14 vm provisioning fail\n' + currentBuild.displayName 260 } 261 } 262 } 263 } 264 } 265 } 266 } 267 stage('BDD-Test-k8s-1.13-and-1.14') { 268 environment { 269 CONTAINER_RUNTIME=setIfLabel("area/containerd", "containerd", "docker") 270 } 271 options { 272 timeout(time: 100, unit: 'MINUTES') 273 } 274 parallel { 275 stage('BDD-Test-k8s-1.13') { 276 environment { 277 TESTED_SUITE="1.13" 278 GOPATH="${WORKSPACE}/${TESTED_SUITE}-gopath" 279 TESTDIR="${GOPATH}/${PROJ_PATH}/test" 280 } 281 steps { 282 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} ginkgo --focus=" K8s*" -v --failFast=${FAILFAST} -- -cilium.provision=false -cilium.timeout=${GINKGO_TIMEOUT}' 283 } 284 post { 285 always { 286 sh 'cd ${TESTDIR}; ./post_build_agent.sh || true' 287 sh 'cd ${TESTDIR}; ./archive_test_results.sh || true' 288 sh 'cd ${TESTDIR}/..; mv *.zip ${WORKSPACE} || true' 289 sh 'cd ${TESTDIR}; mv *.xml ${WORKSPACE}/${PROJ_PATH}/test || true' 290 sh 'cd ${TESTDIR}; vagrant destroy -f || true' 291 } 292 unsuccessful { 293 script { 294 if (!currentBuild.displayName.contains('fail')) { 295 currentBuild.displayName = 'K8s 1.13 tests fail\n' + currentBuild.displayName 296 } 297 } 298 } 299 } 300 } 301 stage('BDD-Test-k8s-1.14') { 302 environment { 303 TESTED_SUITE="1.14" 304 GOPATH="${WORKSPACE}/${TESTED_SUITE}-gopath" 305 TESTDIR="${GOPATH}/${PROJ_PATH}/test" 306 } 307 steps { 308 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} ginkgo --focus=" K8s*" -v --failFast=${FAILFAST} -- -cilium.provision=false -cilium.timeout=${GINKGO_TIMEOUT}' 309 } 310 post { 311 always { 312 sh 'cd ${TESTDIR}; ./post_build_agent.sh || true' 313 sh 'cd ${TESTDIR}; ./archive_test_results.sh || true' 314 sh 'cd ${TESTDIR}/..; mv *.zip ${WORKSPACE} || true' 315 sh 'cd ${TESTDIR}; mv *.xml ${WORKSPACE}/${PROJ_PATH}/test || true' 316 sh 'cd ${TESTDIR}; vagrant destroy -f || true' 317 } 318 unsuccessful { 319 script { 320 if (!currentBuild.displayName.contains('fail')) { 321 currentBuild.displayName = 'K8s 1.14 tests fail\n' + currentBuild.displayName 322 } 323 } 324 } 325 } 326 } 327 } 328 } 329 stage('Copy code and boot VMs 1.15'){ 330 331 options { 332 timeout(time: 60, unit: 'MINUTES') 333 } 334 335 environment { 336 GOPATH="${WORKSPACE}" 337 TESTDIR="${WORKSPACE}/${PROJ_PATH}/test" 338 } 339 340 parallel { 341 stage('Boot vms 1.15') { 342 environment { 343 TESTED_SUITE="1.15" 344 GOPATH="${WORKSPACE}/${TESTED_SUITE}-gopath" 345 TESTDIR="${GOPATH}/${PROJ_PATH}/test" 346 } 347 steps { 348 sh 'mkdir -p ${GOPATH}/src/github.com/cilium' 349 sh 'cp -a ${WORKSPACE}/${PROJ_PATH} ${GOPATH}/${PROJ_PATH}' 350 retry(3) { 351 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} vagrant destroy k8s1-${TESTED_SUITE} k8s2-${TESTED_SUITE} --force' 352 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} vagrant up k8s1-${TESTED_SUITE} k8s2-${TESTED_SUITE} --provision' 353 } 354 } 355 post { 356 unsuccessful { 357 script { 358 if (!currentBuild.displayName.contains('fail')) { 359 currentBuild.displayName = 'K8S 1.15 vm provisioning fail\n' + currentBuild.displayName 360 } 361 } 362 } 363 } 364 } 365 } 366 } 367 stage('BDD-Test-k8s-1.15') { 368 environment { 369 CONTAINER_RUNTIME=setIfLabel("area/containerd", "containerd", "docker") 370 } 371 options { 372 timeout(time: 100, unit: 'MINUTES') 373 } 374 parallel { 375 stage('BDD-Test-k8s-1.15') { 376 environment { 377 TESTED_SUITE="1.15" 378 GOPATH="${WORKSPACE}/${TESTED_SUITE}-gopath" 379 TESTDIR="${GOPATH}/${PROJ_PATH}/test" 380 } 381 steps { 382 sh 'cd ${TESTDIR}; K8S_VERSION=${TESTED_SUITE} ginkgo --focus=" K8s*" -v --failFast=${FAILFAST} -- -cilium.provision=false -cilium.timeout=${GINKGO_TIMEOUT}' 383 } 384 post { 385 always { 386 sh 'cd ${TESTDIR}; ./post_build_agent.sh || true' 387 sh 'cd ${TESTDIR}; ./archive_test_results.sh || true' 388 sh 'cd ${TESTDIR}/..; mv *.zip ${WORKSPACE} || true' 389 sh 'cd ${TESTDIR}; mv *.xml ${WORKSPACE}/${PROJ_PATH}/test || true' 390 sh 'cd ${TESTDIR}; vagrant destroy -f || true' 391 } 392 unsuccessful { 393 script { 394 if (!currentBuild.displayName.contains('fail')) { 395 currentBuild.displayName = 'K8s 1.15 tests fail\n' + currentBuild.displayName 396 } 397 } 398 } 399 } 400 } 401 } 402 } 403 } 404 post { 405 always { 406 archiveArtifacts artifacts: '*.zip' 407 junit testDataPublishers: [[$class: 'AttachmentPublisher']], testResults: 'src/github.com/cilium/cilium/test/*.xml' 408 cleanWs() 409 sh '/usr/local/bin/cleanup || true' 410 } 411 success { 412 Status("SUCCESS", "${env.JOB_NAME}") 413 } 414 failure { 415 Status("FAILURE", "${env.JOB_NAME}") 416 } 417 } 418 }