Скриптовый конвейер - Groovy синтаксис для получения хеша или тэга коммита
Для конвейера Dev/QA/Prod мы хотим уведомить пользователей о том, какой хеш коммитов выбирается конвейером.
В основном это помогает в конвейере Prod перед развертыванием в производстве.
Ниже приведен синтаксис groovy, используемый для выбора последнего коммита из определенной ветви.
git branch: branchName, credentialsId: credential, url: "${gitLabServer}/${projectName}/${repo}.git"
1) Как получить хеш / тэг коммита из кассы?
2) Как отловить ошибку, если конкретная ветка недоступна?
1 ответ
Решение
Вы можете получить информацию, используя возврат TreeMap
от git
:
try {
d = git(branch: branchName, credentialsId: credential, url: "${gitLabServer}/${projectName}/${repo}.git")
echo d["GIT_COMMIT"]
} catch (Exception e) {
echo "${e}"
}
Поля:
GIT_AUTHOR_EMAIL
GIT_AUTHOR_NAME
GIT_BRANCH
GIT_COMMIT
GIT_COMMITTER_EMAIL
GIT_COMMITTER_NAME
GIT_LOCAL_BRANCH
GIT_PREVIOUS_COMMIT
GIT_PREVIOUS_SUCCESSFUL_COMMIT
GIT_URL
Обновить:
def treeMapData
pipeline {
agent any
stages {
stage ('Get Commit') {
steps{
script{
try {
treeMapData = git(branch: branchName, credentialsId: credential, url: "${gitLabServer}/${projectName}/${repo}.git")
echo treeMapData["GIT_COMMIT"]
} catch (Exception e) {
echo "${e}"
}
}
}
}
}
}
или же
def treeMapData
node {
stage ('Build') {
try {
treeMapData = git(branch: branchName, credentialsId: credential, url: "${gitLabServer}/${projectName}/${repo}.git")
echo treeMapData["GIT_COMMIT"]
} catch (Exception e) {
echo "${e}"
}
}
}