pipeline { agent { label 'djb-vm' } triggers { pollSCM('H/10 * * * *') } options { timestamps() disableConcurrentBuilds() buildDiscarder(logRotator(numToKeepStr: '20', artifactNumToKeepStr: '20')) } environment { JAVA_HOME = '/apps/opts/jdk8' JAVA_HOME_TOMCAT = '/apps/opts/jdk17' GRADLE_HOME = '/apps/opts/gradle-8.7' GRADLE_USER_HOME = '/apps/opts/gradle-home' NODE_HOME = '/apps/opts/node-v24' PATH = "/apps/opts/jdk8/bin:/apps/opts/gradle-8.7/bin:/apps/opts/node-v24/bin:/apps/opts/bin:${env.PATH}" GIT_SSH_COMMAND = 'ssh -o StrictHostKeyChecking=accept-new' } stages { stage('Checkout') { steps { checkout scm } } stage('Checkout dependencies') { steps { sh ''' set -eu cd "$WORKSPACE/.." if [ ! -d elink-portal-common/.git ]; then git clone --depth=1 --branch master \ ssh://git@172.30.1.50:2222/djb-eapim/elink-portal-common.git \ elink-portal-common else git -C elink-portal-common fetch --depth=1 origin master git -C elink-portal-common reset --hard origin/master git -C elink-portal-common clean -fdx fi mkdir -p eapim-online if [ ! -d eapim-online/elink-online-core-jpa/.git ]; then git clone --depth=1 --branch master \ ssh://git@172.30.1.50:2222/djb-eapim/elink-online-core-jpa.git \ eapim-online/elink-online-core-jpa else git -C eapim-online/elink-online-core-jpa fetch --depth=1 origin master git -C eapim-online/elink-online-core-jpa reset --hard origin/master git -C eapim-online/elink-online-core-jpa clean -fdx fi ''' } } stage('Verify toolchain') { steps { sh ''' set -eu java -version gradle --version node --version || true npm --version || true ''' } } stage('Test') { steps { sh 'gradle clean test --no-daemon' } post { always { junit allowEmptyResults: true, testResults: 'build/test-results/test/*.xml' archiveArtifacts allowEmptyArchive: true, artifacts: 'build/reports/tests/test/**,build/test-results/test/**' } } } stage('Build WAR') { steps { sh 'gradle build -x test --no-daemon' } post { success { sh ''' set -eu cd build/libs for f in eapim-portal.war eapim-portal-boot.war; do sha1sum "$f" > "$f.sha1" sha256sum "$f" > "$f.sha256" md5sum "$f" > "$f.md5" done ''' archiveArtifacts artifacts: 'build/libs/eapim-portal.war,build/libs/eapim-portal-boot.war,build/libs/eapim-portal.war.sha1,build/libs/eapim-portal.war.sha256,build/libs/eapim-portal.war.md5,build/libs/eapim-portal-boot.war.sha1,build/libs/eapim-portal-boot.war.sha256,build/libs/eapim-portal-boot.war.md5', fingerprint: true } } } } }