57 lines
2.4 KiB
Groovy
57 lines
2.4 KiB
Groovy
pipeline {
|
|
agent {
|
|
label "kaniko"
|
|
}
|
|
stages {
|
|
stage("Checkout") {
|
|
steps {
|
|
checkout scm
|
|
script {
|
|
env.GIT_COMMIT_SHORT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
|
|
env.GIT_AUTHOR_NAME = sh(script: "git log -1 --pretty=format:'%an'", returnStdout: true)
|
|
env.GIT_AUTHOR_EMAIL = sh(script: "git log -1 --pretty=format:'%ae'", returnStdout: true)
|
|
env.GIT_COMMIT_MESSAGE = sh (script: 'git log -1 --pretty=%B ${GIT_COMMIT}', returnStdout: true).trim()
|
|
env.GIT_PROJECT_NAME = GIT_URL.replaceAll('.git$', '').tokenize('/')[-2]
|
|
env.GIT_REPO_NAME = GIT_URL.replaceAll('.git$', '').tokenize('/')[-1]
|
|
}
|
|
}
|
|
}
|
|
stage("Build") {
|
|
steps {
|
|
container("kaniko") {
|
|
script {
|
|
sh "/kaniko/executor --context . --destination registry.kpslp.kr/${GIT_PROJECT_NAME}/${GIT_REPO_NAME}:${GIT_COMMIT_SHORT}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage("Update Image Tag") {
|
|
steps {
|
|
deleteDir()
|
|
checkout([
|
|
$class: 'GitSCM',
|
|
branches: [[name: '*/main']],
|
|
extensions: [],
|
|
userRemoteConfigs: [[credentialsId: 'gitlab_userpass_root', url: "https://gitlab.kpslp.kr/root/helm-charts"]]
|
|
])
|
|
script {
|
|
def valuesYaml = "kpslp/values_${GIT_REPO_NAME}.yaml"
|
|
def values = readYaml file: "${valuesYaml}"
|
|
values.image.tag = env.GIT_COMMIT_SHORT
|
|
writeYaml file: "${valuesYaml}", data: values, overwrite: true
|
|
|
|
sh "git config user.name '${GIT_AUTHOR_NAME}'"
|
|
sh "git config user.email '${GIT_AUTHOR_EMAIL}'"
|
|
withCredentials([usernameColonPassword(credentialsId: 'gitlab_userpass_root', variable: 'USERPASS')]) {
|
|
sh '''
|
|
git add . && \
|
|
git commit -m "${GIT_REPO_NAME}: ${GIT_COMMIT_MESSAGE}" && \
|
|
git push https://${USERPASS}@gitlab.kpslp.kr/root/helm-charts HEAD:main || true
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|