gpt4 book ai didi

azure - 自托管 Azure 代理 - 如何配置管道以共享同一构建文件夹

转载 作者:行者123 更新时间:2023-12-02 06:27:03 25 4
gpt4 key购买 nike

我们在本地服务器上有一个自托管构建代理。

我们通常拥有大型代码库,过去使用 TFS2013 构建代理遵循此机制:

  • 每日签到已建立到 c:\work\tfs\(大约需要 5 分钟)
  • 每天晚上都会运行一个批处理文件,使用相同的源(它们已经是 CI 构建中的“最新”版本)对这些文件夹进行相同的构建,并构建安装程序。将文件复制到网络位置,并向团队发送一封电子邮件,详细说明构建成功/失败的情况。 (耗时约40分钟)

关键是对于夜间构建,不需要获取最新的源,并且所需的磁盘空间不会增加太多。仅根据安装人员的尺寸。

为了使用 Azure Devops 复制此内容,我创建了两个管道。在经典编辑器中使用 MSBuild 任务执行 CI 的一个管道 - 效果很好经典编辑器中的另一个管道运行我们现有的 powershell 脚本,计划于晚上 9 点 - 效果很好

但是,即使我的代理不支持并行构建,发生的情况是:CI 管道的文件夹是 c:\work\1\Nightly 构建文件夹为 c:\work\2\

这使我们需要的磁盘空间量增加了一倍(10GB 到 20GB)它们是相同的代码文件,只是构建方式不同。

我一直在努力寻找一种方法来对代理说“请对所有管道使用相同的源文件夹”

这是什么设置,否则我们必须向服务提供商支付额外的 GB 存储费用。

或者我是否需要将我的经典管道更改为 Yaml 并以某种方式有条件地分支构建,以便它知道它正在被安排并做一些不同的事情?或者,停止使用 Pipeline 进行计划构建,并像以前一样使用 Windows 中的任务计划程序?

(我确实尝试过寻找同样的问题 - 我确信我不是唯一的一个)。

最佳答案

工作文件夹c:\work\1\c:\work\2\的编号“1”“2”...“6”。 .. 构建代理中的 c:\work\6\ 代表特定的管道。

Agent.BuildDirectory

The local path on the agent where all folders for a given build pipeline are created. This variable has the same value as Pipeline.Workspace. For example: /home/vsts/work/1

如果您有两个管道,也会有两个相应的工作文件夹。这是一种异常(exception)行为。我们无法配置管道来共享相同的构建文件夹。这是设计好的。

如果您需要使用更少的磁盘空间来节省成本,请停止使用 Pipeline 进行计划构建,像以前一样使用 Windows 中的任务计划程序是一个更好的方法。

关于azure - 自托管 Azure 代理 - 如何配置管道以共享同一构建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62307735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com