5db83e485d
- Jenkinsfile 도입: 자동 빌드/테스트 워크플로 작성 - bypass 모드 도입: 시스템 프로퍼티로 암복호화 설정 분기
89 lines
2.3 KiB
Groovy
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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|