This is an automated email from the ASF dual-hosted git repository. wohali pushed a commit to branch jenkins-packages-2 in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 2636a1582a4b1d20be477951532d7518303749f6 Author: Joan Touzet <[email protected]> AuthorDate: Wed Jul 19 03:42:39 2017 -0400 Build repos and push to couchdb-vm2 --- Jenkinsfile | 210 +++++++++++++++++++++++++++++------------------------------- 1 file changed, 102 insertions(+), 108 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 88401b8..c5405aa 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -31,24 +31,29 @@ pipeline { image 'couchdbdev/ubuntu-14.04-erlang-default' // https://github.com/jenkins-infra/jenkins.io/blob/master/Jenkinsfile#64 // We need the jenkins user mapped inside of the image + // npm config cache below is required because /home/jenkins doesn't + // ACTUALLY exist in the image args '-e npm_config_cache=npm-cache -e HOME=. -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group' } } steps { timeout(time: 15, unit: "MINUTES") { - // npm config cache below is required because /home/jenkins doesn't - // ACTUALLY exist in the image sh ''' set - rm -rf apache-couchdb-*.tar.gz - #export npm_config_cache=$(mktemp -d) + rm -rf apache-couchdb-* ./configure --with-curl make dist - chmod -R a+w * + #chown -R jenkins:jenkins * || true ''' + } + } + post { + success { stash includes: 'apache-couchdb-*.tar.gz', name: 'tarball' archiveArtifacts artifacts: 'apache-couchdb-*.tar.gz', fingerprint: true - deleteDir() + } + always { + deleteDir() } } } @@ -56,9 +61,9 @@ pipeline { // TODO rework this once JENKINS-41334 is released // https://issues.jenkins-ci.org/browse/JENKINS-41334 - // The builddir stuff is to prevent all 10 builds from live syncing - // their build results to each other during the build. Moving the - // build outside of the workdir should speed up the build process, too + // The builddir stuff is to prevent all the builds from live syncing + // their build results to each other during the build, which ACTUALLY + // HAPPENS. Ugh. // we run all package builds as root inside the Docker container @@ -68,41 +73,38 @@ pipeline { parallel(centos6erlang183: { node(label: 'ubuntu') { timeout(time: 60, unit: "MINUTES") { - unstash 'tarball' sh 'docker pull couchdbdev/centos-6-erlang-18.3' withDockerContainer(image: 'couchdbdev/centos-6-erlang-18.3', args: '-e LD_LIBRARY_PATH=/usr/local/bin -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group --user 0:0') { + sh 'rm -f apache-couchdb-*.tar.gz' + unstash 'tarball' sh ''' cwd=$(pwd) umask 0 - rm -rf /tmp/couchjslogs && mkdir -p /tmp/couchjslogs + mkdir -p $(COUCHDB_IO_LOG_DIR) # Build CouchDB from tarball builddir=$(mktemp -d) cd $builddir tar -xf $cwd/apache-couchdb-*.tar.gz cd apache-couchdb-* - ./configure --with-curl - make all + #./configure --with-curl + #make all #make check || (build-aux/logfile-uploader.py && false) # Build CouchDB packages cd $builddir git clone https://github.com/apache/couchdb-pkg mkdir couchdb - cd couchdb - cp $cwd/apache-couchdb-*.tar.gz . - tar -xf apache-couchdb-*.tar.gz - cd ../couchdb-pkg - # centos only + cp $cwd/apache-couchdb-*.tar.gz couchdb + tar -xf apache-couchdb-*.tar.gz -C couchdb + cd couchdb-pkg platform=centos6 make $platform PLATFORM=$platform + + # Cleanup & save for posterity rm -rf $cwd/pkgs/$platform && mkdir -p $cwd/pkgs/$platform - # CentOS variant mv ~/rpmbuild/RPMS/x86_64/*rpm $cwd/pkgs/$platform || true - - # Cleanup - cd $cwd && rm -rf $builddir - chown -R jenkins:jenkins * + chown -R jenkins:jenkins $cwd/* ''' } // withDocker } // timeout @@ -113,19 +115,21 @@ pipeline { centos7erlangdefault: { node(label: 'ubuntu') { timeout(time: 45, unit: "MINUTES") { - unstash 'tarball' sh 'docker pull couchdbdev/centos-7-erlang-default' withDockerContainer(image: 'couchdbdev/centos-7-erlang-default', args: '-e LD_LIBRARY_PATH=/usr/local/bin -e npm_config_cache=npm-cache -e HOME=. -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group') { + sh 'rm -f apache-couchdb-*.tar.gz' + unstash 'tarball' sh ''' cwd=$(pwd) - rm -rf /tmp/couchjslogs - mkdir -p /tmp/couchjslogs + mkdir -p $(COUCHDB_IO_LOG_DIR) + + # Build CouchDB from tarball builddir=$(mktemp -d) cd $builddir tar -xf $cwd/apache-couchdb-*.tar.gz cd apache-couchdb-* - ./configure --with-curl - make all + #./configure --with-curl + #make all #make check || (build-aux/logfile-uploader.py && false) ''' } // withDocker @@ -136,41 +140,38 @@ pipeline { centos7erlang183: { node(label: 'ubuntu') { timeout(time: 60, unit: "MINUTES") { - unstash 'tarball' sh 'docker pull couchdbdev/centos-7-erlang-18.3' withDockerContainer(image: 'couchdbdev/centos-7-erlang-18.3', args: '-e LD_LIBRARY_PATH=/usr/local/bin -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group --user 0:0') { + sh 'rm -f apache-couchdb-*.tar.gz' + unstash 'tarball' sh ''' cwd=$(pwd) umask 0 - rm -rf /tmp/couchjslogs && mkdir -p /tmp/couchjslogs + mkdir -p $(COUCHDB_IO_LOG_DIR) # Build CouchDB from tarball builddir=$(mktemp -d) cd $builddir tar -xf $cwd/apache-couchdb-*.tar.gz cd apache-couchdb-* - ./configure --with-curl - make all + #./configure --with-curl + #make all #make check || (build-aux/logfile-uploader.py && false) # Build CouchDB packages cd $builddir git clone https://github.com/apache/couchdb-pkg mkdir couchdb - cd couchdb - cp $cwd/apache-couchdb-*.tar.gz . - tar -xf apache-couchdb-*.tar.gz - cd ../couchdb-pkg - # centos only + cp $cwd/apache-couchdb-*.tar.gz couchdb + tar -xf apache-couchdb-*.tar.gz -C couchdb + cd couchdb-pkg platform=centos7 make $platform PLATFORM=$platform + + # Cleanup & save for posterity rm -rf $cwd/pkgs/$platform && mkdir -p $cwd/pkgs/$platform - # CentOS variant mv ~/rpmbuild/RPMS/x86_64/*rpm $cwd/pkgs/$platform || true - - # Cleanup - cd $cwd && rm -rf $builddir - chown -R jenkins:jenkins * + chown -R jenkins:jenkins $cwd/* ''' } // withDocker } // timeout @@ -181,19 +182,19 @@ pipeline { ubuntu1204erlang183: { node(label: 'ubuntu') { timeout(time: 45, unit: "MINUTES") { - unstash 'tarball' sh 'docker pull couchdbdev/ubuntu-12.04-erlang-18.3' withDockerContainer(image: 'couchdbdev/ubuntu-12.04-erlang-18.3', args: '-e npm_config_cache=npm-cache -e HOME=. -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group') { + sh 'rm -f apache-couchdb-*.tar.gz' + unstash 'tarball' sh ''' cwd=$(pwd) - rm -rf /tmp/couchjslogs - mkdir -p /tmp/couchjslogs + mkdir -p $(COUCHDB_IO_LOG_DIR) builddir=$(mktemp -d) cd $builddir tar -xf $cwd/apache-couchdb-*.tar.gz cd apache-couchdb-* - ./configure --with-curl - make all + #./configure --with-curl + #make all #make check || (build-aux/logfile-uploader.py && false) ''' } // withDocker @@ -204,19 +205,19 @@ pipeline { ubuntu1404erlangdefault: { node(label: 'ubuntu') { timeout(time: 45, unit: "MINUTES") { - unstash 'tarball' sh 'docker pull couchdbdev/ubuntu-14.04-erlang-default' withDockerContainer(image: 'couchdbdev/ubuntu-14.04-erlang-default', args: '-e npm_config_cache=npm-cache -e HOME=. -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group') { + sh 'rm -f apache-couchdb-*.tar.gz' + unstash 'tarball' sh ''' cwd=$(pwd) - rm -rf /tmp/couchjslogs - mkdir -p /tmp/couchjslogs + mkdir -p $(COUCHDB_IO_LOG_DIR) builddir=$(mktemp -d) cd $builddir tar -xf $cwd/apache-couchdb-*.tar.gz cd apache-couchdb-* - ./configure --with-curl - make all + #./configure --with-curl + #make all #make check || (build-aux/logfile-uploader.py && false) ''' } // withDocker @@ -227,42 +228,39 @@ pipeline { ubuntu1404erlang183: { node(label: 'ubuntu') { timeout(time: 60, unit: "MINUTES") { - unstash 'tarball' sh 'docker pull couchdbdev/ubuntu-14.04-erlang-18.3' withDockerContainer(image: 'couchdbdev/ubuntu-14.04-erlang-18.3', args: '-v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group --user 0:0') { + sh 'rm -f apache-couchdb-*.tar.gz' + unstash 'tarball' sh ''' cwd=$(pwd) umask 0 - rm -rf /tmp/couchjslogs && mkdir -p /tmp/couchjslogs + mkdir -p $(COUCHDB_IO_LOG_DIR) # Build CouchDB from tarball builddir=$(mktemp -d) cd $builddir tar -xf $cwd/apache-couchdb-*.tar.gz cd apache-couchdb-* - ./configure --with-curl - make all + #./configure --with-curl + #make all #make check || (build-aux/logfile-uploader.py && false) # Build CouchDB packages cd $builddir git clone https://github.com/apache/couchdb-pkg mkdir couchdb - cd couchdb - cp $cwd/apache-couchdb-*.tar.gz . - tar -xf apache-couchdb-*.tar.gz - cd ../couchdb-pkg - # debian/ubuntu only + cp $cwd/apache-couchdb-*.tar.gz couchdb + tar -xf apache-couchdb-*.tar.gz -C couchdb + cd couchdb-pkg sudo apt-get install -y libmozjs185-dev platform=$(lsb_release -cs) make $platform PLATFORM=$platform + + # Cleanup & save for posterity rm -rf $cwd/pkgs/$platform && mkdir -p $cwd/pkgs/$platform - # Ubuntu/Debian variant mv ../couchdb/*deb $cwd/pkgs/$platform || true - - # Cleanup - cd $cwd && rm -rf $builddir - chown -R jenkins:jenkins * + chown -R jenkins:jenkins $cwd/* ''' } // withDocker } // timeout @@ -273,19 +271,19 @@ pipeline { ubuntu1604erlangdefault: { node(label: 'ubuntu') { timeout(time: 45, unit: "MINUTES") { - unstash 'tarball' sh 'docker pull couchdbdev/ubuntu-16.04-erlang-default' withDockerContainer(image: 'couchdbdev/ubuntu-16.04-erlang-default', args: '-e npm_config_cache=npm-cache -e HOME=. -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group') { + sh 'rm -f apache-couchdb-*.tar.gz' + unstash 'tarball' sh ''' cwd=$(pwd) - rm -rf /tmp/couchjslogs - mkdir -p /tmp/couchjslogs + mkdir -p $(COUCHDB_IO_LOG_DIR) builddir=$(mktemp -d) cd $builddir tar -xf $cwd/apache-couchdb-*.tar.gz cd apache-couchdb-* - ./configure --with-curl - make all + #./configure --with-curl + #make all #make check || (build-aux/logfile-uploader.py && false) ''' } // withDocker @@ -296,42 +294,39 @@ pipeline { ubuntu1604erlang183: { node(label: 'ubuntu') { timeout(time: 60, unit: "MINUTES") { - unstash 'tarball' sh 'docker pull couchdbdev/ubuntu-16.04-erlang-18.3' withDockerContainer(image: 'couchdbdev/ubuntu-16.04-erlang-18.3', args: '-v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group --user 0:0') { + sh 'rm -f apache-couchdb-*.tar.gz' + unstash 'tarball' sh ''' cwd=$(pwd) umask 0 - rm -rf /tmp/couchjslogs && mkdir -p /tmp/couchjslogs + mkdir -p $(COUCHDB_IO_LOG_DIR) # Build CouchDB from tarball builddir=$(mktemp -d) cd $builddir tar -xf $cwd/apache-couchdb-*.tar.gz cd apache-couchdb-* - ./configure --with-curl - make all + #./configure --with-curl + #make all #make check || (build-aux/logfile-uploader.py && false) # Build CouchDB packages cd $builddir git clone https://github.com/apache/couchdb-pkg mkdir couchdb - cd couchdb - cp $cwd/apache-couchdb-*.tar.gz . - tar -xf apache-couchdb-*.tar.gz - cd ../couchdb-pkg - # debian/ubuntu only + cp $cwd/apache-couchdb-*.tar.gz couchdb + tar -xf apache-couchdb-*.tar.gz -C couchdb + cd couchdb-pkg sudo apt-get install -y libmozjs185-dev platform=$(lsb_release -cs) make $platform PLATFORM=$platform + + # Cleanup & save for posterity rm -rf $cwd/pkgs/$platform && mkdir -p $cwd/pkgs/$platform - # Ubuntu/Debian variant mv ../couchdb/*deb $cwd/pkgs/$platform || true - - # Cleanup - cd $cwd && rm -rf $builddir - chown -R jenkins:jenkins * + chown -R jenkins:jenkins $cwd/* ''' } // withDocker } // timeout @@ -342,19 +337,19 @@ pipeline { debian8erlangdefault: { node(label: 'ubuntu') { timeout(time: 45, unit: "MINUTES") { - unstash 'tarball' sh 'docker pull couchdbdev/debian-8-erlang-default' withDockerContainer(image: 'couchdbdev/debian-8-erlang-default', args: '-e npm_config_cache=npm-cache -e HOME=. -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group') { + sh 'rm -f apache-couchdb-*.tar.gz' + unstash 'tarball' sh ''' cwd=$(pwd) - rm -rf /tmp/couchjslogs - mkdir -p /tmp/couchjslogs + mkdir -p $(COUCHDB_IO_LOG_DIR) builddir=$(mktemp -d) cd $builddir tar -xf $cwd/apache-couchdb-*.tar.gz cd apache-couchdb-* - ./configure --with-curl - make all + #./configure --with-curl + #make all #make check || (build-aux/logfile-uploader.py && false) ''' } // withDocker @@ -365,42 +360,39 @@ pipeline { debian8erlang183: { node(label: 'ubuntu') { timeout(time: 60, unit: "MINUTES") { - unstash 'tarball' sh 'docker pull couchdbdev/debian-8-erlang-18.3' // must run as root because of sudo step below withDockerContainer(image: 'couchdbdev/debian-8-erlang-18.3', args: '-v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group --user 0:0') { + sh 'rm -f apache-couchdb-*.tar.gz' + unstash 'tarball' sh ''' cwd=$(pwd) - rm -rf /tmp/couchjslogs && mkdir -p /tmp/couchjslogs + mkdir -p $(COUCHDB_IO_LOG_DIR) # Build CouchDB from tarball builddir=$(mktemp -d) cd $builddir tar -xf $cwd/apache-couchdb-*.tar.gz cd apache-couchdb-* - ./configure --with-curl - make all + #./configure --with-curl + #make all #make check || (build-aux/logfile-uploader.py && false) # Build CouchDB packages cd $builddir git clone https://github.com/apache/couchdb-pkg mkdir couchdb - cd couchdb - cp $cwd/apache-couchdb-*.tar.gz . - tar -xf apache-couchdb-*.tar.gz - cd ../couchdb-pkg - # debian/ubuntu only + cp $cwd/apache-couchdb-*.tar.gz couchdb + tar -xf apache-couchdb-*.tar.gz -C couchdb + cd couchdb-pkg sudo apt-get install -y libmozjs185-dev platform=$(lsb_release -cs) make $platform PLATFORM=$platform + + # Cleanup & save for posterity rm -rf $cwd/pkgs/$platform && mkdir -p $cwd/pkgs/$platform - # Ubuntu/Debian variant mv ../couchdb/*deb $cwd/pkgs/$platform || true - - # Cleanup - cd $cwd && rm -rf $builddir - chown -R jenkins:jenkins * + chown -R jenkins:jenkins $cwd/* ''' } // withDocker } // timeout @@ -421,13 +413,14 @@ pipeline { // This image has the deb AND rpm repo tools installed in it image 'couchdbdev/debian-8-base' // We need the jenkins user mapped inside of the image + // We must run as root because we have to create ~/.ssh for rsync args '-v /etc/passwd:/etc/passwd -v /etc/group:/etc/group' label 'ubuntu' } } steps { withCredentials([file(credentialsId: 'jenkins-key', variable: 'KEY')]) { - sh 'rm -rf pkgs' + sh 'rm -rf pkgs *.tar.gz' unarchive mapping: ['pkgs/' : '.'] echo 'Building Debian repo...' sh ''' @@ -439,7 +432,7 @@ pipeline { echo 'Building CentOS repos...' sh ''' cd pkgs/centos6 && createrepo --database . - cd ../centos7 && rm js* && createrepo --database . + cd ../centos7 && rm -f js* && createrepo --database . ''' echo 'rsyncing repos to couchdb-vm2...' sh ''' @@ -448,7 +441,7 @@ pipeline { mv couchdb-pkg/repo/dists $BRANCH_NAME/debian mv pkgs/centos6/* $BRANCH_NAME/el6 mv pkgs/centos7/* $BRANCH_NAME/el7 - rsync -avz --delete -e "ssh -i $KEY" $BRANCH_NAME [email protected]:/var/www/html + rsync -avz --delete -e "ssh -o StrictHostKeyChecking=no -i $KEY" $BRANCH_NAME [email protected]:/var/www/html ''' // cronjob on couchdb-vm2 cleans up old tarballs (keeps latest 10) echo 'rsyncing source tarball to couchdb-vm2...' @@ -457,7 +450,8 @@ pipeline { rm -rf $BRANCH_NAME mkdir -p $BRANCH_NAME/source mv apache-couchdb-*.tar.gz $BRANCH_NAME/source - rsync -avz -e "ssh -i $KEY" $BRANCH_NAME [email protected]:/var/www/html + rsync -avz -e "ssh -o StrictHostKeyChecking=no -i $KEY" $BRANCH_NAME [email protected]:/var/www/html + rm -rf $BRANCH_NAME couchdb-pkg *.tar.gz ''' deleteDir() } // withCredentials -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
