Какие конкретные изменения необходимо внести в Jenkinsfile
ниже, чтобы изолировать имя ветви коммита в переменной, которую можно распечатать в журналах? В приведенном ниже случае , название филиала GWS-43-getissueforcommit
.
Вот особенности:
Jenkinsfile:
Следующий Jenkinsfile
выводит имя ветви в середине вывода, полученного при выполнении команды checkout(scm).GIT_ASKPASS
, но эта информация теряется, когда следующая строка кода (sh "echo 'The repo Ask Pass is: ${repoAskPass}'"
) пытается распечатать инкапсулированный Результат команды:
node {
// Clean workspace before doing anything
deleteDir()
try {
stage ('Clone') {
def repoAskPass = checkout(scm).GIT_ASKPASS
sh "echo 'The repo Ask Pass is: ${repoAskPass}'"
}
} catch (err) {
currentBuild.result = 'FAILED'
throw err
}
}
Результирующие журналы:
В результате выводится лог:
General SCM<1s
Cloning the remote Git repository
Cloning with configured refspecs honoured and without tags
Cloning repository http://<bitbucket-ip-on-lan>:7990/scm/JSP/jenkinsfile-simple-repo.git
> git init /var/jenkins_home/workspace/ne_GWS-43-getissueforcommit-M2X23QGNMETLDZWFK7IXVZQRCNSWYNTDFJZU54VP7DMIOD6Z4DGA # timeout=10
Fetching upstream changes from http://<bitbucket-ip-on-lan>:7990/scm/JSP/jenkinsfile-simple-repo.git
> git --version # timeout=10
using GIT_ASKPASS to set credentials Bitbucket server credentials
> git fetch --no-tags --progress http://<bitbucket-ip-on-lan>:7990/scm/JSP/jenkinsfile-simple-repo.git +refs/heads/GWS-43-getissueforcommit:refs/remotes/origin/GWS-43-getissueforcommit
> git config remote.origin.url http://<bitbucket-ip-on-lan>:7990/scm/JSP/jenkinsfile-simple-repo.git # timeout=10
> git config --add remote.origin.fetch +refs/heads/GWS-43-getissueforcommit:refs/remotes/origin/GWS-43-getissueforcommit # timeout=10
> git config remote.origin.url http://<bitbucket-ip-on-lan>:7990/scm/JSP/jenkinsfile-simple-repo.git # timeout=10
Cleaning workspace
> git rev-parse --verify HEAD # timeout=10
No valid HEAD. Skipping the resetting
> git clean -fdx # timeout=10
Fetching without tags
Fetching upstream changes from http://<bitbucket-ip-on-lan>:7990/scm/JSP/jenkinsfile-simple-repo.git
using GIT_ASKPASS to set credentials Bitbucket server credentials
> git fetch --no-tags --progress http://<bitbucket-ip-on-lan>:7990/scm/JSP/jenkinsfile-simple-repo.git +refs/heads/GWS-43-getissueforcommit:refs/remotes/origin/GWS-43-getissueforcommit
Checking out Revision 375b17c4e7453d802d94659836db436553cc7f0c (GWS-43-getissueforcommit)
> git config core.sparsecheckout # timeout=10
> git checkout -f 375b17c4e7453d802d94659836db436553cc7f0c
> git branch -a -v --no-abbrev # timeout=10
> git checkout -b GWS-43-getissueforcommit 375b17c4e7453d802d94659836db436553cc7f0c
Commit message: "isolate ASKPASS"
> git rev-list --no-walk 268c468a96de0fb27b6f205658a169b38871b581 # timeout=10
Cleaning workspace
> git rev-parse --verify HEAD # timeout=10
Resetting working tree
> git reset --hard # timeout=10
> git clean -fdx # timeout=10
[Bitbucket] Notifying commit build result
echo 'The repo Ask Pass is: null'— Shell Script<1s
[ne_GWS-43-getissueforcommit-M2X23QGNMETLDZWFK7IXVZQRCNSWYNTDFJZU54VP7DMIOD6Z4DGA] Running shell script
+ echo The repo Ask Pass is: null
The repo Ask Pass is: null
Пересмотренный вопрос:
Как нужно изменить вышеуказанный Jenkinsfile, чтобы вывести в журналы следующую строку:
The name of the branch containing the commit for this build is:
GWS-43-getissueforcommit