diff --git a/.gitignore b/.gitignore
index 0955990..dfde85c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@
/key.bin
/logs/
/conf/
+.metadata/
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 4603f79..4cd890f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,19 +18,19 @@
-
- 6.0.3
- 2.4.4
- 5.4.4.Final
- 5.1.9.RELEASE
- 2.1.8.RELEASE
- 2.1.10.RELEASE
+ 6.1.3
+ 2.5.2
+ 5.4.10.Final
+ 5.2.2.RELEASE
+ 2.2.2.RELEASE
+ 2.2.2.RELEASE
+ 2.10.1
2.12.1
1.7.28
3.0.0-M2
5.2.2
3.0
- http://nexus.locusworks.net
+ https://nexus.locusworks.net
@@ -38,7 +38,7 @@
org.apache.maven.plugins
maven-enforcer-plugin
- 3.0.0-M2
+ ${maven.enforcer.version}
@@ -116,7 +116,7 @@
flyway-maven-plugin
${flyway.version}
- jdbc:mariadb://devops.locusworks.net:3306/
+ jdbc:mariadb://localhost:3306/
false
eighttrack
@@ -126,8 +126,6 @@
filesystem:${basedir}/src/main/resources/database/migration
-
org.mariadb.jdbc
@@ -143,32 +141,20 @@
net.locusworks
applogger
- 1.0.3-RELEASE
+ 1.0.1-RELEASE
net.locusworks
crypto
- 1.0.5-RELEASE
-
-
-
- org.apache.tika
- tika-core
- 1.22
-
-
-
- org.apache.tika
- tika-parsers
- 1.22
+ 1.0.1-RELEASE
net.dv8tion
JDA
- 4.0.0_50
+ 4.1.0_88
com.fasterxml.jackson.core
@@ -188,7 +174,7 @@
com.sedmelluq
lavaplayer
- 1.3.22
+ 1.3.32
@@ -208,7 +194,7 @@
mysql
mysql-connector-java
- 8.0.17
+ 8.0.18
@@ -217,14 +203,13 @@
${hibernate.version}
-
+
- org.apache.commons
- commons-dbcp2
- 2.7.0
+ org.hibernate
+ hibernate-c3p0
+ ${hibernate.version}
-
org.springframework.boot
@@ -296,43 +281,55 @@
com.fasterxml.jackson.core
jackson-core
- 2.10.0.pr3
+ ${jackson.version}
com.fasterxml.jackson.core
jackson-databind
- 2.10.0.pr3
+ ${jackson.version}
com.fasterxml.jackson.core
jackson-annotations
- 2.10.0.pr3
+ ${jackson.version}
javax.xml.bind
jaxb-api
- 2.2.11
+ 2.4.0-b180830.0359
+
+
com.sun.xml.bind
jaxb-core
- 2.2.11
+ 2.3.0.1
+
com.sun.xml.bind
jaxb-impl
- 2.2.11
+ 2.4.0-b180830.0438
+
javax.activation
activation
1.1.1
+
+
+
+ com.mpatric
+ mp3agic
+ 0.9.1
+
+
@@ -346,4 +343,31 @@
+
+
+ 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