Add pipeline and config file for testing groovy syntax
Change-Id: Ia546a50079026aa2afc28180a190f7e5ed3d5c93
diff --git a/test-groovy-pipeline.groovy b/test-groovy-pipeline.groovy
new file mode 100644
index 0000000..c63593f
--- /dev/null
+++ b/test-groovy-pipeline.groovy
@@ -0,0 +1,43 @@
+/**
+* Groovy code testing pipeline
+* CREDENTIALS_ID - gerrit credentials id
+* GRADLE_IMAGE - gradle image name
+* GRADLE_CMD - command(s) for gradle
+*
+**/
+
+gerrit = new com.mirantis.mk.Gerrit()
+common = new com.mirantis.mk.Common()
+
+node("docker"){
+ try {
+ stage ('Checkout source code'){
+ gerrit.gerritPatchsetCheckout ([
+ credentialsId : CREDENTIALS_ID,
+ withWipeOut : true
+ ])
+ }
+ stage ('Run Codenarc tests'){
+ def workspace = common.getWorkspace()
+ def gradle_report = sh (script: "docker run --rm -v ${workspace}:/usr/bin/app:rw ${GRADLE_IMAGE} ${GRADLE_CMD}",
+ returnStdout: true).trim()
+ // Compilation failure doesn't fail the build
+ // Check gradle output explicitly
+ common.infoMsg(gradle_report)
+ if ( gradle_report =~ /Compilation failed/ ) {
+ throw new Exception("COMPILATION FAILED!")
+ }
+ }
+
+ } catch (Throwable e) {
+ currentBuild.result = 'FAILURE'
+ def errLog = readFile('build/reports/codenarc/main.txt')
+ if(errLog){
+ print "Error log: ${errLog}"
+ }
+ throw e
+ } finally {
+ // send notification
+ common.sendNotification(currentBuild.result, "" ,["slack"])
+ }
+}