Thienvv - beta -> prod

This commit is contained in:
thienqb123456
2025-03-05 19:59:37 +07:00
parent 5ad8047ce4
commit 4b2f75c5a5
4 changed files with 53 additions and 38 deletions
+21 -16
View File
@@ -1,33 +1,44 @@
pipeline { pipeline {
agent any agent any
parameters { parameters {
choice(name: 'ENV', choices: ['uat', 'beta'], description: 'Choose Environment') choice(name: 'ENV', choices: ['uat', 'production'], description: 'Choose Environment')
string(name: 'CI_JOB_BUILD_NUMBER', defaultValue: '', description: 'Build number of CI Job') string(name: 'CI_JOB_BUILD_NUMBER', defaultValue: '', description: 'Build number of CI Job')
} }
environment { environment {
PROJECT_NAME = 'acp' PROJECT_NAME = 'acp'
CI_JOB_NAME_UAT = 'CI-UAT-FE-ACP' // tên của job build code môi trường uat CI_JOB_NAME_UAT = 'CI-UAT-FE-ACP' // tên của job build code môi trường uat
CI_JOB_NAME_PROD = 'CI-PROD-FE-ACP' // tên của job build code môi trường prod CI_JOB_NAME_PRODUCTION = 'CI-PRODUCTION-FE-ACP' // tên của job build code môi trường beta
CI_JOB_NAME_BETA = 'CI-BETA-FE-ACP' // tên của job build code môi trường beta
CI_JOB_METADATA_FILENAME = "${params.ENV}_${PROJECT_NAME}_metadata.json" // tên file metadata đã được lưu từ job build code CI_JOB_METADATA_FILENAME = "${params.ENV}_${PROJECT_NAME}_metadata.json" // tên file metadata đã được lưu từ job build code
GIT_PAT_CREDENTIALS_ID = 'b03f36c4-bba3-4764-94ca-b620651b2a68' // Id của Personal Access Token lưu trên jenkins GIT_PAT_CREDENTIALS_ID = 'b03f36c4-bba3-4764-94ca-b620651b2a68' // Id của Personal Access Token lưu trên jenkins
GIT_ANSIBLE_URL = 'work.gct.com.vn/thienvv/nsg_ansible.git' GIT_ANSIBLE_URL = 'work.gct.com.vn/thienvv/nsg_ansible.git'
GIT_ANSIBLE_BRANCH = 'v2' GIT_ANSIBLE_BRANCH = 'v3'
NEXUS_CREDENTIALS = credentials('Nexus_credential') NEXUS_CREDENTIALS = credentials('Nexus_credential')
ANSIBLE_SSH_CONNECTION = 'root@103.166.183.172 -p 24700' ANSIBLE_SSH_CONNECTION = 'root@103.166.183.172 -p 24700'
ANSIBLE_FOLDER_PATH = '/srv/ansible_v2' ANSIBLE_FOLDER_PATH = '/srv/ansible_v3'
ANSIBLE_INVENTORY_PATH = "inventory/${params.ENV}.ini" ANSIBLE_PLAYBOOK_PATH = 'playbooks/frontend/deploy_acp_frontend.yml'
ANSIBLE_PLAYBOOK_PATH = 'playbooks/deploy_fe.yml'
TELEGRAM_CHAT_ID = -4678013464 TELEGRAM_CHAT_ID = -4678013464
TELEGRAM_BOT_TOKEN = credentials('TELEGRAM_BOT_TOKEN') TELEGRAM_BOT_TOKEN = credentials('TELEGRAM_BOT_TOKEN')
} }
stages { stages {
stage('Set up') {
steps {
script {
if (params.ENV == 'uat') {
env.ANSIBLE_INVENTORY_PATH = 'inventory/uat/hosts.ini'
} else if (params.ENV == 'production') {
env.ANSIBLE_INVENTORY_PATH = 'inventory/production/hosts.ini'
}
echo "ANSIBLE_INVENTORY_PATH is set to: ${env.ANSIBLE_INVENTORY_PATH}"
}
}
}
stage('Retrieve Artifact Metadata From CI Job') { stage('Retrieve Artifact Metadata From CI Job') {
steps { steps {
script { script {
@@ -35,8 +46,8 @@ pipeline {
case 'uat': case 'uat':
env.CI_JOB_NAME = env.CI_JOB_NAME_UAT env.CI_JOB_NAME = env.CI_JOB_NAME_UAT
break break
case 'beta': case 'production':
env.CI_JOB_NAME = env.CI_JOB_NAME_BETA env.CI_JOB_NAME = env.CI_JOB_NAME_PRODUCTION
break break
default: default:
error "Unsupported environment: ${params.ENV}" error "Unsupported environment: ${params.ENV}"
@@ -80,8 +91,6 @@ pipeline {
env.ANSIBLE_FOLDER_PATH, env.ANSIBLE_FOLDER_PATH,
env.ANSIBLE_INVENTORY_PATH, env.ANSIBLE_INVENTORY_PATH,
env.ANSIBLE_PLAYBOOK_PATH, env.ANSIBLE_PLAYBOOK_PATH,
params.ENV,
env.PROJECT_NAME,
env.NEXUS_URL, env.NEXUS_URL,
env.NEXUS_ARTIFACT_NAME, env.NEXUS_ARTIFACT_NAME,
env.NEXUS_CREDENTIALS_USR, env.NEXUS_CREDENTIALS_USR,
@@ -205,8 +214,6 @@ def triggerAnsible(
String ansibleansibleFolderPath, String ansibleansibleFolderPath,
String inventoryPath, String inventoryPath,
String playbookPath, String playbookPath,
String deployENV,
String projectName,
String nexusUrl, String nexusUrl,
String nexusArtifactName, String nexusArtifactName,
String nexusUsername, String nexusUsername,
@@ -218,9 +225,7 @@ def triggerAnsible(
ssh ${sshAnsibleConnection} " ssh ${sshAnsibleConnection} "
cd ${ansibleansibleFolderPath} && cd ${ansibleansibleFolderPath} &&
ansible-playbook -i ${inventoryPath} ${playbookPath} \\ ansible-playbook -i ${inventoryPath} ${playbookPath} \\
-e 'deploy_env=${deployENV} \\ -e 'nexus_url=${nexusUrl} \\
project_name=${projectName} \\
nexus_url=${nexusUrl} \\
artifact_name=${nexusArtifactName} \\ artifact_name=${nexusArtifactName} \\
nexus_username=${nexusUsername} \\ nexus_username=${nexusUsername} \\
nexus_password=${nexusPassword}' -vvvv nexus_password=${nexusPassword}' -vvvv
@@ -7,7 +7,7 @@ pipeline {
GIT_BRANCH = 'main' GIT_BRANCH = 'main'
PROJECT_NAME = 'acp' PROJECT_NAME = 'acp'
ENV = 'beta' ENV = 'production'
TRIGGER_JOB_NAME = 'CD_FE_ACP' TRIGGER_JOB_NAME = 'CD_FE_ACP'
METADATA_FILENAME = "${env.ENV}_${PROJECT_NAME}_metadata.json" METADATA_FILENAME = "${env.ENV}_${PROJECT_NAME}_metadata.json"
+30 -20
View File
@@ -1,33 +1,52 @@
pipeline { pipeline {
agent any agent any
parameters { parameters {
choice(name: 'ENV', choices: ['uat', 'beta'], description: 'Choose Environment') choice(name: 'ENV', choices: ['uat', 'production'], description: 'Choose Environment')
choice(name: 'PORTAL_NAME', choices: ['ktdt', 'hnt'], description: 'Choose SITE NAME') choice(name: 'PORTAL_NAME', choices: ['ktdt', 'hnt'], description: 'Choose SITE NAME')
string(name: 'CI_JOB_BUILD_NUMBER', defaultValue: '', description: 'Build number of CI Job') string(name: 'CI_JOB_BUILD_NUMBER', defaultValue: '', description: 'Build number of CI Job')
} }
environment { environment {
PROJECT_NAME = 'portal' PROJECT_NAME = 'portal'
CI_JOB_NAME_UAT = 'CI-UAT-FE-PORTAL' // tên của job build code môi trường uat CI_JOB_NAME_UAT = 'CI-UAT-FE-PORTAL' // tên của job build code môi trường uat
CI_JOB_NAME_BETA = 'CI-BETA-FE-PORTAL' // tên của job build code môi trường prod CI_JOB_NAME_PRODUCTION = 'CI-PRODUCTION-FE-PORTAL' // tên của job build code môi trường prod
CI_JOB_METADATA_FILENAME = "${env.ENV}_${env.PROJECT_NAME}_${params.PORTAL_NAME}_metadata.json" // tên file metadata đã được lưu từ job build code CI_JOB_METADATA_FILENAME = "${env.ENV}_${env.PROJECT_NAME}_${params.PORTAL_NAME}_metadata.json" // tên file metadata đã được lưu từ job build code
GIT_PAT_CREDENTIALS_ID = 'b03f36c4-bba3-4764-94ca-b620651b2a68' // Id của Personal Access Token lưu trên jenkins
GIT_ANSIBLE_URL = 'work.gct.com.vn/thienvv/nsg_ansible.git'
GIT_ANSIBLE_BRANCH = 'v2'
NEXUS_CREDENTIALS = credentials('Nexus_credential') NEXUS_CREDENTIALS = credentials('Nexus_credential')
ANSIBLE_SSH_CONNECTION = 'root@103.166.183.172 -p 24700' ANSIBLE_SSH_CONNECTION = 'root@103.166.183.172 -p 24700'
ANSIBLE_FOLDER_PATH = '/srv/ansible_v2' GIT_PAT_CREDENTIALS_ID = 'b03f36c4-bba3-4764-94ca-b620651b2a68' // Id của Personal Access Token lưu trên jenkins
ANSIBLE_INVENTORY_PATH = "inventory/${params.ENV}.ini" GIT_ANSIBLE_URL = 'work.gct.com.vn/thienvv/nsg_ansible.git'
ANSIBLE_PLAYBOOK_PATH = 'playbooks/deploy_fe_portal.yml' GIT_ANSIBLE_BRANCH = 'v3'
ANSIBLE_FOLDER_PATH = '/srv/ansible_v3'
TELEGRAM_CHAT_ID = -4678013464 TELEGRAM_CHAT_ID = -4678013464
TELEGRAM_BOT_TOKEN = credentials('TELEGRAM_BOT_TOKEN') TELEGRAM_BOT_TOKEN = credentials('TELEGRAM_BOT_TOKEN')
} }
stages { stages {
stage('Set up') {
steps {
script {
if (params.ENV == 'uat') {
env.ANSIBLE_INVENTORY_PATH = 'inventory/uat/hosts.ini'
} else if (params.ENV == 'production') {
env.ANSIBLE_INVENTORY_PATH = 'inventory/production/hosts.ini'
}
echo "ANSIBLE_INVENTORY_PATH is set to: ${env.ANSIBLE_INVENTORY_PATH}"
if (params.PORTAL_NAME == 'ktdt') {
env.ANSIBLE_PLAYBOOK_PATH = 'playbooks/frontend/deploy_ktdt_portal_frontend.yml'
} else if (params.PORTAL_NAME == 'hnt') {
env.ANSIBLE_PLAYBOOK_PATH = 'playbooks/frontend/deploy_hnt_portal_frontend.yml'
}
echo "ANSIBLE_PLAYBOOK_PATH is set to: ${env.ANSIBLE_PLAYBOOK_PATH}"
}
}
}
stage('Retrieve Artifact Metadata From CI Job') { stage('Retrieve Artifact Metadata From CI Job') {
steps { steps {
script { script {
@@ -36,7 +55,7 @@ pipeline {
env.CI_JOB_NAME = env.CI_JOB_NAME_UAT env.CI_JOB_NAME = env.CI_JOB_NAME_UAT
break break
case 'beta': case 'beta':
env.CI_JOB_NAME = env.CI_JOB_NAME_BETA env.CI_JOB_NAME = env.CI_JOB_NAME_PRODUCTION
break break
default: default:
error "Unsupported environment: ${params.ENV}" error "Unsupported environment: ${params.ENV}"
@@ -80,9 +99,6 @@ pipeline {
env.ANSIBLE_FOLDER_PATH, env.ANSIBLE_FOLDER_PATH,
env.ANSIBLE_INVENTORY_PATH, env.ANSIBLE_INVENTORY_PATH,
env.ANSIBLE_PLAYBOOK_PATH, env.ANSIBLE_PLAYBOOK_PATH,
params.ENV,
env.PROJECT_NAME,
env.PORTAL_NAME,
env.NEXUS_URL, env.NEXUS_URL,
env.NEXUS_ARTIFACT_NAME, env.NEXUS_ARTIFACT_NAME,
env.NEXUS_CREDENTIALS_USR, env.NEXUS_CREDENTIALS_USR,
@@ -206,9 +222,6 @@ def triggerAnsible(
String ansibleansibleFolderPath, String ansibleansibleFolderPath,
String inventoryPath, String inventoryPath,
String playbookPath, String playbookPath,
String deployENV,
String projectName,
String portalName,
String nexusUrl, String nexusUrl,
String nexusArtifactName, String nexusArtifactName,
String nexusUsername, String nexusUsername,
@@ -220,10 +233,7 @@ def triggerAnsible(
ssh ${sshAnsibleConnection} " ssh ${sshAnsibleConnection} "
cd ${ansibleansibleFolderPath} && cd ${ansibleansibleFolderPath} &&
ansible-playbook -i ${inventoryPath} ${playbookPath} \\ ansible-playbook -i ${inventoryPath} ${playbookPath} \\
-e 'deploy_env=${deployENV} \\ -e 'nexus_url=${nexusUrl} \\
project_name=${projectName} \\
portal_name=${portalName} \\
nexus_url=${nexusUrl} \\
artifact_name=${nexusArtifactName} \\ artifact_name=${nexusArtifactName} \\
nexus_username=${nexusUsername} \\ nexus_username=${nexusUsername} \\
nexus_password=${nexusPassword}' -vvvv nexus_password=${nexusPassword}' -vvvv
@@ -11,7 +11,7 @@ pipeline {
GIT_KTDT_BRANCH = 'beta_kinhtedothi' GIT_KTDT_BRANCH = 'beta_kinhtedothi'
GIT_HNT_BRANCH = 'beta_hanoitimes' GIT_HNT_BRANCH = 'beta_hanoitimes'
ENV = 'beta' ENV = 'production'
PROJECT_NAME = 'portal' PROJECT_NAME = 'portal'
TRIGGER_JOB_NAME = 'CD-FE-PORTAL' TRIGGER_JOB_NAME = 'CD-FE-PORTAL'