Browse code

add powerpc-master stage to Jenkinsfile

The powerpc-master stage will just run the integration-cli tests. The
existing powerpc 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 10:52:03
Showing 1 changed files
... ...
@@ -425,6 +425,7 @@ pipeline {
425 425
                                   -e DOCKER_EXPERIMENTAL \
426 426
                                   -e DOCKER_GITCOMMIT=${GIT_COMMIT} \
427 427
                                   -e DOCKER_GRAPHDRIVER \
428
+                                  -e TEST_SKIP_INTEGRATION_CLI=1 \
428 429
                                   -e TIMEOUT="180m" \
429 430
                                   docker:${GIT_COMMIT} \
430 431
                                   hack/make.sh \
... ...
@@ -461,6 +462,77 @@ pipeline {
461 461
                         }
462 462
                     }
463 463
                 }
464
+                stage('powerpc-master') {
465
+                    when {
466
+                        beforeAgent true
467
+                        branch 'master'
468
+                        expression { params.powerpc }
469
+                    }
470
+                    agent { label 'ppc64le-ubuntu-1604' }
471
+                    // power machines run on Docker 18.06, and buildkit has some bugs on that version
472
+                    environment { DOCKER_BUILDKIT = '0' }
473
+
474
+                    stages {
475
+                        stage("Print info") {
476
+                            steps {
477
+                                sh 'docker version'
478
+                                sh 'docker info'
479
+                                sh '''
480
+                                echo "check-config.sh version: ${CHECK_CONFIG_COMMIT}"
481
+                                curl -fsSL -o ${WORKSPACE}/check-config.sh "https://raw.githubusercontent.com/moby/moby/${CHECK_CONFIG_COMMIT}/contrib/check-config.sh" \
482
+                                && bash ${WORKSPACE}/check-config.sh || true
483
+                                '''
484
+                            }
485
+                        }
486
+                        stage("Build dev image") {
487
+                            steps {
488
+                                sh 'docker build --force-rm --build-arg APT_MIRROR -t docker:${GIT_COMMIT} -f Dockerfile .'
489
+                            }
490
+                        }
491
+                        stage("Integration-cli tests") {
492
+                            steps {
493
+                                sh '''
494
+                                docker run --rm -t --privileged \
495
+                                  -v "$WORKSPACE/bundles:/go/src/github.com/docker/docker/bundles" \
496
+                                  --name docker-pr$BUILD_NUMBER \
497
+                                  -e DOCKER_GITCOMMIT=${GIT_COMMIT} \
498
+                                  -e DOCKER_GRAPHDRIVER \
499
+                                  -e TEST_SKIP_INTEGRATION=1 \
500
+                                  -e TIMEOUT="180m" \
501
+                                  docker:${GIT_COMMIT} \
502
+                                  hack/make.sh \
503
+                                    dynbinary \
504
+                                    test-integration
505
+                                '''
506
+                            }
507
+                        }
508
+                    }
509
+
510
+                    post {
511
+                        always {
512
+                            sh '''
513
+                            echo "Ensuring container killed."
514
+                            docker rm -vf docker-pr$BUILD_NUMBER || true
515
+                            '''
516
+
517
+                            sh '''
518
+                            echo "Chowning /workspace to jenkins user"
519
+                            docker run --rm -v "$WORKSPACE:/workspace" busybox chown -R "$(id -u):$(id -g)" /workspace
520
+                            '''
521
+
522
+                            sh '''
523
+                            echo "Creating bundles.tar.gz"
524
+                            find bundles -name '*.log' | xargs tar -czf powerpc-master-bundles.tar.gz
525
+                            '''
526
+
527
+                            archiveArtifacts artifacts: 'powerpc-master-bundles.tar.gz'
528
+                        }
529
+                        cleanup {
530
+                            sh 'make clean'
531
+                            deleteDir()
532
+                        }
533
+                    }
534
+                }
464 535
                 stage('windowsRS1') {
465 536
                     when {
466 537
                         beforeAgent true