diff --git a/.env b/.env index 780f0d0..e49552f 100644 --- a/.env +++ b/.env @@ -1 +1,2 @@ -MARKLOGIC_IMAGE=ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-12 +MARKLOGIC_IMAGE=ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi-rootless:12.1.nightly-ubi-rootless +MARKLOGIC_LOGS_VOLUME=./docker/marklogic/logs diff --git a/Jenkinsfile b/Jenkinsfile index 047d8f3..d907948 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,4 +1,34 @@ @Library('shared-libraries') _ + +def runtests(String marklogicVersion) { + cleanupDocker() + sh label:'mlsetup', script: '''#!/bin/bash + echo "Removing any running MarkLogic server and clean up MarkLogic data directory" + sudo /usr/local/sbin/mladmin remove + docker-compose down -v || true + sudo /usr/local/sbin/mladmin cleandata + cd kafka-connector + MARKLOGIC_LOGS_VOLUME=/tmp MARKLOGIC_IMAGE='''+marklogicVersion+''' docker-compose up -d --build + sleep 120s; + ''' + sh label:'deploy project', script: '''#!/bin/bash + export JAVA_HOME=$JAVA17_HOME_DIR + export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR + export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH + cd kafka-connector + ./gradlew hubInit + ./gradlew -i mlDeploy + ''' + sh label:'test', script: '''#!/bin/bash + export JAVA_HOME=$JAVA17_HOME_DIR + export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR + export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH + cd kafka-connector + ./gradlew test || true + ''' + junit '**/build/**/*.xml' +} + pipeline{ agent {label 'devExpLinuxPool'} options { @@ -6,36 +36,38 @@ pipeline{ buildDiscarder logRotator(artifactDaysToKeepStr: '7', artifactNumToKeepStr: '', daysToKeepStr: '30', numToKeepStr: '') } environment{ - JAVA_HOME_DIR="/home/builder/java/jdk-17.0.2" + JAVA17_HOME_DIR="/home/builder/java/jdk-17.0.2" GRADLE_DIR =".gradle" - DMC_USER = credentials('MLBUILD_USER') - DMC_PASSWORD = credentials('MLBUILD_PASSWORD') } stages{ - stage('tests'){ + stage('test-ML12'){ + steps{ + runtests("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi-rootless:12.1.nightly-ubi-rootless") + } + post{ + always{ + updateWorkspacePermissions() + sh label:'mlcleanup', script: '''#!/bin/bash + cd kafka-connector + docker-compose down -v || true + ''' + cleanupDocker() + } + } + } + stage('test-ML11'){ steps{ - copyRPM 'Release','11.3.0' - setUpML '$WORKSPACE/xdmp/src/Mark*.rpm' - sh label:'setup', script: '''#!/bin/bash - cd kafka-connector/test-app - echo mlPassword=admin >> gradle-local.properties - ''' - sh label:'deploy project', script: '''#!/bin/bash - export JAVA_HOME=$JAVA_HOME_DIR - export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR - export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH - cd kafka-connector - ./gradlew hubInit - ./gradlew mlDeploy -PmlPassword=admin - ''' - sh label:'test', script: '''#!/bin/bash - export JAVA_HOME=$JAVA_HOME_DIR - export GRADLE_USER_HOME=$WORKSPACE/$GRADLE_DIR - export PATH=$GRADLE_USER_HOME:$JAVA_HOME/bin:$PATH - cd kafka-connector - ./gradlew test || true - ''' - junit '**/build/**/*.xml' + runtests("ml-docker-db-dev-tierpoint.bed-artifactory.bedford.progress.com/marklogic/marklogic-server-ubi:latest-11") + } + post{ + always{ + updateWorkspacePermissions() + sh label:'mlcleanup', script: '''#!/bin/bash + cd kafka-connector + docker-compose down -v || true + ''' + cleanupDocker() + } } } } diff --git a/build.gradle b/build.gradle index 3b21275..be6575b 100644 --- a/build.gradle +++ b/build.gradle @@ -115,23 +115,25 @@ tasks.withType(JavaCompile) { test { useJUnitPlatform() -} - -// Configures jacoco test coverage to be included when "test" is run -test { finalizedBy jacocoTestReport -} -jacocoTestReport { - dependsOn test -} -// Enabling the XML report allows for sonar to grab coverage data from jacoco -jacocoTestReport { - reports { - // This isn't working with Gradle 8. Will replace this soon with the sonar instance in docker-compose. - // xml.enabled true + jacocoTestReport { + dependsOn test + reports { + xml.required = true + } } -} + jacocoTestCoverageVerification { + violationRules { + rule { + limit { + minimum = 0.0 + } + } + } + } + +} shadowJar { // Exclude DHF source files diff --git a/docker-compose.yml b/docker-compose.yml index 1abc678..1fb078a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -201,7 +201,7 @@ services: - MARKLOGIC_ADMIN_USERNAME=admin - MARKLOGIC_ADMIN_PASSWORD=admin volumes: - - ./docker/marklogic/logs:/var/opt/MarkLogic/Logs + - ${MARKLOGIC_LOGS_VOLUME}:/var/opt/MarkLogic/Logs ports: - "8000-8002:8000-8002" - "8010-8013:8010-8013"