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

标签 node.js git npm build azure-devops

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

我一直在使用 git-rev-sync,它在本地运行良好。但是,当使用 VSTS 构建定义 checkout 代码时,存储库被分离,我无法再从 git 存储库本身确定当前代码属于哪个分支。

git-rev-sync 报告了以下内容: 分离:705a3e89206882aceed8c9ea9b2f412cf26b5e3f

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

我可能会查看 vsts Node SDK,它可能能够像使用 Powershell 脚本一样获取 VSTS 环境变量。

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

最佳答案

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

PowerShell:

$env:BUILD_SOURCEBRANCHNAME 

NodeJS:

process.env.BUILD_SOURCEBRANCHNAME

Shell 脚本:

$BUILD_SOURCEBRANCHNAME

批处理脚本:

%BUILD_SOURCEBRANCHNAME%

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

关于node.js - 在 VSTS 构建期间,使用 npm 脚本,如何确定触发构建的分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47058907/

相关文章:

node.js - npm install serialport是否需要VS?

jquery - 将内部失败/拒绝传递给 jquery 中的外部 promise 以避免代码重复

node.js - 如何修复Express中公共(public)文件夹中外部CSS的路径?

git - 将更改的文件移动到另一个分支以进行 checkin

javascript - 如何在 Angular 4 上使用带有 ChartJS 的插件

node.js - 无法安装@angular/cli

javascript - MongoDB计算不同的值(value)?

xml - 尝试通过 Node 调用国家铁路 SOAP API 时出现类型错误

windows - Git 配置文件 : Best practice

git - 从原始 GitHub 存储库中 pull 新的更新到 fork 的 GitHub 存储库中