将 Azure Pipelines 文件上传到 Onedrive 或类似的

Upload Azure Pipelines File to Onedrive or similar

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

使用 Publish Artifact 任务发布您的构建输出。这会将其附加到构建结果。您将能够在发布定义等下游流程中下载或使用该文件。

文档可用 on docs.microsoft.com

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

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

可以配置成build step,像这样:

- 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 中,而是 use secret variables


也可以使用 AzureFileCopy 任务将项目上传到 Azure 存储


如果您想要更多控制,请将脚本添加到您的存储库中以执行上传(example script) and execute that as a Command Line 任务。