coralproject / ask

A better way for journalists to manage forms, submissions, and galleries. Because journalism needs everyone.
https://coralproject.net/products/ask.html
Other
42 stars 8 forks source link

Create Jenkins job for shelf artifacts binary format #104

Closed edefikh-zz closed 8 years ago

edefikh-zz commented 8 years ago

We need a Jenkins job that watches master / release branch of shelf github repo and generates new artifacts on commits to S3 as follows

here is the Jenkins job for testing step 1
if [ -d go ]; then rm -rf go/; fi
tar xvfz /mnt/go_version/go1.5.3.linux-amd64.tar.gz
sudo cp -rf go/ /usr/local

export GOPATH=$WORKSPACE/go
export PATH=$PATH:$GOPATH/bin
export GO15VENDOREXPERIMENT=1

#MONGODB_BACKUP_URL=https://s3.amazonaws.com/nyt-mongo-backup/mongodb-backups/dump.tar.gz
MONGODB_BACKUP_URL=https://s3.amazonaws.com/coral-demo-dataset/dump.tar.gz
MONGODB_DB_PATH=/opt/mongodb/db
MONGODB_CONFIG_PATH=/opt/mongodb/configs
MONGODB_BACKUP_PATH=/opt/mongodb/backup/dump
MONGODB_PORT=27017
MONGODB_INSTANCE_NAME=mongo-server
MOMGODB_VERSION=3.2
MONGODB_USER=coral-user
MONGODB_PASS=kiwort52
MONGODB_DB=coral
MONGODB_AUTH=coral
MONGODB_AUTH_STRING="db.createUser( { user: '$MONGODB_USER', pwd: '$MONGODB_PASS', roles: [ 'readWrite' ] })"

if [ -f /tmp/dump.tar.gz ]; then rm /tmp/dump.tar.gz; fi
wget $MONGODB_BACKUP_URL -P/tmp
if [ -d $MONGODB_BACKUP_PATH ]; then echo "$MONGODB_BACKUP_PATH exists"; else sudo mkdir -p $MONGODB_BACKUP_PATH; fi
if [ -d $MONGODB_DB_PATH ]; then echo "$MONGODB_BACKUP_PATH exists"; else sudo mkdir -p $MONGODB_DB_PATH; fi
if [ -d $MONGODB_CONFIG_PATH ]; then echo "$MONGODB_CONFIG_PATH exists"; else sudo mkdir -p $MONGODB_CONFIG_PATH; fi
tar xvfz /tmp/dump.tar.gz --strip 1 -C $MONGODB_BACKUP_PATH
sudo docker run --net=$NETWORK_NAME --name $MONGODB_INSTANCE_NAME -v $MONGODB_DB_PATH:/data/db -p 27017:$MONGODB_PORT -d mongo:$MOMGODB_VERSION
sudo mongorestore -d $MONGODB_DB $MONGODB_BACKUP_PATH
sudo mongo $MONGODB_DB --eval "$MONGODB_AUTH_STRING"

set +e
go get github.com/coralproject/shelf
set -e

export XENIA_MONGO_HOST=127.0.0.1:27017
export XENIA_MONGO_USER=$MONGODB_USER
export XENIA_MONGO_AUTHDB=$MONGODB_AUTH
export XENIA_MONGO_DB=$MONGODB_DB

export XENIA_LOGGING_LEVEL=1
export XENIA_HOST=:4000

export XENIA_MONGO_PASS=$MONGODB_PASS

cd "$GOPATH/src/github.com/coralproject/shelf/internal"
go test ./...
go vet ./...

cd "$GOPATH/src/github.com/coralproject/shelf/cmd"
go test ./...
go vet ./...
if [ -d go ]; then rm -rf go/; fi
tar xvfz /mnt/go_version/go1.5.3.linux-amd64.tar.gz
sudo cp -rf go/ /usr/local

export GOPATH=$WORKSPACE/go
export PATH=$PATH:$GOPATH/bin
export GO15VENDOREXPERIMENT=1

set +e
go get github.com/coralproject/shelf
set -e

cd $GOPATH/src/github.com/coralproject/shelf/cmd/xenia
go build 
cd $GOPATH/src/github.com/coralproject/shelf/cmd/xeniad
BuildDate=`date +"%Y-%m-%d"`
GIT_VER=`git describe --always --dirty --tags`
go build -ldflags "-X main.GitVersion=${GIT_VER} -X main.GitRevision=${GIT_COMMIT} -X main.BuildDate=${BuildDate}"

if [ -d /mnt/shelf ];then echo "Exists"; else mkdir -p /mnt/shelf/last /mnt/shelf/$BUILD_NUMBER; fi
cp $GOPATH/src/github.com/coralproject/shelf/cmd/xenia/xenia /mnt/shelf/last
cp $GOPATH/src/github.com/coralproject/shelf/cmd/xeniad/xeniad /mnt/shelf/last
cp $GOPATH/src/github.com/coralproject/shelf/cmd/xenia/xenia /mnt/shelf/$BUILD_NUMBER
cp $GOPATH/src/github.com/coralproject/shelf/cmd/xeniad/xeniad /mnt/shelf/$BUILD_NUMBER
edefikh-zz commented 8 years ago

task completed