From d1d9ff5a9bfc83500b68eb76e91ab665485e7bb9 Mon Sep 17 00:00:00 2001 From: Patrik Dufresne Date: Wed, 28 Feb 2018 08:33:03 -0500 Subject: [PATCH] Add Jenkins pipeline --- Jenkinsfile | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..277a2de --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,51 @@ +pipeline { + environment { + NEXUS = credentials("local-nexus") + GITLAB = credentials("gitlab-jenkins") + } + parameters { + booleanParam(defaultValue: false, description: 'Generate a release build with a tagged version.', name: 'Release') + } + agent { + docker { + image 'jamesdbloom/docker-java7-maven' + args '-v $HOME/.m2:/root/.m2' + } + } + stages { + stage ('Setup') { + steps { + sh 'apt-get update && apt-get -qq install maven swig build-essential gcc-mingw-w64 mingw-w64 g++-multilib' + } + } + stage ('Build') { + steps { + writeFile file: "settings.xml", text: "patrikdufresne${NEXUS_USR}${NEXUS_PSW}" + sh 'mvn --settings settings.xml -U -Dmaven.test.failure.ignore=true clean deploy' + } + } + stage ('Release') { + when { + environment name: 'Release', value: 'true' + } + steps { + script { + // We want to pick up the version from the pom + pom = readMavenPom file: 'pom.xml' + version = pom.version.replace("-SNAPSHOT", "-${BUILD_NUMBER}") + } + sh 'git checkout .' + sh "mvn versions:set -DnewVersion=${version}" + sh "mvn --settings settings.xml -U -Dmaven.test.skip=true deploy" + sh """ + git config --local user.email "jenkins@patrikdufresne.com" + git config --local user.name "Jenkins" + git tag 'v${version}' + export REPO=`git config remote.origin.url` + git push http://${GITLAB}@\044{REPO#*//} --tags + """ + addInfoBadge "v${version}" + } + } + } +} -- GitLab