Jenkins groovy-如何从最新提交中检索标签?

时间:2019-03-01 17:17:24

标签: git groovy jenkins-pipeline git-tag jenkins-groovy

要从branchName获取最新提交,我们运行以下代码:

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

根据我们的工作流程,确保每次提交都包含一个标签

仅当提交被标记时,我们才希望构建代码。


如何检索最新提交的标记名?

1 个答案:

答案 0 :(得分:3)

如果詹金斯还没有,我们可以从仓库中获取标签。

git fetch --tags

我们需要找到一个标签,该标签指向特定的提交或本例中的HEAD。幸运的是,在git中有一个方便的命令可以使我们做到这一点。

git tag --points-at HEAD

使用awk,我们可以将其转换为常规的伪造输出。

awk NF

因此,我们首先检查所推送的分支是否为master

if (env.BRANCH_NAME == 'master') {

将其锁定

  lock('publish master') {

执行git tag 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}"
      }
    }

希望这能回答您的问题,或者至少可以使您走上正确的轨道。