github.phpd.cn/cilium/cilium@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  }