azure - 将 Azure Pipelines 文件上传到 Onedrive 或类似文件
问题描述
在我的 Azure Devops 项目的管道中,我正在构建我的项目,然后将输出压缩到一个文件中。但是,目前,我无法访问此存档。我想将它上传到 OneDrive、Google Drive、Dropbox 或类似的云存储服务。但是我还没有找到一种简单的方法来做到这一点。谁能帮我?
解决方案
可以使用几种方法。如果在构建完成后只需要“访问” zip,那么Publish Build Artifact任务实际上就是您想要的。
这会将指定的文件发布为已完成的管道作业中的工件。
然后,您可以从 Build-Job 的详细视图中下载并使用管道生成的任何内容。
它可以配置为构建步骤,如下所示:
- 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 存储
推荐阅读
- swift - Swift 标准库中如何使用元数据符号?
- python - 快速获取 eth 块时间戳
- google-geocoding-api - 谷歌地理编码 api 返回状态:瑞士现有 ZIP 的“ZERO_RESULTS”
- javascript - Axios:基本身份验证不适用于 GET 请求
- openlayers - OpenLayers 5 会加载 WFS 功能,但不会在地图中添加和显示它们
- fullcalendar - Salesforce 1 上的 FullCalendar 间歇性加载错误
- json - 更新 1.1 在文件夹中运行 Go 文件和 JSON 文件时出现问题
- c# - 如何使用 reader.GetDateTime(i) 从 sqlite 数据库中获取 DateTime?
- twig - 如何检查 OctoberCMS 布局模板中是否存在页面属性
- jmeter - 用于 JMeter 的 Http2 Sampler 插件,带有重定向功能