Browse code

add z-master stage to Jenkinsfile

The z-master stage will just run the integration-cli tests. The
existing z stage will run the unit tests and the integration
tests. In this way, PR check jobs will be shorter, but all
integration tests will run after PR is merged to master.

Signed-off-by: Andrew Hsu <andrewhsu@docker.com>

Andrew Hsu authored on 2019/08/09 11:00:57
Showing 1 changed files
... ...
@@ -340,6 +340,7 @@ pipeline {
340 340
                                   -e DOCKER_EXPERIMENTAL \
341 341
                                   -e DOCKER_GITCOMMIT=${GIT_COMMIT} \
342 342
                                   -e DOCKER_GRAPHDRIVER \
343
+                                  -e TEST_SKIP_INTEGRATION_CLI=1 \
343 344
                                   -e TIMEOUT="300m" \
344 345
                                   docker:${GIT_COMMIT} \
345 346
                                   hack/make.sh \
... ...
@@ -376,6 +377,79 @@ pipeline {
376 376
                         }
377 377
                     }
378 378
                 }
379
+                stage('z-master') {
380
+                    when {
381
+                        beforeAgent true
382
+                        branch 'master'
383
+                        expression { params.z }
384
+                    }
385
+                    agent { label 's390x-ubuntu-1604' }
386
+                    // s390x machines run on Docker 18.06, and buildkit has some bugs on that version
387
+                    environment { DOCKER_BUILDKIT = '0' }
388
+
389
+                    stages {
390
+                        stage("Print info") {
391
+                            steps {
392
+                                sh 'docker version'
393
+                                sh 'docker info'
394
+                                sh '''
395
+                                echo "check-config.sh version: ${CHECK_CONFIG_COMMIT}"
396
+                                curl -fsSL -o ${WORKSPACE}/check-config.sh "https://raw.githubusercontent.com/moby/moby/${CHECK_CONFIG_COMMIT}/contrib/check-config.sh" \
397
+                                && bash ${WORKSPACE}/check-config.sh || true
398
+                                '''
399
+                            }
400
+                        }
401
+                        stage("Build dev image") {
402
+                            steps {
403
+                                sh '''
404
+                                docker build --force-rm --build-arg APT_MIRROR -t docker:${GIT_COMMIT} -f Dockerfile .
405
+                                '''
406
+                            }
407
+                        }
408
+                        stage("Integration-cli tests") {
409
+                            steps {
410
+                                sh '''
411
+                                docker run --rm -t --privileged \
412
+                                  -v "$WORKSPACE/bundles:/go/src/github.com/docker/docker/bundles" \
413
+                                  --name docker-pr$BUILD_NUMBER \
414
+                                  -e DOCKER_GITCOMMIT=${GIT_COMMIT} \
415
+                                  -e DOCKER_GRAPHDRIVER \
416
+                                  -e TEST_SKIP_INTEGRATION=1 \
417
+                                  -e TIMEOUT="300m" \
418
+                                  docker:${GIT_COMMIT} \
419
+                                  hack/make.sh \
420
+                                    dynbinary \
421
+                                    test-integration
422
+                                '''
423
+                            }
424
+                        }
425
+                    }
426
+
427
+                    post {
428
+                        always {
429
+                            sh '''
430
+                            echo "Ensuring container killed."
431
+                            docker rm -vf docker-pr$BUILD_NUMBER || true
432
+                            '''
433
+
434
+                            sh '''
435
+                            echo "Chowning /workspace to jenkins user"
436
+                            docker run --rm -v "$WORKSPACE:/workspace" busybox chown -R "$(id -u):$(id -g)" /workspace
437
+                            '''
438
+
439
+                            sh '''
440
+                            echo "Creating bundles.tar.gz"
441
+                            find bundles -name '*.log' | xargs tar -czf s390x-master-bundles.tar.gz
442
+                            '''
443
+
444
+                            archiveArtifacts artifacts: 's390x-master-bundles.tar.gz'
445
+                        }
446
+                        cleanup {
447
+                            sh 'make clean'
448
+                            deleteDir()
449
+                        }
450
+                    }
451
+                }
379 452
                 stage('powerpc') {
380 453
                     when {
381 454
                         beforeAgent true