You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by wo...@apache.org on 2017/07/19 21:46:27 UTC
[couchdb] 02/02: Build repos and push to couchdb-vm2
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 <jo...@atypical.net>
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 username@couchdb-vm2.apache.org:/var/www/html
+ rsync -avz --delete -e "ssh -o StrictHostKeyChecking=no -i $KEY" $BRANCH_NAME jenkins@couchdb-vm2.apache.org:/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 username@couchdb-vm2.apache.org:/var/www/html
+ rsync -avz -e "ssh -o StrictHostKeyChecking=no -i $KEY" $BRANCH_NAME jenkins@couchdb-vm2.apache.org:/var/www/html
+ rm -rf $BRANCH_NAME couchdb-pkg *.tar.gz
'''
deleteDir()
} // withCredentials
--
To stop receiving notification emails like this one, please contact
"commits@couchdb.apache.org" <co...@couchdb.apache.org>.