blob: 52bc8457843c771bc7229798aa1f40b79e40836a [file] [log] [blame]
#!groovy
/*
*
* 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('ubuntu') {
currentBuild.result = "SUCCESS"
echo 'Building Branch: ' + env.BRANCH_NAME
// Setup the required environment variables.
def mvnHome = "${tool 'Maven 3 (latest)'}"
env.JAVA_HOME="${tool 'JDK 1.8 (latest)'}"
env.PATH="${env.JAVA_HOME}/bin:${env.PATH}"
// Make sure the feature branches don't change the SNAPSHOTS in Nexus.
def mavenGoal = "install"
def mavenLocalRepo = ""
if(env.BRANCH_NAME == 'develop') {
mavenGoal = "sonar:sonar deploy"
} else {
mavenLocalRepo = "-Dmaven.repo.local=${env.WORKSPACE}/.repository"
}
def mavenFailureMode = "" // consider "--fail-at-end"? Odd ordering side effects?
try {
/*stage ('Cleanup') {
echo 'Cleaning up the workspace'
deleteDir()
}*/
stage ('Checkout') {
echo 'Checking out branch ' + env.BRANCH_NAME
checkout scm
}
stage ('Clean') {
echo 'Cleaning Edgent'
sh "${mvnHome}/bin/mvn ${mavenLocalRepo} -Pplatform-android,platform-java7,distribution clean"
}
stage ('Build Edgent') {
echo 'Building Edgent'
sh "${mvnHome}/bin/mvn ${mavenFailureMode} ${mavenLocalRepo} -Pplatform-android,platform-java7,distribution,toolchain -Djava8.home=${env.JAVA_HOME} -Dedgent.build.ci=true ${mavenGoal}"
}
stage ('Build Site') {
if(env.BRANCH_NAME == 'develop') {
echo 'Building Site'
sh "${mvnHome}/bin/mvn ${mavenLocalRepo} site site:stage"
} else {
echo 'Building Site (skipped for non develop branch)'
}
}
/* ========================== TODO figure out what to do with samples now in a separate repo
stage ('Build Samples') {
echo 'Building samples'
sh "cd samples; ${mvnHome}/bin/mvn ${mavenFailureMode} ${mavenLocalRepo} clean package"
sh "cd samples/topology; ./run-sample.sh HelloEdgent"
sh "cd samples; ${mvnHome}/bin/mvn ${mavenFailureMode} ${mavenLocalRepo} -Pplatform-java7 clean package"
sh "cd samples/topology; ./run-sample.sh HelloEdgent"
}
stage ('Build Templates') {
echo 'Building templates'
sh "cd samples/template; ${mvnHome}/bin/mvn ${mavenFailureMode} ${mavenLocalRepo} clean package; ./app-run.sh"
sh "cd samples/template; ${mvnHome}/bin/mvn ${mavenFailureMode} ${mavenLocalRepo} -Pplatform-java7 clean package; ./app-run.sh"
sh "cd samples/template; ${mvnHome}/bin/mvn ${mavenFailureMode} ${mavenLocalRepo} -Pplatform-android clean package; ./app-run.sh"
}
========================== */
/* There seems to be a problem with this (Here the output of the build log):
Verifying get-edgent-jars
[Pipeline] sh
[edgent-pipeline_develop-JN4DHO6BQV4SCTGBDJEOL4ZIC6T36DGONHH3VGS4DCDBO6UXH4MA] Running shell script
+ cd samples/get-edgent-jars-project
+ ./get-edgent-jars.sh
./get-edgent-jars.sh: 111: [: java8: unexpected operator
./get-edgent-jars.sh: 118: ./get-edgent-jars.sh: Syntax error: "(" unexpected
*/
/*stage ('Verify get-engent-jars') {
if(env.BRANCH_NAME == 'develop') {
echo 'Verifying get-edgent-jars'
sh "cd samples/get-edgent-jars-project; ./get-edgent-jars.sh"
} else {
echo 'Verifying get-edgent-jars (skipped for non develop branch)'
}
}*/
}
catch (err) {
currentBuild.result = "FAILURE"
/* mail body: "project build error is here: ${env.BUILD_URL}" ,
from: 'xxxx@yyyy.com',
replyTo: 'dev@edgent.apache.org',
subject: 'Autobuild for Branch ' env.BRANCH_NAME
to: 'commits@edgent.apache.org'
*/
throw err
}
}