Скриптовый конвейер - Groovy синтаксис для получения хеша или тэга коммита - PullRequest
0 голосов
/ 22 февраля 2019

Для конвейера Dev / QA / Prod мы хотим уведомить пользователей, какой хеш коммитов выбирается конвейером.

В основном это помогает в конвейере Prod перед развертыванием в рабочей среде.

Ниже приведен синтаксис groovy, используемый для выбора последнего коммита из определенной ветви.

git branch: branchName, credentialsId: credential, url: "${gitLabServer}/${projectName}/${repo}.git"

1) Как получить хэш / тэг коммита из проверки?

2) Какзахватить ошибку, если конкретная ветка недоступна?

1 Ответ

0 голосов
/ 22 февраля 2019

Вы можете получить информацию, используя return 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}"
        }
    }
}
...