You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ko...@apache.org on 2022/01/15 17:50:22 UTC

[couchdb] branch jenkins-bump-erlang-and-debian-versions updated: Combine all into one matrix

This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch jenkins-bump-erlang-and-debian-versions
in repository https://gitbox.apache.org/repos/asf/couchdb.git


The following commit(s) were added to refs/heads/jenkins-bump-erlang-and-debian-versions by this push:
     new e0ca5f7  Combine all into one matrix
e0ca5f7 is described below

commit e0ca5f7f9cb5109823b7540bbac691fd77413417
Author: Adam Kocoloski <ko...@apache.org>
AuthorDate: Sat Jan 15 12:50:04 2022 -0500

    Combine all into one matrix
---
 build-aux/Jenkinsfile.full | 210 +++++++++++++++++++++------------------------
 1 file changed, 98 insertions(+), 112 deletions(-)

diff --git a/build-aux/Jenkinsfile.full b/build-aux/Jenkinsfile.full
index a193644..3d94586 100644
--- a/build-aux/Jenkinsfile.full
+++ b/build-aux/Jenkinsfile.full
@@ -148,133 +148,122 @@ pipeline {
         timeout(time: 90, unit: "MINUTES")
       }
 
-      parallel {
-
-        stage('FreeBSD') {
-          agent {
-            label 'freebsd'
+      matrix {
+        axes {
+          axis {
+            name 'platform'
+            values 'macos', 'freebsd', 'centos7', 'centos8', 'bionic', 'focal', 'stretch', 'buster', 'bullseye'
           }
-          steps {
-            // deleteDir is OK here because we're not inside of a Docker container!
-            deleteDir()
-            unstash 'tarball'
-            withEnv(['HOME='+pwd()]) {
-              sh '''
-                mkdir -p $COUCHDB_IO_LOG_DIR
-
-                # Build CouchDB from tarball & test
-                mkdir build
-                cd build
-                tar -xf $WORKSPACE/apache-couchdb-*.tar.gz
-                cd apache-couchdb-*
-                ./configure
-                gmake check || (build-aux/logfile-uploader.py && false)
-
-                # No package build for FreeBSD at this time
-              '''
-            } // withEnv
-          } // steps
-          post {
-            always {
-              junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-            }
-            cleanup {
-              sh 'killall -9 beam.smp || true'
-              sh 'rm -rf ${WORKSPACE}/* ${COUCHDB_IO_LOG_DIR} || true'
-            }
-          } // post
-        } // stage FreeBSD
+        }
 
-        stage('macOS') {
-          agent {
-            label 'macos'
-          }
-          steps {
-            // deleteDir is OK here because we're not inside of a Docker container!
-            deleteDir()
-            unstash 'tarball'
-            withEnv(['HOME='+pwd()]) {
-              sh '''
-                PATH=/usr/local/bin:$PATH
-                export PATH
-                mkdir -p $COUCHDB_IO_LOG_DIR
-
-                # Build CouchDB from tarball & test
-                mkdir build
-                cd build
-                tar -xzf $WORKSPACE/apache-couchdb-*.tar.gz
-                cd apache-couchdb-*
-                ./configure --spidermonkey-version 60
-                make check || (build-aux/logfile-uploader.py && false)
-
-                # No package build for macOS at this time
-              '''
-            } // withEnv
-          } // steps
-          post {
-            always {
-              junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
+        stages {
+          stage('Non-containerized Platform') {
+            when {
+              anyOf {
+                expression { env.platform == 'macos' }
+                expression { env.platform == 'freebsd' }
+              }
             }
-            cleanup {
-              sh 'killall -9 beam.smp || true'
-              sh 'rm -rf ${WORKSPACE}/* ${COUCHDB_IO_LOG_DIR} || true'
+
+            agent {
+              label env.platform
             }
-          } // post
-        } // stage macOS
-
-        stage('Linux') {
-          matrix {
-            axes {
-              axis {
-                name 'platform'
-                values 'centos7', 'centos8', 'bionic', 'focal', 'stretch', 'buster', 'bullseye'
+
+            steps {
+              // deleteDir is OK here because we're not inside of a Docker container!
+              deleteDir()
+              unstash 'tarball'
+              withEnv(['HOME='+pwd()]) {
+                sh '''
+                  PATH=/usr/local/bin:$PATH
+                  export PATH
+                  mkdir -p $COUCHDB_IO_LOG_DIR
+
+                  # Build CouchDB from tarball & test
+                  mkdir build
+                  cd build
+                  tar -xzf $WORKSPACE/apache-couchdb-*.tar.gz
+                  cd apache-couchdb-*
+                  ./configure --spidermonkey-version 60
+                  make check || (build-aux/logfile-uploader.py && false)
+
+                  # No package build for non-containerized platforms at this time
+                '''
+              } // withEnv
+            } // steps
+
+            post {
+              always {
+                junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
               }
-            }
+              cleanup {
+                sh 'killall -9 beam.smp || true'
+                sh 'rm -rf ${WORKSPACE}/* ${COUCHDB_IO_LOG_DIR} || true'
+              }
+            } // post
+
+          } // non-containerized platform
 
-            stages {
-              agent {
-                docker {
-                  image platform_images["${platform}"]
-                  label 'docker'
-                  args "${DOCKER_ARGS}"
-                  registryUrl 'https://docker.io/'
-                  registryCredentialsId 'dockerhub_creds'
+          stage('Containerized Platform') {
+            when {
+              not {
+                anyOf {
+                  expression { env.platform == 'macos' }
+                  expression { env.platform == 'freebsd' }
                 }
               }
-              environment {
-                sm_ver = spidermonkey_version["${platform}"]
+            }
+
+            agent {
+              docker {
+                image platform_images["${platform}"]
+                label 'docker'
+                args "${DOCKER_ARGS}"
+                registryUrl 'https://docker.io/'
+                registryCredentialsId 'dockerhub_creds'
               }
-              stage('Build from tarball & test') {
-                steps {
-                  unstash 'tarball'
-                  sh( script: build_and_test )
-                }
-                post {
-                  always {
-                    junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-                  }
-                }
+            }
+
+            environment {
+              sm_ver = spidermonkey_version["${platform}"]
+            }
+
+            stage('Build from tarball & test') {
+              steps {
+                unstash 'tarball'
+                sh( script: build_and_test )
               }
-              stage('Build CouchDB packages') {
-                steps {
-                  unstash 'tarball'
-                  sh( script: make_packages )
-                  sh( script: cleanup_and_save )
+              post {
+                always {
+                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
                 }
-                post {
-                  success {
-                    archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                  }
+              }
+            }
+
+            stage('Build CouchDB packages') {
+              steps {
+                unstash 'tarball'
+                sh( script: make_packages )
+                sh( script: cleanup_and_save )
+              }
+              post {
+                success {
+                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
                 }
               }
-            } // stages
+            }
+
             post {
               cleanup {
                 sh 'rm -rf ${WORKSPACE}/*'
               }
             } // post
-          } // matrix
-        } // stage
+          } // containerized platform
+        } // stages
+
+      } // matrix
+
+    } // stage 'Test and Package'
 
 
 
@@ -434,9 +423,6 @@ pipeline {
         } // stage
 */
 
-      } // parallel
-    } // stage "Test and Package"
-
     stage('Publish') {
 
       when {