ci: add Jenkinsfile for CI/CD pipeline
This commit is contained in:
parent
50abca3efa
commit
3788b0f066
46
Jenkinsfile
vendored
Normal file
46
Jenkinsfile
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
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" }
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user