我想要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则为空值。