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/19 02:29:00 UTC

[couchdb] branch improve-pr-jenkinsfile updated (dd070c1 -> 79f0f83)

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

kocolosk pushed a change to branch improve-pr-jenkinsfile
in repository https://gitbox.apache.org/repos/asf/couchdb.git.


 discard dd070c1  Decompose scripts into specific steps
     new 79f0f83  Decompose scripts into specific steps

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (dd070c1)
            \
             N -- N -- N   refs/heads/improve-pr-jenkinsfile (79f0f83)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 build-aux/Jenkinsfile.pr | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

[couchdb] 01/01: Decompose scripts into specific steps

Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch improve-pr-jenkinsfile
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 79f0f8398d245e59229b9a3bd896b2e85f931f9c
Author: Adam Kocoloski <ko...@apache.org>
AuthorDate: Tue Jan 18 21:26:11 2022 -0500

    Decompose scripts into specific steps
    
    Improves developer UX and debugging when builds go awry.
---
 build-aux/Jenkinsfile.pr | 46 ++++++++++++++++++++++++----------------------
 1 file changed, 24 insertions(+), 22 deletions(-)

diff --git a/build-aux/Jenkinsfile.pr b/build-aux/Jenkinsfile.pr
index 34955f6..0e71119 100644
--- a/build-aux/Jenkinsfile.pr
+++ b/build-aux/Jenkinsfile.pr
@@ -12,17 +12,6 @@
 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 // License for the specific language governing permissions and limitations under
 // the License.
-build_and_test = '''
-mkdir -p ${COUCHDB_IO_LOG_DIR} ${ERLANG_VERSION}
-cd ${ERLANG_VERSION}
-rm -rf build
-mkdir build
-cd build
-tar -xf ${WORKSPACE}/apache-couchdb-*.tar.gz
-cd apache-couchdb-*
-./configure
-make check || (make build-report && false)
-'''
 
 pipeline {
 
@@ -74,19 +63,16 @@ pipeline {
       }
       steps {
         timeout(time: 15, unit: "MINUTES") {
-          sh '''
-            set
-            rm -rf apache-couchdb-*
-            ./configure
-            make erlfmt-check
-            make dist
-            chmod -R a+w * .
-          '''
+          sh( script: 'rm -rf apache-couchdb-*', label: 'Clean out workspace' )
+          sh( script: './configure', label: 'Configure CouchDB build system' )
+          sh( script: 'make erlfmt-check', label: 'Verify Erlang coding style' )
+          sh( script: 'make elixir-check-formatted', label: 'Verify Elixir coding style' )
+          sh( script: 'make dist', label: 'Build self-contained release' )
         }
       }
       post {
         success {
-          stash includes: 'apache-couchdb-*.tar.gz', name: 'tarball'
+          stash includes: 'apache-couchdb-*.tar.gz', name: 'release-tarball'
         }
         cleanup {
           // UGH see https://issues.jenkins-ci.org/browse/JENKINS-41894
@@ -123,14 +109,30 @@ pipeline {
             }
             steps {
               timeout(time: 90, unit: "MINUTES") {
-                unstash 'tarball'
-                sh( script: build_and_test )
+                sh( script: "rm -rf ${ERLANG_VERSION} apache-couchdb-*", label: 'Clean out workspace' )
+                unstash 'release-tarball'
+                sh( script: "mkdir -p ${COUCHDB_IO_LOG_DIR} ${ERLANG_VERSION}" )
+                sh( script: "tar -xf apache-couchdb-*.tar.gz -C ${ERLANG_VERSION} --strip-components=1", label: 'Unpack release' )
+                dir( "${ERLANG_VERSION}" ) {
+                  sh( script: './configure --skip-deps', label: 'Configure CouchDB build system' )
+                  sh( script: 'make', label: 'Build CouchDB' )
+                  sh( script: 'make eunit', label: 'EUnit test suite' )
+                  sh( script: 'make elixir-suite', label: 'ExUnit unit test suite' )
+                  sh( script: 'make exunit', label: 'ExUnit integration test suite' )
+                  sh( script: 'make mango-test', label: 'Python-based Mango query test suite' )
+                }
               }
             }
             post {
               always {
                 junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
               }
+              failure {
+                dir( "${ERLANG_VERSION}" ) {
+                  sh 'ls -l'
+                  sh 'make build-report'
+                }
+              }
               cleanup {
                 sh 'rm -rf ${WORKSPACE}/* ${COUCHDB_IO_LOG_DIR}'
               }