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

时间:2018-09-22 07:44:08

标签: azure file-upload azure-devops azure-pipelines cloud-storage

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

2 个答案:

答案 0 :(得分:1)

使用“发布工件”任务来发布构建输出。它会附加到构建结果中,供您下载或在下游过程(如发行版定义)中使用。

可以在https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/publish-build-artifacts?view=devops

找到

docs

答案 1 :(得分:0)

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

这会将指定的文件作为已完成管道作业中的工件发布。 Where to find the artifacts in the UI
然后,您可以从 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) 并将其作为 Command Line 任务执行。