Skip to content

Commit 6940c20

Browse files
committed
Upgrade to the latest MarkLogic 12 Docker image.
Switch Jenkinsfile to use the Docker image instead of the RPM.
1 parent 43b9049 commit 6940c20

File tree

4 files changed

+65
-39
lines changed

4 files changed

+65
-39
lines changed

.env

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
MARKLOGIC_IMAGE=ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-12
1+
MARKLOGIC_IMAGE=ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi-rootless:12.0.0-ubi-rootless-2.2.2
2+
MARKLOGIC_LOGS_VOLUME=./docker/marklogic/logs

Jenkinsfile

Lines changed: 43 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,61 @@
11
@Library('shared-libraries') _
2+
3+
def runtests(String marklogicVersion) {
4+
cleanupDocker()
5+
sh label:'mlsetup', script: '''#!/bin/bash
6+
echo "Removing any running MarkLogic server and clean up MarkLogic data directory"
7+
sudo /usr/local/sbin/mladmin remove
8+
docker-compose down -v || true
9+
sudo /usr/local/sbin/mladmin cleandata
10+
cd kafka-connector
11+
MARKLOGIC_LOGS_VOLUME=/tmp MARKLOGIC_IMAGE='''+marklogicVersion+''' docker-compose up -d --build
12+
sleep 60s;
13+
'''
14+
sh label:'deploy project', script: '''#!/bin/bash
15+
export JAVA_HOME=$JAVA17_HOME_DIR
16+
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
17+
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
18+
cd kafka-connector
19+
./gradlew hubInit
20+
./gradlew -i mlDeploy
21+
'''
22+
sh label:'test', script: '''#!/bin/bash
23+
export JAVA_HOME=$JAVA17_HOME_DIR
24+
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
25+
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
26+
cd kafka-connector
27+
./gradlew test || true
28+
'''
29+
junit '**/build/**/*.xml'
30+
}
31+
232
pipeline{
333
agent {label 'devExpLinuxPool'}
434
options {
535
checkoutToSubdirectory 'kafka-connector'
636
buildDiscarder logRotator(artifactDaysToKeepStr: '7', artifactNumToKeepStr: '', daysToKeepStr: '30', numToKeepStr: '')
737
}
838
environment{
9-
JAVA_HOME_DIR="/home/builder/java/jdk-17.0.2"
39+
JAVA17_HOME_DIR="/home/builder/java/jdk-17.0.2"
1040
GRADLE_DIR =".gradle"
1141
DMC_USER = credentials('MLBUILD_USER')
1242
DMC_PASSWORD = credentials('MLBUILD_PASSWORD')
43+
MARKLOGIC12_IMAGE_TAG = "ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi-rootless:12.0.0-ubi-rootless-2.2.2"
1344
}
1445
stages{
1546
stage('tests'){
1647
steps{
17-
copyRPM 'Release','11.3.0'
18-
setUpML '$WORKSPACE/xdmp/src/Mark*.rpm'
19-
sh label:'setup', script: '''#!/bin/bash
20-
cd kafka-connector/test-app
21-
echo mlPassword=admin >> gradle-local.properties
22-
'''
23-
sh label:'deploy project', script: '''#!/bin/bash
24-
export JAVA_HOME=$JAVA_HOME_DIR
25-
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
26-
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
27-
cd kafka-connector
28-
./gradlew hubInit
29-
./gradlew mlDeploy -PmlPassword=admin
30-
'''
31-
sh label:'test', script: '''#!/bin/bash
32-
export JAVA_HOME=$JAVA_HOME_DIR
33-
export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR
34-
export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH
35-
cd kafka-connector
36-
./gradlew test || true
37-
'''
38-
junit '**/build/**/*.xml'
48+
runtests($MARKLOGIC12_IMAGE_TAG)
49+
}
50+
post{
51+
always{
52+
updateWorkspacePermissions()
53+
sh label:'mlcleanup', script: '''#!/bin/bash
54+
cd kafka-connector
55+
docker-compose down -v || true
56+
'''
57+
cleanupDocker()
58+
}
3959
}
4060
}
4161
}

build.gradle

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -115,23 +115,28 @@ tasks.withType(JavaCompile) {
115115

116116
test {
117117
useJUnitPlatform()
118-
}
119-
120-
// Configures jacoco test coverage to be included when "test" is run
121-
test {
122118
finalizedBy jacocoTestReport
123-
}
124-
jacocoTestReport {
125-
dependsOn test
126-
}
127-
// Enabling the XML report allows for sonar to grab coverage data from jacoco
128-
jacocoTestReport {
129-
reports {
130-
// This isn't working with Gradle 8. Will replace this soon with the sonar instance in docker-compose.
131-
// xml.enabled true
119+
jacocoTestReport {
120+
dependsOn test
121+
reports {
122+
xml.required = true
123+
}
132124
}
133-
}
134125

126+
// Turning off coverage verification, as we haven't figured out how to configure Sonar correctly to pick up the jacoco
127+
// report from the "code-coverage-report" subproject and accurately capture coverage.
128+
// See https://docs.gradle.org/current/userguide/jacoco_plugin.html#sec:jacoco_report_violation_rules
129+
jacocoTestCoverageVerification {
130+
violationRules {
131+
rule {
132+
limit {
133+
minimum = 0.0
134+
}
135+
}
136+
}
137+
}
138+
139+
}
135140

136141
shadowJar {
137142
// Exclude DHF source files

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ services:
201201
- MARKLOGIC_ADMIN_USERNAME=admin
202202
- MARKLOGIC_ADMIN_PASSWORD=admin
203203
volumes:
204-
- ./docker/marklogic/logs:/var/opt/MarkLogic/Logs
204+
- ${MARKLOGIC_LOGS_VOLUME}:/var/opt/MarkLogic/Logs
205205
ports:
206206
- "8000-8002:8000-8002"
207207
- "8010-8013:8010-8013"

0 commit comments

Comments
 (0)