11@Library (' shared-libraries' ) _
22
3- def runtests (String javaVersion ){
3+ def runtests (){
44 // 'set -e' causes the script to fail if any command fails.
5- sh label :' test' , script : ''' #!/bin/bash
5+ sh label :' deploy- test-app ' , script : ''' #!/bin/bash
66 set -e
7- export JAVA_HOME=$''' + javaVersion + '''
7+ export JAVA_HOME=$JAVA17_HOME_DIR
88 export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
9- export PATH=$GRADLE_USER_HOME:$ JAVA_HOME/bin:$PATH
9+ export PATH=$JAVA_HOME/bin:$PATH
1010 cd marklogic-spark-connector
11- echo "Waiting for MarkLogic server to initialize."
12- sleep 60s
13- ./gradlew clean
11+ ./gradlew -i mlWaitTillReady
1412 ./gradlew mlTestConnections
1513 ./gradlew -i mlDeploy
1614 echo "Loading data a second time to try to avoid Optic bug with duplicate rows being returned."
1715 ./gradlew -i mlLoadData
16+ '''
17+
18+ sh label :' test' , script : ''' #!/bin/bash
19+ set -e
20+ export JAVA_HOME=$JAVA17_HOME_DIR
21+ export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
22+ export PATH=$JAVA_HOME/bin:$PATH
23+ cd marklogic-spark-connector
1824 ./gradlew clean test jacocoTestReport || true
1925 '''
2026 junit ' **/build/**/*.xml'
2127}
2228
23- def runSonarScan (String javaVersion ){
24- sh label :' test ' , script : ''' #!/bin/bash
25- export JAVA_HOME=$''' + javaVersion + '''
29+ def runSonarScan (){
30+ sh label :' run-sonar ' , script : ''' #!/bin/bash
31+ export JAVA_HOME=$JAVA17_HOME_DIR
2632 export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
2733 export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
2834 cd marklogic-spark-connector
2935 ./gradlew sonar -Dsonar.projectKey='marklogic_marklogic-spark-connector_AY1bXn6J_50_odbCDKMX' -Dsonar.projectName='ML-DevExp-marklogic-spark-connector' || true
3036 '''
3137}
3238
39+ def tearDownDocker () {
40+ updateWorkspacePermissions()
41+ sh label :' mlcleanup' , script : ''' #!/bin/bash
42+ cd marklogic-spark-connector
43+ docker-compose down -v || true
44+ '''
45+ cleanupDocker()
46+ }
47+
3348pipeline{
3449 agent none
50+
3551 triggers{
3652 parameterizedCron(env. BRANCH_NAME == " develop" ? " 00 02 * * * % regressions=true" : " " )
3753 }
3854 parameters{
3955 booleanParam(name : ' regressions' , defaultValue : false , description : ' indicator if build is for regressions' )
4056 }
57+
4158 options {
4259 checkoutToSubdirectory ' marklogic-spark-connector'
4360 buildDiscarder logRotator(artifactDaysToKeepStr : ' 7' , artifactNumToKeepStr : ' ' , daysToKeepStr : ' 30' , numToKeepStr : ' ' )
4461 }
62+
4563 environment{
4664 JAVA17_HOME_DIR = " /home/builder/java/jdk-17.0.2"
4765 GRADLE_DIR = " .gradle"
4866 DMC_USER = credentials(' MLBUILD_USER' )
4967 DMC_PASSWORD = credentials(' MLBUILD_PASSWORD' )
5068 }
69+
5170 stages{
71+
5272 stage(' tests' ){
5373 environment{
5474 scannerHome = tool ' SONAR_Progress'
@@ -64,22 +84,18 @@ pipeline{
6484 cd marklogic-spark-connector
6585 MARKLOGIC_LOGS_VOLUME=/tmp docker-compose up -d --build
6686 '''
67- runtests(' JAVA17_HOME_DIR ' )
87+ runtests()
6888 withSonarQubeEnv(' SONAR_Progress' ) {
69- runSonarScan(' JAVA17_HOME_DIR ' )
89+ runSonarScan()
7090 }
7191 }
7292 post{
7393 always{
74- updateWorkspacePermissions()
75- sh label :' mlcleanup' , script : ''' #!/bin/bash
76- cd marklogic-spark-connector
77- docker-compose down -v || true
78- '''
79- cleanupDocker()
94+ tearDownDocker()
8095 }
8196 }
8297 }
98+
8399 stage(' publish' ){
84100 agent {label ' devExpLinuxPool' }
85101 when {
@@ -89,14 +105,15 @@ pipeline{
89105 sh label :' publish' , script : ''' #!/bin/bash
90106 export JAVA_HOME=$JAVA17_HOME_DIR
91107 export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
92- export PATH=$GRADLE_USER_HOME:$ JAVA_HOME/bin:$PATH
108+ export PATH=$JAVA_HOME/bin:$PATH
93109 cd marklogic-spark-connector
94110 ./gradlew clean
95111 cp ~/.gradle/gradle.properties $GRADLE_USER_HOME;
96112 ./gradlew publish
97113 '''
98114 }
99115 }
116+
100117 stage(' regressions' ){
101118 agent {label ' devExpLinuxPool' }
102119 when{
@@ -116,19 +133,13 @@ pipeline{
116133 docker-compose down -v || true
117134 MARKLOGIC_LOGS_VOLUME=/tmp docker-compose up -d --build
118135 '''
119- runtests(' JAVA17_HOME_DIR ' )
136+ runtests()
120137 }
121138 post{
122139 always{
123- updateWorkspacePermissions()
124- sh label :' mlcleanup' , script : ''' #!/bin/bash
125- cd marklogic-spark-connector
126- docker-compose down -v || true
127- '''
128- cleanupDocker()
140+ tearDownDocker()
129141 }
130142 }
131-
132143 }
133144 }
134145}
0 commit comments