我在VSTS上托管了一个存储库,包含了一个通过git-lfs存储的文件。如果我只是让VSTS构建checkout存储库,它只需下载包含文件ID的git-lfs元数据文件。
以下是VSTS如何获取其来源的输出:
Syncing repository: MyRepo (Git)
Checking out c84ef2f2bbad4fa3dc70dbd4100534390b9c8f18 to d:\work\73\s
Checked out branch refs/heads/develop for repository MyRepo at commit c84ef2f2bbad4fa3dc70dbd4100534390b9c8f18
检查真实文件需要做什么?
编辑:我认为我需要在VSTS签出源后手动调用git lfs fetch
。但是在这种情况下如何处理身份验证(VSTS需要)?
答案 0 :(得分:6)
答案 1 :(得分:3)
<强>更新强>
我确认流程已更改,请忽略以下答案。
我不得不说我发现:
在您的构建定义中,选择存储库标签,然后选中从LFS结帐文件
选项它可以更容易。
答案 2 :(得分:2)
对于TFS Build 2015 Update 4(这个东西的自托管风格,而不是VSTS,云服务),“LFS的Checkout文件”选项不存在,因此,我们必须这样做:
Allow Scripts to Access OAuth Token
。将此批处理文件提交到存储库中的某个位置:
REM This script is intended to fetch large (LFS) files during the TFS Build process.
REM Solution derived from https://github.com/Microsoft/vsts-agent/issues/1134
git config --unset-all http.extraheader
git config --add http.extraheader "AUTHORIZATION: bearer %SYSTEM_ACCESSTOKEN%"
git lfs fetch
git lfs checkout
git config --unset http.extraheader
添加Batch Script
的构建步骤,然后运行上述脚本。
答案 3 :(得分:0)
VSTS现在有一个Allow Scripts to Access OAuth Token
选项。通过在构建定义上设置此选项,OAuth可用于构建脚本。
我创建了一个extension包含构建任务,这些任务会更改远程Url以使用OAuth令牌访问远程存储库。