首页 > 解决方案 > 将 Azure Pipelines 文件上传到 Onedrive 或类似文件

问题描述

在我的 Azure Devops 项目的管道中,我正在构建我的项目,然后将输出压缩到一个文件中。但是,目前,我无法访问此存档。我想将它上传到 OneDrive、Google Drive、Dropbox 或类似的云存储服务。但是我还没有找到一种简单的方法来做到这一点。谁能帮我?

标签: azurefile-uploadazure-devopsazure-pipelinescloud-storage

解决方案


可以使用几种方法。如果在构建完成后只需要“访问” zip,那么Publish Build Artifact任务实际上就是您想要的。

这会将指定的文件发布为已完成的管道作业中的工件。 然后,您可以从 Build-Job 的详细视图中下载并使用管道生成的任何内容。在 UI 中哪里可以找到工件

它可以配置为构建步骤,如下所示:

- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)' 
    artifactName: 'myCoolZip-$(Date:yyyyMMdd)' 

其中pathToPublish是您要发布的工件的路径。通常将编译后的资源复制到该ArtifactStagingDirectory目录,然后发布该目录的内容。如果有许多步骤都对最终工件有贡献,这会更容易。


有几个社区支持的任务允许将文件上传到云服务:

但是,由于 Azure 倾向于定期更新,因此根据维护者的不同,这些可能不会那么面向未来。


如果您仍想将 zip 上传到更易于访问的云中,最简单的方法是使用FtpUpload任务。

- task: FtpUpload@2
  inputs:
    credentialsOption: inputs
    serverUrl: ftp://someFtpServer.com
    username: yourUsername
    password: yourPassword
    rootDirectory: '$(Build.ArtifactStagingDirectory)' 
    remoteDirectory: '/upload/$(Build.BuildId)/' 
    # Depending on your certificate you might need to set this to true
    # trustSSL: true

但是,不要将密码和用户名直接放入您的 YAML,而是使用秘密变量


也可以使用AzureFileCopy任务将工件上传到 Azure 存储


如果您想要更多控制,请向您的存储库添加一个执行上传的脚本(示例脚本)并将其作为命令行任务执行。


推荐阅读