Skip to content

Commit 2bc330c

Browse files
committed
MLE-24531 Converting Jenkinsfile to use Docker
Also bumped up tar-fs to resolve a vulnerability. Going to format Jenkinsfile in a subsequent PR.
1 parent 98e4353 commit 2bc330c

File tree

5 files changed

+72
-61
lines changed

5 files changed

+72
-61
lines changed

Jenkinsfile

Lines changed: 64 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
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+
2448
def 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+
7496
pipeline{
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
}

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
"serialize-javascript": "6.0.2",
100100
"supports-color": "7.2.0",
101101
"strip-ansi": "6.0.0",
102-
"tar-fs": "2.1.3",
102+
"tar-fs": "2.1.4",
103103
"tmp": "0.2.4",
104104
"wrap-ansi": "6.2.0"
105105
}

test-app/docker-compose-nightlies.yaml

Lines changed: 0 additions & 27 deletions
This file was deleted.

test-app/docker-compose.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: node-client
1+
name: docker-tests-node-client
22

33
services:
44

@@ -13,5 +13,6 @@ services:
1313
volumes:
1414
- ${MARKLOGIC_LOGS_VOLUME}:/var/opt/MarkLogic/Logs
1515
ports:
16-
- 8000-8002:8000-8002
17-
- 8015-8017:8015-8017
16+
- 8000-8017:8000-8017
17+
- 8024-8029:8024-8029
18+
- 8079:8079

0 commit comments

Comments
 (0)