要从branchName
获取最新提交,我们运行以下代码:
treeMapData = git(branch: branchName, credentialsId: credential, url: "${gitLabServer}/${projectName}/${repo}.git")
根据我们的工作流程,确保每次提交都有一个标记
我们只想在标记提交时构建代码。
如何检索最新提交的标记名称?
如果詹金斯还没有,我们可以从回购中获取标签。
git fetch --tags
在我们的例子中,我们需要找到一个指向特定提交或HEAD
的标记。值得庆幸的是,git中有一个方便的命令允许我们这样做。
git tag --points-at HEAD
使用awk
我们可以把它变成一个groovy可以伪造的输出。
awk NF
所以我们首先检查推送的分支是否为主
if (env.BRANCH_NAME == 'master') {
锁定它
lock('publish master') {
执行git标签shell脚本并将其分配给TAG
TAG = sh (
returnStdout: true,
script: 'git fetch --tags && git tag --points-at HEAD | awk NF'
).trim()
如果标签存在,做一些事情!
if (TAG) {
stage('Deploy Prod') {
echo "Deploying to Prod ${TAG}"
}
}
希望这能回答你的问题,或者至少会让你走上正轨。