Скриптовый конвейер - 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}"
        }
    }
}
Другие вопросы по тегам