将部署结果从 Azure Mac 托管代理复制到私有 Windows 代理

Copy deployment result from an Azure Mac hosted agent to a private Windows agent

在 Azure DevOps 中,我有一个发布定义,它执行命令 productbuild --component $(System.DefaultWorkingDirectory)/$(RELEASE.PRIMARYARTIFACTSOURCEALIAS)/My/Folder.app/ /Applications My.pkg 以从构建的工件开始创建一个新的 pkg 文件。此命令在 Mac 托管代理上执行。

现在我需要将 pkg 放在我有 Azure DevOps 专用代理的 Windows 机器的特定路径上。我的问题是从 Mac 托管机器到具有私有代理的私有机器的复制操作。有什么办法可以完成这个任务吗?

谢谢

由于您无法将 pkg 创建移动到构建管道,因此您需要将其上传到例如 Blob 存储(如果您已经使用 Azure,这应该不是问题),或者上传到 FTP(它可能是否在您的主机代理上)那么您应该触发 pipeline/release(使用此 extension 并传递上传 pkg 文件的 url/location。

您可以使用 Universal Package task 将 pkg 文件发布到发布管道中的 Azure 工件源。然后将 pkg 文件下载到您的私人机器上。请参阅以下步骤:

1,从 Azure devops 门户创建 Azure Artifacts feed

2,在您的发布管道中添加通用包任务,将您的 pkg 文件作为通用包发布到上述工件提要中。

- task: UniversalPackages@0
  displayName: 'Universal publish'
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)/package.pkg'
    vstsFeedPublish: 'FeedId'
    vstsFeedPackagePublish: 'package_name'

3、在发布管道阶段添加代理作业。并在您的私人代理上将其配置为 运行。

然后你可以在这个代理作业中添加通用包任务来下载这个pkg文件到你的私人机器上。