在VSTS构建期间,使用npm脚本,如何确定触发构建的分支?

时间:2017-11-01 15:59:15

标签: node.js git npm build azure-devops

我正在尝试创建一个JS实用程序来为VSTS版本标记版本,其中包含有关分支和提交ID的详细信息。

我一直在使用git-rev-sync,它在本地工作正常。但是,当使用VSTS构建定义签出代码时,repo被分离,我不再能够从git repo本身确定当前代码所属的分支。

git-rev-sync报告的内容如下: 已分离:705a3e89206882aceed8c9ea9b2f412cf26b5e3f

而不是“发展”或“掌握”

我可以查看vsts节点SDK,它可以像使用Powershell脚本那样获取VSTS环境变量。

有没有人这样做过或以更简洁的方式解决了这个问题?

1 个答案:

答案 0 :(得分:4)

构建变量将添加到当前进程的环境变量中,因此您可以从环境变量访问Build.SourceBranchName内置变量:

的PowerShell:

$env:BUILD_SOURCEBRANCHNAME 

的NodeJS:

process.env.BUILD_SOURCEBRANCHNAME

Shell脚本:

$BUILD_SOURCEBRANCHNAME

批处理脚本:

%BUILD_SOURCEBRANCHNAME%

您也可以通过任务($(Build.SourceBranchName))的参数传递它,例如,使用Replace Tokens task将变量值替换为文件,然后您可以从文件中读取值(replace { {1}})。