git - Azure Devops Server:如何设置构建管道以将 git 源作为任务而不是自动获取
问题描述
我试图通过将它们分成多个代理步骤来提高一些构建的效率。第一步将构建我们的整个产品,包括单元测试和所有内容,并创建一个包含单元测试的工件,两个或多个后续步骤将运行单元测试套件的不同部分。
到目前为止一切顺利,一切正常,但所有构建代理步骤都获得了 git 源,即使它只是第一步所必需的。这需要另外 1.5 分钟,这可以使构建更加高效,并且消除了一些使它更加高效的要点(每个步骤的多个构建代理不会大大提高性能,因为它们都可以在 1.5 分钟内获取源代码第一的)。
我在管道中的“获取源”步骤中找到了“不同步源”复选框,这使得构建步骤不再获取源。但是我确实想为第一个构建步骤获取资源,所以现在我必须手动进行吗?
我试图在命令行任务中模仿 Get Sources 步骤的作用(根据日志),但我不能让它工作。我还尝试过通过命令行手动设置 git repo 的其他方式,并且对于某些配置它可以工作,但对于某些配置它没有。它应该适用于普通分支、嵌套分支和 PR 分支,但我觉得我在 git 的工作方式上遗漏了一些东西,以便让任务完成适当的工作。
如何以正确的方式为 Git 设置 Get Sources 步骤?
解决方案
如果有人在某个时候看到这个问题,并且想知道如何处理,这就是我最终得到的结果,以便能够从我们的 Policy 构建中容纳 Pull Reqest 分支。从管道中的命令行任务运行:
git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" clone --progress {REPOPATH} .
git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" fetch --force --progress origin +$(Build.SourceBranch):$(Build.SourceBranchName)
git checkout $(Build.SourceBranchName) --progress
推荐阅读
- iis - 具有域用户的IIS AppPool与域外的PC?
- python - Cannot center table on PDF-page when saving a matplotib table using backend_pdf PdfPages
- python - pyinstaller 找不到添加的文件 - Mac OS
- dictionary - 将 NLTK 树转换为字典数组
- node.js - Set Bearer Token to get authorization on Google Cloud Storage objects
- java - onActivityResult wont work after onBackPressed
- javascript - AngularJS - display a default option at the top of a dynamic select dropdown list?
- javascript - Exporting Mongoose methods in Node.js (TypeError: Cannot read property 'name' of null)
- azure - 安装在本地计算机上的 Azure VM 代理是否将数据发布到 Azure/与 azure 相关的任何服务/任何其他 URL?
- cordova - Ionic Cordova 平台添加 ios 失败,未加载库:/usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError)