我们在本地服务器上有一个自托管的构建代理。
我们通常有一个大型的代码库,并且过去使用TFS2013构建代理遵循此机制:
关键在于,对于每晚进行的构建,无需获取最新资源,所需的磁盘空间不会增加太多。仅取决于安装程序的大小。
为了使用Azure Devops复制此文件,我创建了两个管道。 使用经典编辑器中的MSBuild任务完成CI的一条管道-效果很好 经典编辑器中的另一个管道可以运行我们现有的powershell脚本,该管道计划在晚上9点运行-效果很好
但是,即使我的代理人不支持并行构建,发生的情况还是: CI管道的文件夹为c:\ work \ 1 \ 每晚构建文件夹为c:\ work \ 2 \
这使我们所需的磁盘空间增加了一倍(10gb至20gb) 它们是相同的代码文件,只是生成方式不同。
我一直在努力寻找一种对代理说“请对所有管道使用相同的sources文件夹”的方法
这是什么设置,因为我们必须向服务提供商支付额外的GB存储空间。
还是我需要将我的经典管道更改为Yaml并以某种方式有条件地分支该构建,以便它知道已在计划中并执行其他操作? 或者也许停止使用管道进行计划的构建,并像以前一样在Windows中使用任务计划程序?
(我确实尝试寻找相同的问题-我敢肯定我不是唯一的一个)。
答案 0 :(得分:1)
有“ workingDirectory”指令可用于在管道中运行脚本。此链接包含有关此内容的详细信息-https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/command-line?view=azure-devops&tabs=yaml
答案 1 :(得分:0)
构建代理中代表特定管道的工作文件夹c:\work\1\
,c:\work\2\
... c:\work\6\
中的数字'1''2'...'6'。
代理上的本地路径,其中给定版本的所有文件夹 创建管道。该变量的值与 Pipeline.Workspace。例如:/ home / vsts / work / 1
如果有两个管道,则还将有两个对应的工作文件夹。这是一种例外行为。我们无法将管道配置为共享相同的构建文件夹。这是设计使然。
如果您需要使用更少的磁盘空间来节省成本,请避免停止使用管道进行计划的构建,并像以前一样在Windows中使用任务计划程序是一种更好的方法。