Files
Rinjae 5db83e485d - damo-manager CLI 추가: DamoCli.java / Main-Class 선언
- Jenkinsfile 도입: 자동 빌드/테스트 워크플로 작성
- bypass 모드 도입: 시스템 프로퍼티로 암복호화 설정 분기
2026-06-22 15:18:07 +09:00

89 lines
2.3 KiB
Groovy

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
}
}
}
}
}