diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000000000000000000000000000000000000..0bc94baa19b9fcb767f7deb3b4f0dcb57715c42c
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,4 @@
+node('master') {
+	checkout scm
+	load 'scripts/jenkins/gcc.groovy'
+}
diff --git a/scripts/jenkins/gcc.groovy b/scripts/jenkins/gcc.groovy
index bfc6645870ff7a4b1f2b9e7e7d4ddde16d4fec46..c984fc35597f327417f8647eb92651ec85f1f514 100644
--- a/scripts/jenkins/gcc.groovy
+++ b/scripts/jenkins/gcc.groovy
@@ -1,71 +1,40 @@
+defaultCMakeOptions = '-DOGS_LIB_BOOST=System -DOGS_LIB_VTK=System'
+
 node('docker')
 {
-	// Checks out into subdirectory ogs
 	stage 'Checkout'
-	checkout([$class: 'GitSCM',
-		branches: [[name: '*/master']],
-		doGenerateSubmoduleConfigurations: false,
-		extensions:
-			[[$class: 'RelativeTargetDirectory', relativeTargetDir: 'ogs']],
-		submoduleCfg: [],
-		userRemoteConfigs:
-			[[url: 'https://github.com/ufz/ogs']]])
-
-
-	// Multiple configurations are build in parallel
-	parallel linux: {
-		docker.image('ogs6/gcc-ogs-cli:latest').inside
-		{
-			build 'build', '', 'package'
+ 	dir('ogs') {
+  		checkout scm
+  	}
 
-			stage 'Test'
-			sh '''cd build
-			      make tests'''
-		}
-	},
-
-	linux_gui: {
-		docker.image('ogs6/gcc-ogs-gui:latest').inside {
-			build 'build_gui', '-DOGS_BUILD_GUI=ON -DOGS_BUILD_TESTS=OFF -DOGS_BUILD_CLI=OFF', 'package'
-		}
+	stage 'Build'
+	docker.image('ogs6/gcc-ogs-base:latest').inside {
+		build 'build', '', 'package tests ctest'
 	}
 
-//	windows: {
-//		docker.image('ogs6/mingw-ogs-gui:latest').inside
-//		{
-//			build 'build_win', '-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE', 'package'
-//
-//			stage 'Test'
-//			sh '''cd build_win
-//						rm -rf tests/testrunner.xml
-//						wine bin/testrunner.exe --gtest_output=xml:./tests/testrunner.xml'''
-//		}
-//	},
-//
-//	windows_gui: {
-//		docker.image('ogs6/mingw-ogs-gui:latest').inside
-//		{
-//			build 'build_win_gui',
-//						'-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE -DOGS_BUILD_GUI=ON -DOGS_BUILD_TESTS=OFF -DOGS_BUILD_CLI=OFF',
-//						'package'
-//		}
-//	}
+	publishTestReports 'build/Testing/**/*.xml', 'build/Tests/testrunner.xml'
 
-	// end parallel
-
-	step([$class: 'JUnitResultArchiver',
-		testResults: 'build/tests/testrunner.xml,build_win/tests/testrunner.xml'])
-
-	archive 'build*/*.tar.gz,build_win*/*.zip'
-} // end node
+	// archive 'build*/*.tar.gz'
+}
 
 
 def build(buildDir, cmakeOptions, target) {
 	sh "rm -rf ${buildDir} && mkdir ${buildDir}"
 
 	stage 'Configure'
-	sh "cd ${buildDir} && cmake ../ogs ${cmakeOptions}"
+	sh "cd ${buildDir} && cmake ../ogs ${defaultCMakeOptions} ${cmakeOptions}"
 
 	stage 'Build'
-	sh "cd ${buildDir} && make -j 2 ${target}"
+	sh "cd ${buildDir} && make -j 4 ${target}"
+}
+
+def publishTestReports(ctestPattern, gtestPattern) {
+	step([$class: 'XUnitPublisher', testTimeMargin: '3000', thresholdMode: 1,
+		thresholds: [
+			[$class: 'FailedThreshold', failureNewThreshold: '', failureThreshold: '', unstableNewThreshold: '', unstableThreshold: ''],
+			[$class: 'SkippedThreshold', failureNewThreshold: '', failureThreshold: '', unstableNewThreshold: '', unstableThreshold: '']],
+		tools: [
+			[$class: 'CTestType', deleteOutputFiles: true, failIfNotNew: true, pattern: "${ctestPattern}", skipNoTestFiles: false, stopProcessingIfError: true],
+			[$class: 'GoogleTestType', deleteOutputFiles: true, failIfNotNew: true, pattern: "${gtestPattern}", skipNoTestFiles: false, stopProcessingIfError: true]]
+	])
 }