在TFS2015 ("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)。但是,身份验证也不是可选的(业务需求)。
另外,请注意:我们运行的是TFS2015更新3,因此该更新解决的npm install问题可能不是原因(是的,所有构建代理都已更新)。编辑:这里有一个建议使用SSH的答案,我完全支持它作为一个可行的解决方案,但它被删除了。我认为,在我们的情况下,问题是所有开发人员都必须创建并上传SSH公钥身份验证令牌。
有没有其他人遇到过这个问题?有没有我找不到的简单的解决方案?我不知道有任何其他的凭证管理器可以做得更好,我不知道为什么身份验证一开始就被丢弃了(或者我错过了一个黑客),并且没有在另一个手动更新的共享上保留存储库的副本(不可取!)我看不到一个好的解决方案。
发布于 2016-10-18 12:46:52
问题的基本陈述:涉及npm install的TFS2015构建没有完成,因为我配置的Git凭据管理器定期要求服务用户重新进行身份验证,以便访问commit-ish指定的存储库。
最简单的解决方案:删除Git凭据管理器,并使用store。
> git config --global --unset credential.manager
> git config credential.helper store
> git clone http://my-tfs-machine:8080/tfs/DefaultCollection/TeamProject/_git/some-repo
Username for etc.: domain\user
Password for etc.: password...and瞧,这个特殊的错误已经消失了。
请注意,这意味着user的password以纯文本存储在硬盘驱动器上的某个地方,如果这不能作为您的域中的解决方案,您将不得不寻找一个不同的解决方案。
https://stackoverflow.com/questions/39862622
复制相似问题