pipeline { agent { label 'djb-vm' } triggers { pollSCM('H/10 * * * *') } options { timestamps() disableConcurrentBuilds() buildDiscarder(logRotator(numToKeepStr: '20', artifactNumToKeepStr: '20')) } environment { JAVA_HOME = '/apps/opts/jdk8' GRADLE_HOME = '/apps/opts/gradle-8.7' GRADLE_USER_HOME = '/apps/opts/gradle-home' PATH = "/apps/opts/jdk8/bin:/apps/opts/gradle-8.7/bin:/apps/opts/bin:${env.PATH}" GIT_SSH_COMMAND = 'ssh -o StrictHostKeyChecking=accept-new' } stages { stage('Checkout') { steps { checkout scm } } stage('Verify toolchain') { steps { sh ''' set -eu java -version gradle --version ''' } } stage('Build JAR') { steps { sh 'gradle clean build --no-daemon' } } stage('Smoke test') { steps { sh ''' set -eu echo "---- default (bypass) mode ----" java -cp build/libs/damo-manager.jar com.eactive.ext.djb.DamoManager echo "---- fake mode (-Ddamo-manager.enabled=true) ----" java -Ddamo-manager.enabled=true -cp build/libs/damo-manager.jar com.eactive.ext.djb.DamoManager echo "---- require-real must fail without scpdb ----" if java -Ddamo-manager.require-real=true -cp build/libs/damo-manager.jar com.eactive.ext.djb.DamoManager 2>/dev/null; then echo "ERROR: require-real should have failed without scpdb"; exit 1 else echo "OK: require-real failed fast as expected" fi echo "---- CLI param mode ----" java -jar build/libs/damo-manager.jar info ''' } } stage('Package & checksum') { steps { sh ''' set -eu rm -rf build/dist mkdir -p build/dist cp build/libs/damo-manager.jar build/dist/ cp README.md build/dist/ cd build/dist sha1sum damo-manager.jar README.md > SHA1SUMS sha256sum damo-manager.jar README.md > SHA256SUMS ls -la echo "---- SHA256SUMS ----" cat SHA256SUMS ''' } post { success { archiveArtifacts artifacts: 'build/dist/damo-manager.jar,build/dist/README.md,build/dist/SHA1SUMS,build/dist/SHA256SUMS', fingerprint: true } } } } }