| pipeline { |
| agent any |
| options { |
| checkoutToSubdirectory('jenkins/build') |
| disableConcurrentBuilds() |
| } |
| stages { |
| stage('Init'){ |
| steps { |
| cleanWs() |
| sh '''#!/bin/bash |
| git init |
| git remote add origin ssh://LeafOS-Jenkins@review.leafos.org:29418/LeafOS-Project/leaf_www |
| ''' |
| } |
| } |
| stage('Pick commit'){ |
| steps { |
| sh '''#!/bin/bash |
| git fetch origin ${GERRIT_REFSPEC} |
| git checkout FETCH_HEAD |
| ''' |
| } |
| } |
| stage('Go'){ |
| steps { |
| sh '''#!/bin/bash |
| set -e |
| mkdir -p build |
| |
| export MASTER_IP="$(echo $SSH_CLIENT | cut -f1 -d ' ')" |
| export MYSQL_PWD="leaf" |
| echo "CREATE DATABASE leaf_ota; GRANT ALL ON leaf_ota.* TO 'leaf'@'localhost' IDENTIFIED BY 'leaf'; USE leaf_ota;" > build/leaf_ota.sql |
| mariadb-dump -h $MASTER_IP -u leaf leaf_ota >> build/leaf_ota.sql |
| |
| docker build -t leafos/leaf_www --build-arg baseurl=${GERRIT_CHANGE_NUMBER} . |
| docker run --rm -tv $(pwd)/build:/src/build leafos/leaf_www |
| if [ $? == 0 ]; then |
| ssh -p 29418 LeafOS-Jenkins@review.leafos.org gerrit review -n OWNER --tag Jenkins --label Verified=+1 -m \\'"PASS: Jenkins : ${BUILD_URL}console\nBuild successful for change $GERRIT_CHANGE_NUMBER, patchset $GERRIT_PATCHSET_NUMBER.\nPreview available at https://www-preview.leafos.org/${GERRIT_CHANGE_NUMBER}"\\' $GERRIT_CHANGE_NUMBER,$GERRIT_PATCHSET_NUMBER |
| else |
| ssh -p 29418 LeafOS-Jenkins@review.leafos.org gerrit review -n OWNER --tag Jenkins --label Verified=-1 -m \\'"FAIL: Jenkins : ${BUILD_URL}console\nBuild failed for change $GERRIT_CHANGE_NUMBER, patchset $GERRIT_PATCHSET_NUMBER"\\' $GERRIT_CHANGE_NUMBER,$GERRIT_PATCHSET_NUMBER |
| fi |
| mkdir -p /var/www/www-preview.leafos.org/${GERRIT_CHANGE_NUMBER} |
| rsync -rh build/static/ jenkins@$MASTER_IP:/var/www/www-preview.leafos.org/${GERRIT_CHANGE_NUMBER} --delete |
| ''' |
| } |
| } |
| } |
| post { |
| always { |
| deleteDir() |
| } |
| } |
| } |