summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoan Touzet <joant@atypical.net>2017-07-19 03:42:39 -0400
committerJoan Touzet <joant@atypical.net>2017-07-19 16:35:00 -0400
commit9a6f6150d3aac814bf83a67b9a52550f7f249a99 (patch)
treec14bd4644587bc217b327bcc956bbc5fe67e87c2
parentc40f66d06bafbeb2e04c989e1a3ecfe5c034fde4 (diff)
downloadcouchdb-jenkins-packages-2.tar.gz
Build repos and push to couchdb-vm2jenkins-packages-2
-rw-r--r--Jenkinsfile48
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