diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 00000000..0c11c36c
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,62 @@
+void setBuildStatus(String message, String state) {
+ step([
+ $class: "GitHubCommitStatusSetter",
+ reposSource: [$class: "ManuallyEnteredRepositorySource", url: "${env.GIT_URL}"],
+ contextSource: [$class: "ManuallyEnteredCommitContextSource", context: "ci/jenkins/build-status"],
+ errorHandlers: [[$class: "ChangingBuildStatusErrorHandler", result: "UNSTABLE"]],
+ statusResultSource: [ $class: "ConditionalStatusResultSource", results: [[$class: "AnyBuildResult", message: message, state: state]] ]
+ ]);
+}
+
+pipeline {
+ agent any
+
+ stages {
+ stage('Maven build') {
+ steps {
+ withMaven(maven: 'Maven', options: [findbugsPublisher(disabled: true)]) {
+ sh "mvn clean install -e -P let_reporting"
+ }
+ }
+ }
+
+ stage('Reporting') {
+ steps {
+ pmd canComputeNew: false, defaultEncoding: '', healthy: '', pattern: '**/target/pmd.xml', thresholdLimit: 'high', unHealthy: ''
+ findbugs canComputeNew: false, defaultEncoding: '', excludePattern: '', healthy: '', includePattern: '', isRankActivated: true, pattern: '**/target/findbugsXml.xml', unHealthy: ''
+ jacoco classPattern: '**/build/classes/*/main/', execPattern: '**/target/jacoco.exec', sourcePattern: '**/src/main/java'
+ }
+ }
+
+ stage('Tag') {
+ steps {
+ echo 'Build is tagged here.'
+ }
+ }
+
+ stage('Push to Nexus') {
+ steps {
+ echo 'Build is pushed to Nexus here.'
+ }
+ }
+
+ }
+
+ post {
+ failure {
+ setBuildStatus("Build failed", "FAILURE");
+ emailext body: "The build of the LET Application (${env.JOB_NAME}) failed! See ${env.BUILD_URL}", recipientProviders: [[$class: 'CulpritsRecipientProvider']], subject: 'LET Application Build Failure'
+ }
+ success {
+ setBuildStatus("Build complete", "SUCCESS");
+ }
+ }
+ options {
+ timeout(time: 10, unit: 'MINUTES')
+ buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '7'))
+ }
+ triggers {
+ pollSCM('H/5 * * * *')
+ }
+
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index d4abc728..3694a082 100644
--- a/pom.xml
+++ b/pom.xml
@@ -145,7 +145,73 @@
spring-security-test
test
-
+
+
+
+ let_reporting
+
+
+
+ org.apache.maven.plugins
+ maven-pmd-plugin
+ 3.10.0
+
+ false
+ false
+ ${java.version}
+ false
+
+
+
+
+ check
+ cpd-check
+
+
+
+
+
+ org.codehaus.mojo
+ findbugs-maven-plugin
+ 3.0.4
+
+ Max
+ false
+ Low
+ true
+
+
+
+ analyze-compile
+ compile
+
+ check
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.2
+
+
+ ch/ethz/seb/sebserver/*
+
+
+
+
+ default-prepare-agent
+
+ prepare-agent
+
+
+
+
+
+
+
+
\ No newline at end of file