如何从jenkins获取Windows从属节点上多个存储库的简短提交ID?

时间:2019-07-18 11:17:50

标签: git jenkins-groovy

我想要Windows从属节点上所有git存储库的简短提交ID。  我已经在我的Jenkinsfile中完成了以下操作:

checkout([$class: 'GitSCM', branches: [[name: "develop"]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'SubmoduleOption', disableSubmodules: true, parentCredentials: false, recursiveSubmodules: true, reference: '', trackingSubmodules: false], [$class: 'RelativeTargetDirectory', relativeTargetDir: '']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '***', url: "GITURL"]]])


checkout([$class: 'GitSCM', branches: [[name: 'master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'SubmoduleOption', disableSubmodules: true, parentCredentials: false, recursiveSubmodules: true, reference: '', trackingSubmodules: false], [$class: 'RelativeTargetDirectory', relativeTargetDir: 'XYZ']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '***', url: "GITURL1"]]])

因此,在第一次签出之后,GITURL存储库(分支-开发)在Windows从属节点上作业名称文件夹下的jenkins工作区中下载,并且在第二次签出之后,GITURL1存储库(分支-主服务器)在同一个内部下载了文件夹下的作业名称文件夹-XYZ。我想捕获两个存储库的简短提交ID。

我编写了以下命令来捕获简短的提交ID。

def SHORT_COMMIT_ID = bat (returnStdout: true, script: "@git log -n 1 --pretty=format:'%%h'").trim()

echo 'Commit id ' + "$SHORT_COMMIT_ID"

def SHORT_COMMIT_ID_XYZ = bat (returnStdout: true, script: "@git log -n 1 --pretty=format:'%%h' -- XYZ").trim()

echo 'XYZ Commit id ' + "$SHORT_COMMIT_ID_XYZ"

第一个提交ID值已正确返回。但对于XYZ提交ID则为空值。

0 个答案:

没有答案