diff --git a/be/be-acp/ci-acp-backend.Jenkinsfile b/be/be-acp/ci-acp-backend.Jenkinsfile index 6803130..2572809 100644 --- a/be/be-acp/ci-acp-backend.Jenkinsfile +++ b/be/be-acp/ci-acp-backend.Jenkinsfile @@ -52,7 +52,6 @@ pipeline { } } } - stage('Checkout') { steps { // Checkout mã nguồn từ Gitea @@ -142,13 +141,13 @@ pipeline { success { echo "Job '${env.JOB_NAME}' completed successfully. Attempting to trigger Job '${TRIGGER_JOB_NAME}'..." script { - def message = "✅Build thành công : API - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n${env.BUILD_URL} \n Đang tiến hành Deploy...!" + def message = "✅Build thành công : API - Môi trường ${params.ENV} - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n${env.BUILD_URL} \n Đang tiến hành Deploy...!" sh "curl -s -X POST https://api.telegram.org/bot${env.TELEGRAM_BOT_TOKEN}/sendMessage -d chat_id=${env.TELEGRAM_CHAT_ID} -d text=\"${message}\"" } script { try { def buildResult = build job: "${TRIGGER_JOB_NAME}", parameters:[ - string(name: 'ENV', value: 'uat'), + string(name: 'ENV', value: params.ENV), string(name: 'CI_JOB_BUILD_NUMBER', value: env.BUILD_NUMBER) ], propagate: false @@ -164,7 +163,7 @@ pipeline { } failure { script { - def message = "❌Build thất bại: API - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n Kiểm tra tại đây ${env.BUILD_URL}." + def message = "❌Build thất bại: API - Môi trường ${params.ENV} - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n Kiểm tra tại đây ${env.BUILD_URL}." sh "curl -s -X POST https://api.telegram.org/bot${env.TELEGRAM_BOT_TOKEN}/sendMessage -d chat_id=${env.TELEGRAM_CHAT_ID} -d text=\"${message}\"" } } diff --git a/be/be-portal/cd-portal-backend.Jenkinsfile b/be/be-portal/cd-portal-backend.Jenkinsfile index 41b1583..2ae9ddb 100644 --- a/be/be-portal/cd-portal-backend.Jenkinsfile +++ b/be/be-portal/cd-portal-backend.Jenkinsfile @@ -9,7 +9,7 @@ pipeline { PROJECT_NAME = 'portal' CI_JOB_NAME = 'CI_BE_PORTAL' // tên của job CI - CI_JOB_METADATA_FILENAME = "${PROJECT_NAME}_metadata.json" // tên file metadata đã được lưu từ ci job + CI_JOB_METADATA_FILENAME = "${PROJECT_NAME}_${params.ENV}_metadata.json" // tên file metadata đã được lưu từ ci job NEXUS_CREDENTIALS = credentials('Nexus_credential') diff --git a/be/be-portal/ci-portal-backend.Jenkinsfile b/be/be-portal/ci-portal-backend.Jenkinsfile index 6db6527..92ed54e 100644 --- a/be/be-portal/ci-portal-backend.Jenkinsfile +++ b/be/be-portal/ci-portal-backend.Jenkinsfile @@ -1,30 +1,34 @@ pipeline { agent any + parameters { + choice(name: 'ENV', choices: ['uat', 'production'], description: 'Choose Environment') + } options { disableConcurrentBuilds(abortPrevious: true) } environment { GIT_CREDENTIALSID = 'd3de261f-8f1e-470b-b6d1-2fb4965e0129' GIT_URL = 'http://work.gct.com.vn/anhln/ACP_2025.git' - GIT_BRANCH = 'main' + + GIT_UAT_BRANCH = 'uat-portal' + GIT_PRODUCTION_BRANCH = 'production-portal' PROJECT_NAME = 'portal' + METADATA_FILENAME = "${PROJECT_NAME}_${params.ENV}_metadata.json" TRIGGER_JOB_NAME = 'CD_BE_PORTAL' - METADATA_FILENAME = "${PROJECT_NAME}_metadata.json" - NUGET_CONFIG_PATH = 'NuGet.config' APPLICATIONCORE_PATH = 'Packages' JENKINS_BUILD_FOLDER_PATH = 'Portal.WebApi' - JENKINS_PUBLISH_FOLDER_PATH = 'publish' + JENKINS_PUBLISH_FOLDER_PATH = "${PROJECT_NAME}-${params.ENV}-publish" - COMPRESSED_FILE_NAME = "${PROJECT_NAME}_publish.zip" // tên file nén + COMPRESSED_FILE_NAME = "${PROJECT_NAME}_${params.ENV}_publish.zip" // tên file nén COMPRESSED_FILE_PATH = "${env.WORKSPACE }/${COMPRESSED_FILE_NAME}" NEXUS_CREDENTIALS = credentials('Nexus_credential') - NEXUS_REPO_URL = "https://nexus.gct.com.vn/repository/${PROJECT_NAME}-backend" + NEXUS_REPO_URL = "https://nexus.gct.com.vn/repository/${params.ENV}-portal-backend" GROUP_ID = 'vn.kinhtedothi' - ARTIFACT_ID = "${PROJECT_NAME}-backend-api" + ARTIFACT_ID = 'portal-backend-api' PACKAGING = 'zip' VERSION = '1.0.0' // Phiên bản cơ bản @@ -36,10 +40,22 @@ pipeline { } stages { + stage('Set up') { + steps { + script { + if (params.ENV == 'uat') { + env.GIT_BRANCH_NAME = GIT_UAT_BRANCH + } else if (params.ENV == 'production') { + env.GIT_BRANCH_NAME = GIT_PRODUCTION_BRANCH + } + echo "GIT_BRANCH_NAME is set to: ${env.GIT_BRANCH_NAME}" + } + } + } stage('Checkout') { steps { // Checkout mã nguồn từ Gitea - checkoutFromGit(env.GIT_URL as String, env.GIT_CREDENTIALSID as String, env.GIT_BRANCH as String) + checkoutFromGit(env.GIT_URL as String, env.GIT_CREDENTIALSID as String, env.GIT_BRANCH_NAME as String) } } @@ -126,13 +142,13 @@ pipeline { success { echo "Job '${env.JOB_NAME}' completed successfully. Attempting to trigger Job '${TRIGGER_JOB_NAME}'..." script { - def message = "✅Build thành công : API - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n${env.BUILD_URL} \n Đang tiến hành Deploy...!" + def message = "✅Build thành công : API - Môi trường ${params.ENV} - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n${env.BUILD_URL} \n Đang tiến hành Deploy...!" sh "curl -s -X POST https://api.telegram.org/bot${env.TELEGRAM_BOT_TOKEN}/sendMessage -d chat_id=${env.TELEGRAM_CHAT_ID} -d text=\"${message}\"" } script { try { build job: "${TRIGGER_JOB_NAME}", parameters:[ - string(name: 'ENV', value: 'uat'), + string(name: 'ENV', value: params.ENV), string(name: 'CI_JOB_BUILD_NUMBER', value: env.BUILD_NUMBER) ], propagate: false } @@ -146,7 +162,7 @@ pipeline { failure { failure { script { - def message = "❌Build thất bại: API - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n Kiểm tra tại đây ${env.BUILD_URL}." + def message = "❌Build thất bại: API - Môi trường ${params.ENV} - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n Kiểm tra tại đây ${env.BUILD_URL}." sh "curl -s -X POST https://api.telegram.org/bot${env.TELEGRAM_BOT_TOKEN}/sendMessage -d chat_id=${env.TELEGRAM_CHAT_ID} -d text=\"${message}\"" } } diff --git a/be/be-resource/cd-resource-backend.Jenkinsfile b/be/be-resource/cd-resource-backend.Jenkinsfile index 2acf5ce..d8f9561 100644 --- a/be/be-resource/cd-resource-backend.Jenkinsfile +++ b/be/be-resource/cd-resource-backend.Jenkinsfile @@ -9,7 +9,7 @@ pipeline { PROJECT_NAME = 'resource' CI_JOB_NAME = 'CI-BE-RESOURCE' // tên của job CI - CI_JOB_METADATA_FILENAME = "${PROJECT_NAME}_metadata.json" // tên file metadata đã được lưu từ ci job + CI_JOB_METADATA_FILENAME = "${PROJECT_NAME}_${params.ENV}_metadata.json" // tên file metadata đã được lưu từ ci job NEXUS_CREDENTIALS = credentials('Nexus_credential') diff --git a/be/be-resource/ci-resource-backend.Jenkinsfile b/be/be-resource/ci-resource-backend.Jenkinsfile index b373c9f..93c7f29 100644 --- a/be/be-resource/ci-resource-backend.Jenkinsfile +++ b/be/be-resource/ci-resource-backend.Jenkinsfile @@ -1,27 +1,32 @@ pipeline { agent any + parameters { + choice(name: 'ENV', choices: ['uat', 'production'], description: 'Choose Environment') + } options { disableConcurrentBuilds(abortPrevious: true) } environment { GIT_CREDENTIALSID = 'd3de261f-8f1e-470b-b6d1-2fb4965e0129' GIT_URL = 'http://work.gct.com.vn/anhln/ACP_2025.git' - GIT_BRANCH = 'main' + + GIT_UAT_BRANCH = 'uat-resource' + GIT_PRODUCTION_BRANCH = 'production-resource' PROJECT_NAME = 'resource' - METADATA_FILENAME = "${PROJECT_NAME}_metadata.json" + METADATA_FILENAME = "${PROJECT_NAME}_${params.ENV}_metadata.json" TRIGGER_JOB_NAME = 'CD-BE-RESOURCE' NUGET_CONFIG_PATH = 'NuGet.config' APPLICATIONCORE_PATH = 'Packages' JENKINS_BUILD_FOLDER_PATH = 'Resource.WebApi' - JENKINS_PUBLISH_FOLDER_PATH = "${PROJECT_NAME}-publish" + JENKINS_PUBLISH_FOLDER_PATH = "${PROJECT_NAME}-${params.ENV}-publish" - COMPRESSED_FILE_NAME = "${PROJECT_NAME}_publish.zip" // tên file nén + COMPRESSED_FILE_NAME = "${PROJECT_NAME}_${params.ENV}_publish.zip" // tên file nén COMPRESSED_FILE_PATH = "${env.WORKSPACE }/${COMPRESSED_FILE_NAME}" NEXUS_CREDENTIALS = credentials('Nexus_credential') - NEXUS_REPO_URL = 'https://nexus.gct.com.vn/repository/resource-backend' + NEXUS_REPO_URL = "https://nexus.gct.com.vn/repository/${params.ENV}-resource-backend" GROUP_ID = 'vn.kinhtedothi' ARTIFACT_ID = 'resource-backend-api' PACKAGING = 'zip' @@ -35,10 +40,22 @@ pipeline { } stages { + stage('Set up') { + steps { + script { + if (params.ENV == 'uat') { + env.GIT_BRANCH_NAME = GIT_UAT_BRANCH + } else if (params.ENV == 'production') { + env.GIT_BRANCH_NAME = GIT_PRODUCTION_BRANCH + } + echo "GIT_BRANCH_NAME is set to: ${env.GIT_BRANCH_NAME}" + } + } + } stage('Checkout') { steps { // Checkout mã nguồn từ Gitea - checkoutFromGit(env.GIT_URL as String, env.GIT_CREDENTIALSID as String, env.GIT_BRANCH as String) + checkoutFromGit(env.GIT_URL as String, env.GIT_CREDENTIALSID as String, env.GIT_BRANCH_NAME as String) } } @@ -124,13 +141,13 @@ pipeline { success { echo "Job '${env.JOB_NAME}' completed successfully. Attempting to trigger Job '${TRIGGER_JOB_NAME}'..." script { - def message = "✅Build thành công : API - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n${env.BUILD_URL} \n Đang tiến hành Deploy...!" + def message = "✅Build thành công : API - Môi trường ${params.ENV} - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n${env.BUILD_URL} \n Đang tiến hành Deploy...!" sh "curl -s -X POST https://api.telegram.org/bot${env.TELEGRAM_BOT_TOKEN}/sendMessage -d chat_id=${env.TELEGRAM_CHAT_ID} -d text=\"${message}\"" } script { try { def buildResult = build job: "${TRIGGER_JOB_NAME}", parameters:[ - string(name: 'ENV', value: 'uat'), + string(name: 'ENV', value: params.ENV), string(name: 'CI_JOB_BUILD_NUMBER', value: env.BUILD_NUMBER) ], propagate: false @@ -146,7 +163,7 @@ pipeline { } failure { script { - def message = "❌Build thất bại: API - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n Kiểm tra tại đây ${env.BUILD_URL}." + def message = "❌Build thất bại: API - Môi trường ${params.ENV} - Dự án ${env.PROJECT_NAME} \n ${currentBuild.fullDisplayName}\n Kiểm tra tại đây ${env.BUILD_URL}." sh "curl -s -X POST https://api.telegram.org/bot${env.TELEGRAM_BOT_TOKEN}/sendMessage -d chat_id=${env.TELEGRAM_CHAT_ID} -d text=\"${message}\"" } }