blob: c32b9e1786e9bfe91a0ef55215546ccd0c84fe40 [file]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
node(label: 'ubuntu') {
catchError {
def environmentDockerImage
def dockerTag = env.BUILD_TAG.replace('%2F', '-')
def buildArgs = '';
if (env.CHANGE_ID == null) {
buildArgs = '--install';
}
withEnv(["DOCKER_TAG=${dockerTag}", "BUILD_ARGS=${buildArgs}"]) {
stage('Clone repository') {
checkout scm
}
stage('Prepare environment') {
echo 'Building docker image for build environment ...'
environmentDockerImage = docker.build('brooklyn:${DOCKER_TAG}')
}
// Conditional stage to checkout website on SVN and setup BROOKLYN_SITE_DIR, when not building a PR
if (env.CHANGE_ID == null) {
stage('Clone Brooklyn website') {
sh 'svn --non-interactive --trust-server-cert co https://svn.apache.org/repos/asf/brooklyn/site brooklyn-site-public'
sh 'cd brooklyn-site-public'
sh 'svn up'
sh 'ls style/img/apache-brooklyn-logo-244px-wide.png || { echo "ERROR: checkout is wrong" ; exit 1 ; }'
sh 'export BROOKLYN_SITE_DIR=`pwd`'
}
}
stage('Build website') {
environmentDockerImage.inside('-i --name brooklyn-${DOCKER_TAG} -v ${PWD}:/usr/workspace') {
sh './_build/build.sh website-root ${BUILD_ARGS}'
}
}
// Conditional stage to deploy artifacts, when not building a PR
if (env.CHANGE_ID == null) {
stage('Sanity check') {
input "Does the build look ok?"
}
stage('Deploy website') {
sh 'cd ${BROOKLYN_SITE_DIR-./brooklyn-site-public}'
sh 'svn add * --force'
sh 'export DELETIONS=$( svn status | sed -e "/^!/!d" -e "s/^!//" )'
sh 'if [ ! -z "${DELETIONS}" ] ; then svn rm ${DELETIONS} ; fi'
sh 'svn ci -m "Update Brooklyn website from ${BRANCH_NAME}, built by ${BUILD_TAG} (${BUILD_URL})"'
}
}
// TODO: Publish docker image to https://hub.docker.com/r/apache/brooklyn/ ?
}
}
// Conditional stage, when not building a PR
if (env.CHANGE_ID == null) {
stage('Send notifications') {
// Send email notifications
step([
$class: 'Mailer',
notifyEveryUnstableBuild: true,
recipients: 'dev@brooklyn.apache.org',
sendToIndividuals: false
])
}
}
}