diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..93f86e3
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,45 @@
+pipeline {
+ agent none
+
+ triggers {
+ pollSCM 'H/10 * * * *'
+ }
+
+ options {
+ disableConcurrentBuilds()
+ buildDiscarder(logRotator(numToKeepStr: '14'))
+ }
+
+ stages {
+ stage("Test: baseline (jdk8)") {
+ agent {
+ docker {
+ image 'adoptopenjdk/openjdk8:latest'
+ args '-v $HOME/.m2:/root/.m2'
+ }
+ }
+ environment {
+ ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c')
+ }
+ steps {
+ sh "ci/test.sh"
+ }
+ }
+ }
+
+ post {
+ changed {
+ script {
+ slackSend(
+ color: (currentBuild.currentResult == 'SUCCESS') ? 'good' : 'danger',
+ channel: '#spring-ws',
+ message: "${currentBuild.fullDisplayName} - `${currentBuild.currentResult}`\n${env.BUILD_URL}")
+ emailext(
+ subject: "[${currentBuild.fullDisplayName}] ${currentBuild.currentResult}",
+ mimeType: 'text/html',
+ recipientProviders: [[$class: 'CulpritsRecipientProvider'], [$class: 'RequesterRecipientProvider']],
+ body: "${currentBuild.fullDisplayName} is reported as ${currentBuild.currentResult}")
+ }
+ }
+ }
+}
diff --git a/ci/test.sh b/ci/test.sh
new file mode 100755
index 0000000..6fdc61c
--- /dev/null
+++ b/ci/test.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+set -euo pipefail
+
+MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" \
+ ./mvnw -s settings.xml clean dependency:list test -Dsort -B
diff --git a/ci/version.sh b/ci/version.sh
new file mode 100755
index 0000000..3e9fb1b
--- /dev/null
+++ b/ci/version.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+set -euo pipefail
+
+RAW_VERSION=`MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw \
+ org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate \
+ -Dexpression=project.version -q -DforceStdout`
+
+# Split things up
+VERSION_PARTS=($RAW_VERSION)
+
+# Grab the last part, which is the actual version number.
+echo ${VERSION_PARTS[${#VERSION_PARTS[@]}-1]}
+
diff --git a/settings.xml b/settings.xml
new file mode 100644
index 0000000..d312f72
--- /dev/null
+++ b/settings.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ sonatype
+ ${env.USERNAME}
+ ${env.PASSWORD}
+
+
+ spring-plugins-release
+ ${env.ARTIFACTORY_USR}
+ ${env.ARTIFACTORY_PSW}
+
+
+ spring-libs-snapshot
+ ${env.ARTIFACTORY_USR}
+ ${env.ARTIFACTORY_PSW}
+
+
+ spring-libs-milestone
+ ${env.ARTIFACTORY_USR}
+ ${env.ARTIFACTORY_PSW}
+
+
+ spring-libs-release
+ ${env.ARTIFACTORY_USR}
+ ${env.ARTIFACTORY_PSW}
+
+
+
+
\ No newline at end of file