import hudson.scm.subversion.CheckoutUpdater
node('WIEN&&ALM_MANAGED') {
timestamps {
def mvnHome = tool 'Maven 3.3.x'
def jdkHome = tool 'JDK 1.8 Orbis 64 bits'
def mailingList = emailextrecipients([[$class: 'CulpritsRecipientProvider'],
[$class: 'DevelopersRecipientProvider'],
[$class: 'RequesterRecipientProvider']])
def extendMailingList = ", amon.bhatia@agfa.com"
def pom84File = 'pom.xml'
def pom85File = 'pom85.xml'
def pomFile
def workspace = env.JOB_NAME.replace('branches%2F', '')
env.WORKSPACE = "D:\\DEV\\CI\\WS\\${workspace}"
env.JAVA_HOME = "${jdkHome}"
ws(env.WORKSPACE) {
try {
if (env.JOB_NAME =~ '0804') {
pomFile = pom84File
} else if (env.JOB_NAME =~ '0805') {
pomFile = pom85File
} else {
throw new Exception("Define an ORBIS Solution (0804 or 0805) in the job name")
}
echo "Building ${env.JOB_NAME} with ${env.BRANCH_NAME} and ${pomFile} using ${env.WORKSPACE}"
if (env.JOB_NAME =~ 'INTEGRATION') {
integrate(mvnHome, pomFile)
} else if (env.JOB_NAME =~ 'TEST') {
test(mvnHome, pomFile)
} else if (env.JOB_NAME =~ 'QUALITY') {
analyse(mvnHome, pomFile)
} else if (env.JOB_NAME =~ 'SNAPSHOT') {
snapshot(mvnHome, pomFile)
} else if (env.JOB_NAME =~ 'RELEASE' && env.BRANCH_NAME != 'trunk') {
release(mvnHome, pomFile)
}
} catch (any) {
currentBuild.result = 'FAILURE'
throw any } finally {
step([$class: 'WsCleanup', cleanWhenFailure: false])
echo "Sending emails to ${mailingList}${extendMailingList}"
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: mailingList + extendMailingList, sendToIndividuals: true])
}
}
}
}
def getPomVersion(pomFile) {
def matcher = pomFile =~ '<version>(.+)</version>'
matcher ? matcher[0][1] : null
}
@NonCPS
def getArtifactsAsList(artifacts) {
def artifactList = ""
if(artifacts != null && artifacts.size() > 0) {
artifacts.each() { f ->
artifactList += "* ${f}\n"
}
}
artifactList += "\nDownload: ${env.BUILD_URL}artifact/\n"
return artifactList
}
void checkOut(pomFile) {
stage('Checkout') {
scm.setWorkspaceUpdater(new CheckoutUpdater())
checkout scm
def v = getPomVersion(readFile(pomFile))
if (v) {
echo "Version ${v}"
}
}
}
void update(mvnHome, pomFile) {
stage('Update') {
bat "${mvnHome}\\bin\\mvn -f ${pomFile} versions:update-parent versions:update-properties -B"
}
}
void checkIn(mvnHome, pomFile) {
stage('Checkin') {
def pomFileMainBackup = pomFile + '.versionsBackup'
def pomFileModulesBackup = 'modules\\' + pomFileMainBackup
if (fileExists (pomFileMainBackup) || fileExists (pomFileModulesBackup)) {
echo "${pomFileMainBackup} exists: " + fileExists (pomFileMainBackup)
echo "${pomFileModulesBackup} exists: " + fileExists (pomFileModulesBackup)
def message = '"[versions-maven-plugin] update parent and/or properties version to latest release"'
bat "${mvnHome}\\bin\\mvn -f ${pomFile} -Pxml-format xml-format:xml-format -B"
bat "${mvnHome}\\bin\\mvn -f ${pomFile} versions:commit scm:checkin -Dmessage=${message} -B"
} else {
echo "No changes detected, skip checkin"
}
}
}
void build(mvnHome, pomFile) {
checkOut(pomFile)
update(mvnHome, pomFile)
stage('Build') {
bat "${mvnHome}\\bin\\mvn -f ${pomFile} clean package -B"
}
checkIn(mvnHome, pomFile)
}
void archive(pomFile) {
stage('Archive') {
archiveArtifacts allowEmptyArchive: true, artifacts: '**/target/*.jar' , excludes: null, fingerprint: true, onlyIfSuccessful: true
}
}
void test(mvnHome, pomFile) {
build(mvnHome, pomFile)
stage('Test') {
bat "${mvnHome}\\bin\\mvn -f ${pomFile} test -B -DskipTransactionalTests=false -Dtest.log4jlevel=DEBUG -Dmaven.test.failure.ignore=true -DdownloadSources=false -DdownloadJavadocs=false"
junit healthScaleFactor: 5.0, allowEmptyResults: true, testDataPublishers: [[$class: 'ClaimTestDataPublisher']], testResults: '**/target/surefire-reports/*.xml'
}
}
void analyse(mvnHome, pomFile) {
test(mvnHome, pomFile)
stage('Analysis') {
withSonarQubeEnv('sonar-hcis-vie-test') {
bat "${mvnHome}\\bin\\mvn -f ${pomFile} sonar:sonar -Psonar -Dsonar.branch=${env.BRANCH_NAME} -Dsonar.scm.provider=svn"
}
}
}
void integrate(mvnHome, pomFile) {
build(mvnHome, pomFile)
stage('Integration') {
bat "${mvnHome}\\bin\\mvn -f ${pomFile} install -B -Dmaven.test.failure.ignore=true -DdownloadSources=false -DdownloadJavadocs=false"
}
}
void snapshot(mvnHome, pomFile) {
build(mvnHome, pomFile)
def version = getPomVersion(readFile(pomFile))
stage('Snapshot') {
bat "${mvnHome}\\bin\\mvn -f ${pomFile} deploy -B -Porbis-dev"
}
currentBuild.description = version
}
void release(mvnHome, pomFile) {
build(mvnHome, pomFile)
def version = getPomVersion(readFile(pomFile)).replace('-SNAPSHOT', '')
archive(pomFile)
stage('Release') {
bat "${mvnHome}\\bin\\mvn -f ${pomFile} -DdownloadSources=false -DdownloadJavadocs=false -Dmaven.test.failure.ignore=true release:prepare release:perform orbiscomponent:reset-start-revision -B -Porbis-dev"
}
currentBuild.description = version
}
HI,
I have the same problem here.
Config : Jenkins ver. 2.32.3 TLS + Windows Server 2012R2 + JDK 1.8 +
Pipeline Stage View Plugin.
Defines a new job type for pipelines and provides their generic user interface.
JavaScript GUI Lib: Handlebars bundle plugin.
JavaScript GUI Lib: Moment.js bundle plugin.
Provides a REST API to access pipeline and pipeline run data.
Error message in Chrome (ressent version) :
GET http://jenkins-hcis-main.agfahealthcare.com/job/HICU/view/All/job/HICU_RELEASE_0804_core_RELEASE/job/trunk/wfapi/runs?fullStages=true&_=1490277536624 500 (Server Error)
send @ jquery2.js:998
ajax @ jquery2.js:998
exports.execAsyncGET @ stageview.js:3866
exports.getJobRuns @ stageview.js:3001
exports.listen @ stageview.js:2773
exports.getModelData @ stageview.js:3208
(anonymous) @ stageview.js:3703
(anonymous) @ stageview.js:2517
each @ jquery2.js:996
each @ jquery2.js:996
exports.forEachElement @ stageview.js:2516
exports.applyControllers @ stageview.js:3687
(anonymous) @ stageview.js:3802
j @ jquery2.js:996
fireWith @ jquery2.js:996
ready @ jquery2.js:996
I @ jquery2.js:996
Code of Pipeline :