diff options
author | Joan Touzet <joant@atypical.net> | 2017-07-19 03:42:39 -0400 |
---|---|---|
committer | Joan Touzet <joant@atypical.net> | 2017-07-19 16:35:00 -0400 |
commit | 9a6f6150d3aac814bf83a67b9a52550f7f249a99 (patch) | |
tree | c14bd4644587bc217b327bcc956bbc5fe67e87c2 | |
parent | c40f66d06bafbeb2e04c989e1a3ecfe5c034fde4 (diff) | |
download | couchdb-jenkins-packages-2.tar.gz |
Build repos and push to couchdb-vm2jenkins-packages-2
-rw-r--r-- | Jenkinsfile | 48 |
1 files changed, 31 insertions, 17 deletions
diff --git a/Jenkinsfile b/Jenkinsfile index 88401b80d..9d10f3eef 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -31,7 +31,7 @@ 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 - args '-e npm_config_cache=npm-cache -e HOME=. -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group' + args '-e npm_config_cache=npm-cache -e HOME=. -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group --user 0:0' } } steps { @@ -44,7 +44,7 @@ pipeline { #export npm_config_cache=$(mktemp -d) ./configure --with-curl make dist - chmod -R a+w * + chmod -R a+w * || true ''' stash includes: 'apache-couchdb-*.tar.gz', name: 'tarball' archiveArtifacts artifacts: 'apache-couchdb-*.tar.gz', fingerprint: true @@ -68,9 +68,10 @@ 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 @@ -113,9 +114,10 @@ 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 @@ -136,9 +138,10 @@ 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 @@ -181,9 +184,10 @@ 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 @@ -204,9 +208,10 @@ 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 @@ -227,9 +232,10 @@ 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 @@ -273,9 +279,10 @@ 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 @@ -296,9 +303,10 @@ 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 @@ -342,9 +350,10 @@ 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 @@ -365,10 +374,11 @@ 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 @@ -421,13 +431,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 - args '-v /etc/passwd:/etc/passwd -v /etc/group:/etc/group' + // We must run as root because we have to create ~/.ssh for rsync + args '-v /etc/passwd:/etc/passwd -v /etc/group:/etc/group --user 0:0' label 'ubuntu' } } steps { withCredentials([file(credentialsId: 'jenkins-key', variable: 'KEY')]) { - sh 'rm -rf pkgs' + sh 'umask 0 && rm -rf pkgs' unarchive mapping: ['pkgs/' : '.'] echo 'Building Debian repo...' sh ''' @@ -439,7 +450,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,16 +459,19 @@ 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 username@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...' + sh 'rm -rf *.tar.gz' unstash 'tarball' sh ''' 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 username@couchdb-vm2.apache.org:/var/www/html + rm -rf $BRANCH_NAME couchdb-pkg *.tar.gz + chmod -R a+w * . ''' deleteDir() } // withCredentials |