11@Library (' shared-libraries' ) _
22
3- def runTests (String type ,String version ){
4- copyRPM type,version
5- setUpML ' $WORKSPACE/xdmp/src/Mark*.rpm'
3+ def runTests (){
64 sh '''
75 export JAVA_HOME=$JAVA_HOME_DIR
86 export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
@@ -11,8 +9,11 @@ def runTests(String type,String version){
119 node --version
1210 npm --version
1311 npm ci
12+
1413 cd test-app
15- ./gradlew -i mlDeploy -g $PWD
14+ ./gradlew -i mlTestConnections
15+ ./gradlew -i mlDeploy
16+
1617 cd ..
1718 rm -rf $WORKSPACE/*.xml || true
1819 ./node_modules/.bin/mocha --timeout 10000 -R xunit test-basic/ --reporter mocha-junit-reporter --reporter-options mochaFile=$WORKSPACE/test-basic-reports.xml -g \' logging|archivePath\' --invert || true
@@ -21,6 +22,29 @@ def runTests(String type,String version){
2122 '''
2223
2324}
25+
26+ def runDockerCompose (String markLogicDockerImage ) {
27+ cleanupDocker()
28+ sh label :' mlsetup' , script : ''' #!/bin/bash
29+ echo "Removing any running MarkLogic server and clean up MarkLogic data directory"
30+ sudo /usr/local/sbin/mladmin remove
31+ docker-compose down -v || true
32+ sudo /usr/local/sbin/mladmin cleandata
33+ cd node-client-api/test-app
34+ MARKLOGIC_LOGS_VOLUME=/tmp MARKLOGIC_IMAGE=''' + markLogicDockerImage+ ''' docker-compose up -d --build
35+ sleep 60s;
36+ '''
37+ }
38+
39+ def teardownAfterTests () {
40+ updateWorkspacePermissions()
41+ sh label :' mlcleanup' , script : ''' #!/bin/bash
42+ cd node-client-api/test-app
43+ docker-compose down -v || true
44+ '''
45+ cleanupDocker()
46+ }
47+
2448def runAuditReport (){
2549 sh '''
2650 export PATH=${NODE_HOME_DIR}/bin:$PATH
@@ -31,9 +55,7 @@ def runAuditReport(){
3155 '''
3256}
3357
34- def runE2ETests (String type ,String version ){
35- copyRPM type,version
36- setUpML ' $WORKSPACE/xdmp/src/Mark*.rpm'
58+ def runE2ETests (){
3759 sh '''
3860 export PATH=${NODE_HOME_DIR}/bin:$PATH
3961 cd node-client-api
@@ -69,20 +91,24 @@ def runE2ETests(String type,String version){
6991 ../node_modules/.bin/mocha -R xunit --timeout 60000 -R xunit "nodejs-ds-dynamic.js" --reporter mocha-junit-reporter --reporter-options mochaFile=$WORKSPACE/ds-dynamic-results.xml || true
7092 '''
7193 junit ' **/*.xml'
72-
7394}
95+
7496pipeline{
7597 agent none
98+
7699 triggers{
77100 parameterizedCron(env. BRANCH_NAME == " develop" ? " 00 02 * * * % regressions=true" : " " )
78101 }
102+
79103 parameters{
80104 booleanParam(name : ' regressions' , defaultValue : false , description : ' indicator if build is for regressions' )
81105 }
106+
82107 options {
83108 checkoutToSubdirectory ' node-client-api'
84109 buildDiscarder logRotator(artifactDaysToKeepStr : ' 7' , artifactNumToKeepStr : ' ' , daysToKeepStr : ' 7' , numToKeepStr : ' 10' )
85110 }
111+
86112 environment{
87113 NODE_HOME_DIR = " /users/ml/builder/nodeJs/node-v22.20.0-linux-x64"
88114 DMC_USER = credentials(' MLBUILD_USER' )
@@ -95,8 +121,14 @@ pipeline{
95121 agent {label ' nodeclientpool' }
96122 steps{
97123 runAuditReport()
98- runTests(' Release' ,' 11.3.1' )
99- runE2ETests(' Release' ,' 11.3.1' )
124+ runDockerCompose(' progressofficial/marklogic-db:latest-11.3' )
125+ runTests()
126+ runE2ETests()
127+ }
128+ post{
129+ always{
130+ teardownAfterTests()
131+ }
100132 }
101133 }
102134 stage(' regressions' ){
@@ -110,8 +142,14 @@ pipeline{
110142 }
111143 agent {label ' nodeclientpool' }
112144 steps{
113- runTests(' Latest' ,' 11' )
114- runE2ETests(' Latest' ,' 11' )
145+ runDockerCompose(' ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-11' )
146+ runTests()
147+ runE2ETests()
148+ }
149+ post{
150+ always{
151+ teardownAfterTests()
152+ }
115153 }
116154 }
117155 stage(' runtests-12-nightly' ){
@@ -123,8 +161,14 @@ pipeline{
123161 }
124162 agent {label ' nodeclientpool' }
125163 steps{
126- runTests(' Latest' ,' 12.0' )
127- runE2ETests(' Latest' ,' 12.0' )
164+ runDockerCompose(' ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-12' )
165+ runTests()
166+ runE2ETests()
167+ }
168+ post{
169+ always{
170+ teardownAfterTests()
171+ }
128172 }
129173 }
130174 stage(' runtests-10-nightly' ){
@@ -136,21 +180,14 @@ pipeline{
136180 }
137181 agent {label ' nodeclientpool' }
138182 steps{
139- runTests(' Latest' ,' 10.0' )
140- runE2ETests(' Latest' ,' 10.0' )
183+ runDockerCompose(' ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-10' )
184+ runTests()
185+ runE2ETests()
141186 }
142- }
143- stage(' runtests-10.0-10.2' ){
144- when{
145- allOf{
146- branch ' develop'
147- expression {return params. regressions}
148- }
187+ post{
188+ always{
189+ teardownAfterTests()
149190 }
150- agent {label ' nodeclientpool' }
151- steps{
152- runTests(' Release' ,' 10.0-10.2' )
153- runE2ETests(' Release' ,' 10.0-10.2' )
154191 }
155192 }
156193 }
0 commit comments