zioinfo-mail/workspace/guardia-messenger/Jenkinsfile
DESKTOP-TKLFCPR\ython 28d3ba4836 refactor(cleanup): commit folder reorganization - scripts/, _archive/, docs/ restructure
- Move backend/frontend/messenger/ old paths to _archive/
- Reorganize scripts into scripts/deploy, check, push, setup, misc
- Move docs (pptx, docx) to docs/
- Add .claude agents and skills for fullstack/folder-cleanup harness
- workspace/ projects remain intact

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 19:43:09 +09:00

47 lines
1.8 KiB
Groovy

pipeline {
agent any
environment {
NOTIFY = "${ITSM_BASE_URL}/api/messenger/webhook"
}
options {
buildDiscarder(logRotator(numToKeepStr: '5'))
timeout(time: 10, unit: 'MINUTES')
timestamps()
}
stages {
stage('Checkout') { steps { checkout scm } }
stage('Validate') {
steps {
sh 'node --version || true'
sh "grep -E '\"expo\"' package.json | head -1 || true"
}
}
stage('Install') {
steps { sh 'npm ci --legacy-peer-deps 2>/dev/null || npm install --legacy-peer-deps' }
}
stage('Type Check') {
when { expression { fileExists('tsconfig.json') } }
steps { sh 'npx tsc --noEmit 2>/dev/null || true' }
}
stage('EAS Build Trigger') {
when {
allOf {
branch 'main'
expression { return env.EXPO_TOKEN?.trim() }
}
}
steps {
sh '''
npm install -g @expo/eas-cli 2>/dev/null || true
eas build --platform android --non-interactive --no-wait \
--profile production 2>/dev/null || echo "EAS 빌드 큐 등록됨"
'''
}
}
}
post {
success { sh "curl -sf -X POST ${NOTIFY} -H 'Content-Type:application/json' -d '{\"event\":\"build_result\",\"room\":\"ops\",\"success\":true,\"result_summary\":\"✅ guardia-messenger 검증 완료 #${BUILD_NUMBER}\"}' 2>/dev/null || true" }
failure { sh "curl -sf -X POST ${NOTIFY} -H 'Content-Type:application/json' -d '{\"event\":\"build_result\",\"room\":\"ops\",\"success\":false,\"result_summary\":\"❌ guardia-messenger 빌드 실패 #${BUILD_NUMBER}\"}' 2>/dev/null || true" }
}
}