【发布时间】:2017-02-13 05:29:40
【问题描述】:
在 TFS 2015(“XPlat”)构建中,npm install 步骤会挂起,直到超时。已尝试 10、20 和 30 分钟的超时。
npm install 获取在package.json 文件中定义的本地依赖项作为提交式引用,例如,
"ui-core": "git+http://tfs:8080/tfs/DefaultCollection/etc/_git/ui-core"
我相信是那些依赖关系导致了问题,因为有时当我登录构建服务器(作为服务帐户)并手动输入npm install(在超时的构建目录中)时,Git凭据管理器提示我进行身份验证。但是,依赖项不是可选的。
(事件日志和构建日志中都没有其他错误。)
我们使用的是 TFS 托管的 Git,它需要域级身份验证 (Kerberos)。这在我们的大多数环境中由Git Credential Manager 处理(有些人建议使用winstore 代替;请注意git-credential-manager 是winstore 的替代品,而wincred 不是一个选项,因为TFS)。但是,身份验证也不是可选的(业务要求)。
另外,请注意:我们正在运行 TFS 2015 Update 3,因此该更新解决的 npm install 问题可能不是原因(是的,所有构建代理都已更新)。编辑:这里有一个答案建议使用 SSH,我完全支持它作为一个可行的解决方案,但它被删除了。我认为在我们的案例中,问题在于所有开发人员都必须创建和上传 SSH 公钥身份验证令牌。
还有其他人遇到过这个问题吗?有没有我找不到的简单解决方案?我不知道有任何其他凭据管理器会做得更好,我不知道为什么首先会放弃身份验证(或者我是否缺少黑客攻击),并且没有保留手动更新的另一个共享上的存储库副本(不是最好的!)我看不到一个好的解决方案。
【问题讨论】:
-
您能否尝试将构建代理配置为使用安装 GCM 时使用的同一帐户运行?
-
很遗憾,没有,因为我以域用户身份安装了 GCM,但构建代理无法使用这些权限运行。我可以尝试使用服务帐户重新安装
chocogit 包... -
您的构建代理是作为服务还是交互模式运行?
-
能否将其配置为交互模式,以查看在构建过程中是否弹出 GCM 凭据对话框?
-
那么你现在可以让它工作了吗?
标签: git npm tfs-2015 npm-install