Azure Pipeline MS 托管的 mac 代理:CopyFiles 任务需要很长时间

问题描述 投票:0回答:2

我最近将一些构建步骤迁移到 Microsoft 托管的 mac 代理。

创建我的应用程序的

.dmg
(大约 10MB)后,我将其复制到 Artifacts Staging 目录中。过去,在我的自托管 Mac 代理上,这需要几秒钟的时间,但现在始终需要大约 15 分钟!

这应该是本地文件复制操作,并且应该快得多。有没有人经历过类似的事情?

这是我的 YAML,以防万一

- job: MacOSApp
  pool:
      name: 'Azure Pipelines' # Use Microsoft Agent 
      vmImage: 'macOS-14'
  steps:
  - task: CopyFiles@2
      displayName: 'Copy App'
      inputs:
          SourceFolder: 'deploy/build-app/output'
          Contents: 'MyApp.dmg'
          TargetFolder: '$(build.artifactstagingdirectory)'
          CleanTargetFolder: false
          OverWrite: true
          flattenFolders: true
          preserveTimestamp: true

代理版

3.241.0
,图片版:
20240707.1

我尝试过但没有成功:

  • 在 macos-13 或 macos-12 上运行
  • 关闭
    flattenFolders
    preserveTimestamp
    选项

更新:我尝试添加

ArchiveFiles@2
步骤来创建.zip,然后复制它。在这种情况下,
ArchiveFiles@2
步骤会在 50 分钟后超时 (!)

azure macos azure-pipelines azure-pipelines-tasks azure-agent
2个回答
1
投票

我在我的组织(地理是欧洲)中对此进行了测试,并且

macOS-14
使用
CopyFiles@2
任务仅花费了2秒就复制了大约12MB的文件。

您可以尝试其他图像,

macOS-13
macOS-12
,看看是否需要很长时间。


0
投票

问题似乎是由于我的

.dmg
的内容引起的,其中包含
MyApp.app
和指向
/Applications
的符号链接(以便用户可以拖动App进行安装)。如果删除链接,复制操作将正常运行。

我找到了一个解决方法:使用 Finder“别名”而不是符号链接。

我在

bash
步骤中运行以下命令,以在当前工作目录中创建别名:

osascript -e 'tell application "Finder"' \
   -e "make alias file to (POSIX file \"/Applications\") \ 
      at (POSIX file \"$PWD\") with properties {name:\"Applications\"}" \
   -e 'end tell'

(仅供参考:我曾经这样创建符号链接:

ln -s /Applications Applications

© www.soinside.com 2019 - 2024. All rights reserved.