gpt4 book ai didi

azure - 在 Azure Devops 中,有没有办法使构建/工作目录在作业之间持久存在?

转载 作者:行者123 更新时间:2023-12-02 05:58:56 26 4
gpt4 key购买 nike

我在 Azure Devops 中有一个管道,我目前正在尝试加快它的速度。目前,这是一个运行一堆步骤/任务的作业。基本大纲是 1:构建,2:测试运行,3:将符号文件发布到符号服务器,4:nuget 包打包和推送,5:发布工件。

3、4、5,仅依赖于正确的构建并在技术上同时运行。问题是,当我尝试将它们分解为单独的作业(取决于构建的完成)时,它不起作用,因为在构建期间创建的目录在其他作业运行时不可用。

有没有办法让工作目录持续存在,直到管道中的所有作业完成为止?

最佳答案

Is there a way to make the working directories persist until all jobsin the pipeline are finished?

(如果您使用的是 Microsft-Hosted agent) ,如果您使用 self-hosted agent,则 .

对于托管代理:该文档指出,每次运行管道时,您都会获得一个新的虚拟机。但实际上每次运行作业时,您都会获得一个新的虚拟机。这就是为什么第二个作业无法访问第一个作业的工作目录,它们是不同的虚拟机。

因此,如果您希望两个作业都有一个工作目录,则只能使用自托管代理。您可以查看this issue更多细节。由于这两个作业应该在同一个 self 代理中运行,我建议使用 demands指定您要选择的代理。

注意:使用托管代理时我们无法保留工作目录,但我们可以使用 Publish Artifact task and Download Artifact task在不同代理的不同作业之间共享文件。示例:

jobs:
- job: MyJob1
continueOnError: true
steps:
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(System.DefaultWorkingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
- job: MyJob2
continueOnError: true
dependsOn: MyJob1
steps:
- download: none
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.DefaultWorkingDirectory)'

I have a pipeline in Azure Devops and I'm currently trying to speed itup.

不建议将它们分成单独的作业,我认为这实际上不会加快进程。您的步骤3.4.5取决于步骤1.2的完成,如果您在Job1中添加1.2并在Job2中添加步骤3.4.5,您仍然无法进行并行作业来加速它,因为Job2必须等待 直到 Job1 完成。

关于azure - 在 Azure Devops 中,有没有办法使构建/工作目录在作业之间持久存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63831922/

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