pipeline {
	agent any
	options {
		disableConcurrentBuilds()
		skipDefaultCheckout(true)
	}
	environment {
		PIPELINE_NAME = "Innopharm - Alpha Wing KEDA"
		PROJECT_NAME = "${params.PROJECT_NAME}"

        PIPELINE_BOT_EMAIL = "pharos.bot@gmail.com"
        PIPELINE_BOT_NAME = "Pipeline Bot"
	}
	stages {
		stage('Checkout SCM') {
			steps {
				checkout scm
			}
		}
		stage('Run Script') {
			steps {
				script {
					try {
						if (env.PROJECT_NAME != null && env.PROJECT_NAME != "") {
    					    sh "python3 proxy_updater.py -p ${env.PROJECT_NAME}"
						}
						env.ANY_CHANGES = sh (
							script: "git diff --name-only",
							returnStdout: true
						).trim()
                    } 
					catch (Exception e) {
						echo '> Exception occured: ' + e.toString()
					} 
                } 
			}
		}
		stage('Update Chart') {
			when { expression { env.ANY_CHANGES == "charts/values.yaml" } }
			steps {
				echo "Apply changes ..."
				sh 'make install'
			}
		}
		stage('Update Commit') {
			when { expression { env.ANY_CHANGES == "charts/values.yaml" } }
			steps {
				withCredentials([gitUsernamePassword(credentialsId: 'gitlab-pipeline-bot', gitToolName: 'git-tool')]) {
					sh "git config user.email '${env.PIPELINE_BOT_EMAIL}'"
					sh "git config user.name '${env.PIPELINE_BOT_NAME}'"
					sh "git add charts/values.yaml"
					sh "git commit -m 'Add proxy service ${env.PROJECT_NAME}'"
					sh "git push origin HEAD:master"
				}
			}
		}
	}
}

