diff --git a/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/objectbundle/DefaultObjectBundleService.java b/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/objectbundle/DefaultObjectBundleService.java index 8f116baa5150..27804368dfc2 100644 --- a/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/objectbundle/DefaultObjectBundleService.java +++ b/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/objectbundle/DefaultObjectBundleService.java @@ -220,7 +220,7 @@ private TypeReport handleCreates( Session session preheatService.connectReferences( object, bundle.getPreheat(), bundle.getPreheatIdentifier() ); - session.save(object); + session.save( object ); bundle.getPreheat().replace( bundle.getPreheatIdentifier(), object ); @@ -291,7 +291,7 @@ private TypeReport handleUpdates( Session session .setSkipTranslation( bundle.isSkipTranslation() ) ); } - session.update(persistedObject); + session.update( persistedObject ); bundle.getPreheat().replace( bundle.getPreheatIdentifier(), persistedObject ); diff --git a/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/objectbundle/ObjectBundle.java b/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/objectbundle/ObjectBundle.java index 04441cacd403..b0742e5cf5f0 100644 --- a/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/objectbundle/ObjectBundle.java +++ b/dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/objectbundle/ObjectBundle.java @@ -67,8 +67,8 @@ public class ObjectBundle implements ObjectIndexProvider private final User user; /** - * Should import be imported or just validated. - */ + * Should import be imported or just validated. + */ private final ObjectBundleMode objectBundleMode; /** @@ -195,8 +195,6 @@ public User getUser() return user; } - - public String getUsername() { return user != null ? user.getUsername() : "system-process"; diff --git a/jenkinsfiles/eos b/jenkinsfiles/eos index dc93934357de..10f1b77e8e7a 100644 --- a/jenkinsfiles/eos +++ b/jenkinsfiles/eos @@ -13,11 +13,18 @@ pipeline { options { buildDiscarder(logRotator(numToKeepStr: '5')) - timeout(time: 30) + timeout(time: 60) } environment { MAVEN_OPTS = '-Xms1024m -Xmx4096m -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3 -Dmaven.wagon.httpconnectionManager.ttlSeconds=125' + DHIS2_VERSION = readMavenPom(file: 'dhis-2/pom.xml').getVersion() + DOCKER_IMAGE_NAME = "${DOCKER_HUB_OWNER}/core" + DOCKER_IMAGE_TAG = "${env.GIT_BRANCH}-eos" + DOCKER_IMAGE_NAME_FULL = "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}" + IMAGE_REPOSITORY = "${DOCKER_IMAGE_NAME}" + // THIS MUST be kept in sync with the jib.from.image in the dhis-web-portal pom.xml + BASE_IMAGE = "tomcat:9.0-jre11" } stages { @@ -33,6 +40,42 @@ pipeline { } } + stage ('Build and publish Docker image') { + steps { + withDockerRegistry([credentialsId: "docker-hub-credentials", url: ""]) { + withMaven(options: [artifactsPublisher(disabled: true)]) { + // EOS maintenance build: publish a single rolling "-eos" tag. + // -d skips the immutable timestamp and rolling M/M.m tags (reserved for releases). + sh './dhis-2/build-docker-image.sh -t "${DOCKER_IMAGE_TAG}" -d' + } + } + } + } + + stage ('Smoke test') { + steps { + // Non-blocking: a stale e2e suite must not block publishing the EOS image. + catchError(buildResult: 'SUCCESS', stageResult: 'UNSTABLE', message: 'EOS smoke test failed') { + dir('dhis-2/dhis-e2e-test') { + sh "docker pull ${DOCKER_IMAGE_NAME_FULL}" + sh "DHIS2_IMAGE=${DOCKER_IMAGE_NAME_FULL} docker-compose --file docker-compose.yml --file docker-compose.e2e.yml up --remove-orphans --exit-code-from test" + } + } + } + + post { + always { + script { + dir('dhis-2/dhis-e2e-test') { + archiveArtifacts artifacts: 'coverage.csv', allowEmptyArchive: true + sh 'docker-compose logs web > web-logs.txt || true' + archiveArtifacts artifacts: 'web-logs.txt', allowEmptyArchive: true + } + } + } + } + } + stage ('Sync WAR') { steps { echo 'Syncing WAR ...'