Thienvv - fix

This commit is contained in:
thienqb123456
2024-12-24 01:24:29 +07:00
parent 6b2bc45f83
commit ca8079078d
3 changed files with 60 additions and 28 deletions
+28 -10
View File
@@ -2,17 +2,19 @@ pipeline {
agent any
parameters {
choice(name: 'ENV', choices: ['uat', 'prod'], description: 'Choose Environment')
string(name: 'CI_JOB_BUILD_NUMBER', defaultValue: '', description: 'Build number of CI Job')
}
environment {
JOB_BUILD_NAME = 'CI_FE_ACP' // tên của job build code
METADATA_FILENAME = "${params.ENV}_metadata.json" // tên file metadata đã được lưu từ job build code
PROJECT_NAME = 'acp'
CI_JOB_NAME = 'CI_FE_ACP' // tên của 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 = 'd3de261f-8f1e-470b-b6d1-2fb4965e0129' // 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')
PROJECT_NAME = 'acp'
ANSIBLE_SSH_CONNECTION = 'root@103.166.183.172 -p 24700'
ANSIBLE_FOLDER_PATH = '/srv/ansible_v2'
@@ -24,10 +26,16 @@ pipeline {
}
stages {
stage('Fetch Metadata File From Job Build') {
stage('Retrieve Artifact Metadata From CI Job') {
steps {
script {
def metadata = handleArtifactAndMetadata(env.JOB_BUILD_NAME, env.METADATA_FILENAME)
def ciJobBuildNumber = params.CI_JOB_BUILD_NUMBER
echo "Retrieving artifact from CI_JOB_BUILD_NUMBER: ${ciJobBuildNumber}"
def metadata = retrieveArtifactMetadataFromCIJOB(
env.CI_JOB_NAME, ciJobBuildNumber,
CI_JOB_METADATA_FILENAME)
env.NEXUS_URL = metadata.nexusUrl
echo "env.NEXUS_URL : ${env.NEXUS_URL}"
@@ -88,8 +96,6 @@ pipeline {
}
}
}
}
//Thienvv- hàm checkout git code ansible về máy ansible
@@ -150,16 +156,27 @@ def checkoutFromGit(
}
}
def handleArtifactAndMetadata(String jobBuildName, String metadataFilename) {
//Hàm lấy artifact metadata file từ CI job
def retrieveArtifactMetadataFromCIJOB(String ciJobName, String ciJobBuildNumber, String metadataFilename) {
try {
def selector = null
if (ciJobBuildNumber != '') { // nếu ciJobBuildNumber khác rỗng thì
selector = [$class: 'SpecificBuildSelector', buildNumber: ciJobBuildNumber] // selector = ciJobBuildNumber
} else { //còn nếu ciJobBuildNumber = rỗng thì
selector = lastSuccessful() //selector = build thành công gần nhất
}
// Sao chép artifact từ dự án khác
copyArtifacts projectName: jobBuildName,
copyArtifacts projectName: ciJobName,
selector: selector,
filter: metadataFilename,
target: '.'
// Kiểm tra sự tồn tại của file metadata
if (!fileExists(metadataFilename)) {
error "File '${metadataFilename}' after copyArtifacts!"
error "File ${metadataFilename} not found after copyArtifacts!"
} else {
echo "File ${metadataFilename} successfully copied."
}
// Đọc dữ liệu từ file JSON
@@ -172,6 +189,7 @@ def handleArtifactAndMetadata(String jobBuildName, String metadataFilename) {
}
}
def triggerAnsible(
String sshAnsibleConnection,
String ansibleansibleFolderPath,