feat: update Jenkinsfile for improved CI/CD process
- Renamed stages for clarity, changing 'Checkout' to 'Git Clone from Gitea' and 'Build Image' to 'Build Docker Image'. - Updated Git checkout step to use specific branch and credentials for Gitea. - Enhanced Docker login process with `withCredentials` for better security. - Added a new stage for deploying to production LXC, including SSH commands for directory creation and Docker management. - Updated success and failure messages to include Korean language support for better localization.
This commit is contained in:
42
Jenkinsfile
vendored
42
Jenkinsfile
vendored
@@ -7,17 +7,18 @@ pipeline {
|
|||||||
IMAGE_TAG = "${env.BUILD_NUMBER}"
|
IMAGE_TAG = "${env.BUILD_NUMBER}"
|
||||||
FULL_IMAGE = "${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
|
FULL_IMAGE = "${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
|
||||||
LATEST_IMAGE = "${REGISTRY}/${IMAGE_NAME}:latest"
|
LATEST_IMAGE = "${REGISTRY}/${IMAGE_NAME}:latest"
|
||||||
GITEA_CREDS = credentials('gitea-registry-credentials')
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
stage('Checkout') {
|
stage('Git Clone from Gitea') {
|
||||||
steps {
|
steps {
|
||||||
checkout scm
|
git branch: 'main',
|
||||||
|
credentialsId: 'gitea-cred',
|
||||||
|
url: 'http://10.1.10.28:3000/gihyeon/cointrader.git'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Build Image') {
|
stage('Build Docker Image') {
|
||||||
steps {
|
steps {
|
||||||
sh "docker build -t ${FULL_IMAGE} -t ${LATEST_IMAGE} ."
|
sh "docker build -t ${FULL_IMAGE} -t ${LATEST_IMAGE} ."
|
||||||
}
|
}
|
||||||
@@ -25,30 +26,41 @@ pipeline {
|
|||||||
|
|
||||||
stage('Push to Gitea Registry') {
|
stage('Push to Gitea Registry') {
|
||||||
steps {
|
steps {
|
||||||
sh """
|
withCredentials([usernamePassword(credentialsId: 'gitea-registry-cred', passwordVariable: 'GITEA_TOKEN', usernameVariable: 'GITEA_USER')]) {
|
||||||
echo ${GITEA_CREDS_PSW} | docker login ${REGISTRY} -u ${GITEA_CREDS_USR} --password-stdin
|
sh "echo \$GITEA_TOKEN | docker login ${REGISTRY} -u \$GITEA_USER --password-stdin"
|
||||||
docker push ${FULL_IMAGE}
|
sh "docker push ${FULL_IMAGE}"
|
||||||
docker push ${LATEST_IMAGE}
|
sh "docker push ${LATEST_IMAGE}"
|
||||||
"""
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Deploy to Prod LXC') {
|
||||||
|
steps {
|
||||||
|
sh 'ssh root@10.1.10.24 "mkdir -p /root/cointrader"'
|
||||||
|
sh 'scp docker-compose.yml root@10.1.10.24:/root/cointrader/'
|
||||||
|
sh '''
|
||||||
|
ssh root@10.1.10.24 "cd /root/cointrader/ && \
|
||||||
|
docker compose down && \
|
||||||
|
docker compose pull && \
|
||||||
|
docker compose up -d"
|
||||||
|
'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Cleanup') {
|
stage('Cleanup') {
|
||||||
steps {
|
steps {
|
||||||
sh """
|
sh "docker rmi ${FULL_IMAGE} || true"
|
||||||
docker rmi ${FULL_IMAGE} || true
|
sh "docker rmi ${LATEST_IMAGE} || true"
|
||||||
docker rmi ${LATEST_IMAGE} || true
|
|
||||||
"""
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
post {
|
post {
|
||||||
success {
|
success {
|
||||||
echo "Build #${env.BUILD_NUMBER} pushed: ${FULL_IMAGE}"
|
echo "Build #${env.BUILD_NUMBER} 성공: ${FULL_IMAGE} → 운영 LXC(10.1.10.24) 배포 완료"
|
||||||
}
|
}
|
||||||
failure {
|
failure {
|
||||||
echo "Build #${env.BUILD_NUMBER} FAILED"
|
echo "Build #${env.BUILD_NUMBER} 실패"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user