Build 如何在开始构建创建之前自动添加标记?

Build 如何在开始构建创建之前自动添加标记?,build,devops,azure-pipelines,Build,Devops,Azure Pipelines,我已经在VSTS中为我的web应用程序设置了构建和发布定义。每当我提交代码,然后自动启动构建过程,在构建成功后,我手动添加标签,如下图所示 但是我只想在开始构建创建之前添加构建标记。那么,如何在开始创建构建之前自动添加标记? 看起来您正在使用CI构建,所以如果您想自动添加标记,可以在本地git repo中使用预推钩子 或者,如果可以在生成后添加标记,则可以在生成定义中设置。在获取源步骤->显示高级设置->选择标记源始终->指定标记格式->保存 预推钩子的示例(.git/hooks/pre

我已经在VSTS中为我的web应用程序设置了构建和发布定义。每当我提交代码,然后自动启动构建过程,在构建成功后,我手动添加标签,如下图所示

但是我只想在开始构建创建之前添加构建标记。那么,如何在开始创建构建之前自动添加标记?

  • 看起来您正在使用CI构建,所以如果您想自动添加标记,可以在本地git repo中使用预推钩子

  • 或者,如果可以在生成后添加标记,则可以在生成定义中设置。在获取源步骤->显示高级设置->选择标记源始终->指定标记格式->保存


预推钩子的示例(
.git/hooks/pre-push
),添加一个标签,标签版本递增,版本格式为
major.minor
,数字不大于
9

#!/bin/sh

temp1=0
temp2=0


for tag in $(git tag)
do
{
  IFS=. read -r major minor <<< "$tag"
  if [ $((major-temp1)) > 0 ]

  then
  {
    temp1=$major
    temp2=$minor

  }
  elif [ $major == $temp1 ]
  then
  {
    if [ $((minor-temp2)) > 0 ]
    then
    temp2=$minor
    else
    {
      temp1=$temp1
      temp2=$temp2
    }
    fi
  }

  fi
}
done
if [ $temp2 != 9 ]
then
  temp2=$((temp2+1))
else
  temp1=$((temp1+1))
fi
nexttag=$temp1"."$temp2
git tag -a $nexttag -m $nexttag
#/垃圾箱/垃圾箱
temp1=0
temp2=0
对于$中的标记(git标记)
做
{
IFS=.read-r大调小调0]
然后
temp2=$minor
其他的
{
temp1=$temp1
temp2=$temp2
}
fi
}
fi
}
完成
如果[$temp2!=9]
然后
temp2=$((temp2+1))
其他的
temp1=$((temp1+1))
fi
nexttag=$temp1.“$temp2”
git标签-a$nexttag-m$nexttag

谢谢@Marina,如果可能的话,请告诉我一些关于如何在本地git回购中设置预推挂钩的示例代码。我在回答的最后添加了一个预推挂钩示例,您可以试一试。这只是一个解释预推工作原理的示例。您可以根据需要开发脚本。如果您在开发脚本过程中遇到任何问题,可以发布另一个问题。