Files
imports/Jenkinsfile
T

101 lines
2.9 KiB
Groovy
Raw Normal View History

2023-10-13 14:41:14 +05:30
pipeline {
agent any
environment {
BACKUP_DIR = './backup'
}
stages {
2023-10-14 00:55:01 +05:30
stage('Checkout') {
steps {
checkout scm
}
}
2023-10-13 14:41:14 +05:30
stage('Setup') {
steps {
script {
BRANCH_NAME = env.BRANCH_NAME.split('/')[-1] // Extract branch name
switch(BRANCH_NAME) {
2023-10-14 01:11:07 +05:30
case "test08":
2023-10-13 14:41:14 +05:30
env.BASE_URL = "https://test08.bizgaze.com/Account/Import/"
env.AUTH_TOKEN = "6884972896664f4582e08f7f93da953d"
break
2023-10-14 01:11:07 +05:30
case "qaanwi":
2023-10-13 14:41:14 +05:30
env.BASE_URL = "https://qa.anwisystems.com/Account/Import/"
env.AUTH_TOKEN = "541c35d52a7b449f956175992619ed3a"
break
default:
error "Unknown branch: ${BRANCH_NAME}. Exiting."
}
}
}
}
stage('Process XML files') {
steps {
script {
process_folder('./app', 'app')
process_folder('./report', 'report')
process_folder('./form', 'form')
2023-10-13 17:01:19 +05:30
commitChanges()
2023-10-13 14:41:14 +05:30
}
}
}
}
}
def process_folder(folder, import_type) {
import_url = "${env.BASE_URL}${import_type}"
backup_folder = "${env.BACKUP_DIR}/${import_type}"
sh "mkdir -p ${backup_folder}"
2023-10-13 15:31:26 +05:30
// Use find command to get XML files and avoid error if none found
def fileList = sh(script: "find ${folder} -name '*.xml' || echo ''", returnStdout: true).trim().split('\n')
2023-10-13 14:41:14 +05:30
2023-10-13 15:31:26 +05:30
// Remove any empty strings from the list
fileList = fileList.findAll { it != '' }
// Check if we found any files
if (fileList.size() == 0) {
echo "No XML files found in ${folder}."
return
}
echo "Detected files: ${fileList.join(', ')}"
for(file in fileList) {
def response = sh(script: """
curl --location --request POST "${import_url}" \
--header 'Authorization: stat ${env.AUTH_TOKEN}' \
--form "=@${file}"
""", returnStdout: true).trim()
2023-10-13 14:41:14 +05:30
if(response != '') { // or other success condition
2023-10-13 15:31:26 +05:30
sh "mv \"${file}\" \"${backup_folder}/\""
2023-10-13 14:41:14 +05:30
echo "API Response: ${response}"
} else {
echo "Error while uploading ${file} to ${import_url}"
}
}
}
2023-10-13 17:01:19 +05:30
def commitChanges() {
// Configure Git
sh """
git config user.email "jenkins@bizgaze.in"
git config user.name "jenkinstest"
"""
// Check for changes
sh """
2023-10-13 17:45:51 +05:30
git pull origin ${env.BRANCH_NAME}
2023-10-13 17:01:19 +05:30
git add .
git commit -m "Moved processed XML files to backup"
2023-10-13 17:45:51 +05:30
git push --force https://jenkinstest:Bizgaze123@code.bizgaze.com/devops.bizgaze/imports.git ${env.BRANCH_NAME}
2023-10-13 17:01:19 +05:30
"""
}