我们有一个单独的源代码仓库,如果下载的话,大小约为 2.8GB。我们有 4 个自托管代理和 100 多个构建管道。这样,下载为每个构建/代理编码的整个源代码是不可行的。
我采用的方法是禁用这些管道的签出,然后运行命令行脚本来执行 Git 稀疏签出。然而,这需要大约 15 分钟才能获得价值约 100MB 的源代码。
我们正在使用自托管 Linux 代理。
steps:
- checkout: none
- task: CmdLine@2
displayName: "Project Specific Checkout"
inputs:
script: |
cd $(Build.SourcesDirectory)
git init
git config --global user.email ""
git config --global user.name ""
git config --global core.sparsecheckout true
echo STARS/Source/A/ >> .git/info/sparse-checkout
echo STARS/Source/B/ >> .git/info/sparse-checkout
echo STARS/Source/C/ >> .git/info/sparse-checkout
git remote rm origin
git remote add origin https://service:$(Service.Account.Personal.Access.Token)@dev.azure.com/Organization/Project/_git/STARS
git reset --hard
git pull origin $(Build.SourceBranch)
我在这里做错了什么,导致提取这些数据需要很长时间。