diff --git a/Jenkinsfile b/Jenkinsfile
index 155a059..3b19af3 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,7 +1,18 @@
#!groovy
+// Required Jenkins plugins:
+// https://wiki.jenkins-ci.org/display/JENKINS/Timestamper
+// https://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plug-ins
+// https://wiki.jenkins-ci.org/display/JENKINS/Checkstyle+Plugin ?
+// https://wiki.jenkins-ci.org/display/JENKINS/FindBugs+Plugin
+// https://wiki.jenkins-ci.org/display/JENKINS/PMD+Plugin ?
+// https://wiki.jenkins-ci.org/display/JENKINS/DRY+Plugin ?
+// https://wiki.jenkins-ci.org/display/JENKINS/Task+Scanner+Plugin
+// https://wiki.jenkins-ci.org/display/JENKINS/Javadoc+Plugin
+// https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin ?
-init()
+
+init()
def branch_name
def branch_name_base
@@ -23,7 +34,8 @@ def init() {
build_url = env.BUILD_URL
job_name = "${env.JOB_NAME}"
branch_name = env.BRANCH_NAME
- persist = branch_name
+ branch_name_docker = branch_name.replaceAll(/\//,'.')
+ persist = "/var/lib/jenkins/PERSIST/${branch_name_docker}"
// execute the branch type specific pipeline code
try {
@@ -31,52 +43,44 @@ def init() {
if (branch_name.indexOf('release/')==0) build_type='release'
if (branch_name.indexOf('feature/')==0) build_type='feature'
if (branch_name.indexOf('develop')==0) build_type='develop'
+ if (branch_name.indexOf('hotfix')==0) build_type='hotfix'
+ if (branch_name.indexOf('bugfix')==0) build_type='bugfix'
if (branch_name.indexOf('master')==0) build_type='master'
- if (branch_name.indexOf('hotfix/')==0) build_type='hotfix'
- if (branch_name.indexOf('bugfix/')==0) build_type='bugfix'
+
+ // common pipeline elements
+ node('master') {
+ Initialize()
+ SetVersion(build_type)
+ print_vars() // after SetVersion - all variables now defined
+ set_result('INPROGRESS')
+ Build() // builds database via flyway migration
+ }
- switch(build_type) {
- case ~/feature/:
- case ~/hotfix/:
- case ~/bugfix/:
- case ~/master/:
- case ~/develop/:
- CommonBuild();
- break;
- case ~/release/:
- CommonBuild();
- Deploy();
- break;
- default:
- throw "unsupported branch type: ${branch_name}"
+ if (branch_name.indexOf('develop')==0) {
+ node('master') {
+ Deploy();
+ }
+ } else if (branch_name.indexOf('release/')==0) {
+ node('master') {
+ Deploy();
+ }
}
node('master') {
- set_result('SUCCESS')
+ set_result('SUCCESS')
}
} catch (err) {
node() {
- set_result('FAILURE')
+ set_result('FAILURE')
}
throw err
}
}
-def CommonBuild() {
- // common pipeline elements
- node('master') {
- Initialize()
- SetVersion(build_type)
- print_vars() // after SetVersion - all variables now defined
- set_result('INPROGRESS')
- Build()
- }
-}
-
def Build() {
stage ('build') {
- mvn_alt("install -DskipTests=true -Dbuild.revision=${git_commit}")
+ mvn "install -DskipTests=true -Dbuild.revision=${git_commit}"
step([$class: 'ArtifactArchiver', artifacts: '**/target/*.jar', fingerprint: true])
}
}
@@ -92,10 +96,8 @@ def Initialize() {
}
def Deploy() {
- node('master') {
- stage ('deploy') {
- mvn_alt("deploy -DskipTests=true -Dbuild.number=${build_number} -Dbuild.revision=${git_commit}")
- }
+ stage ('deploy') {
+ mvn "deploy -DskipTests=true -Dbuild.number=${build_number} -Dbuild.revision=${git_commit}"
}
}
@@ -105,17 +107,19 @@ def getSha1() {
return sha1
}
-def mvn_initial(args) {
- mvn_alt(args)
+def mvn(args) {
+ withMaven(
+ maven: 'maven-3.6.1',
+ globalMavenSettingsConfig: 'locusworks-settings'
+ ) {
+
+ sh "mvn ${args}"
+
+ }
}
-def mvn_alt(args) {
- // add maven tools to path before calling maven
- withMaven(maven: 'maven-3.6.1', jdk: 'jdk1.8.0_221', mavenSettingsConfig: 'maven_settings') {
- writeFile file: '.skip-task-scanner', text: ''
- writeFile file: '.skip-publish-junit-results', text: ''
- sh "mvn ${args}"
- }
+def mvn_initial(args) {
+ mvn(args)
}
def set_result(status) {
@@ -130,10 +134,13 @@ def set_result(status) {
} else {
error ("unknown status")
}
+
+ // save in persistence file for access the status page
+ // make sure the directory exists first
+ sh "mkdir -p $persist && echo $status > $persist/build.result"
}
def notify_bitbucket(state) {
- echo "notify bitbucket, state = $state, commit: ${git_commit}"
}
def print_vars() {
@@ -146,35 +153,34 @@ def print_vars() {
echo "display_name = ${currentBuild.displayName}"
echo "version = ${version}"
echo "git_commit = ${git_commit}"
+
}
def SetVersion( v ) {
stage ('set version') {
echo "set version ${v}"
branch_name_base = (branch_name =~ /([^\/]+$)/)[0][0]
-
- switch(build_type) {
- case ~/develop/:
- version = build_number + '-SNAPSHOT'
- currentBuild.displayName = version
- break;
- case ~/release/:
- // for release branches, where the branch is named "release/1.2.3",
- // derive the version and display name derive from the numeric suffix and append the build number
- // 3.2.1.100
- version = branch_name_base + '.' + build_number + '-RELEASE'
- currentBuild.displayName = version
- break;
- default:
- // for all other branches the version number is 0 with an appended build number
- // and for the display name use the jenkins default #n and add the branch name
- version = branch_name_base + "." + build_number
- currentBuild.displayName = "#" + build_number + " - " + branch_name_base
+ if ( v == 'release' ) {
+ // for release branches, where the branch is named "release/1.2.3",
+ // derive the version and display name derive from the numeric suffix and append the build number
+ // 3.2.1.100
+ version = branch_name_base + "." + build_number + "-RELEASE";
+ //version = branch_name.substring('release/'.length()) + "." + build_number
+ currentBuild.displayName = version
+ } else if (v == 'develop') {
+ version = branch_name_base + "." + build_number + "-SNAPSHOT";
+ currentBuild.displayName = version
+ } else {
+ // for all other branches the version number is 0 with an appended build number
+ // and for the display name use the jenkins default #n and add the branch name
+ // #101 - feature/user/foo
+ //version = '0.' + build_number
+ version = branch_name_base + "." + build_number
+ currentBuild.displayName = "#" + build_number + " - " + branch_name_base
}
-
display_name = currentBuild.displayName
- mvn_initial("versions:set -DnewVersion=${version}")
+ mvn_initial "versions:set -DnewVersion=${version}"
}
}
-return this
+return this
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 45391e4..dacb6de 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,14 +15,14 @@
- git@gitea.locusworks.net:Locusworks/pseudo-bot.git
+ git@bitbucket.org:locus2k/crypto.git
1.8
1.8
- http://nexus.locusworks.net
3.0
+ https://nexus.locusworks.net
@@ -108,7 +108,7 @@
commons-codec
commons-codec
- 1.13
+ 1.14
@@ -139,5 +139,32 @@
+
+
+ locusworks-public
+ locusworks-public
+ ${nexus.repo}/repository/locusworks-public/
+
+ true
+
+
+ true
+
+
+
+
+
+
+ locusworks-public
+ ${nexus.repo}/repository/locusworks-public/
+
+ true
+
+
+ true
+
+
+
+
\ No newline at end of file