Warm tip: This article is reproduced from serverfault.com, please click

其他-Azure DevOps Pipeline AZ CLI上传批处理不推送文件

(其他 - Azure DevOps Pipeline AZ CLI upload-batch not pushing files)

发布于 2020-11-30 16:45:42

我正在尝试为我们的单页React应用程序建立一个简单的CI / CD流程。CI已设置为npm构建React应用程序,并将构建存档(.zip)发布到$(Build.ArtifactStagingDirectory)。

在此处输入图片说明

在此处输入图片说明

然后,触发CD过程以从工件.zip文件提取构建,并利用AZ CLI任务将文件推送到托管静态网站的Azure Blob存储帐户。

在此处输入图片说明

在此处输入图片说明

部署成功完成,但是没有文件发布到Blob存储帐户。我以为它与AZ CLI命令的--source标志有关,并且尝试利用$(Build.DefaultWorkingDirectory)/ $(Build.BuildId)环境变量作为源。

在此处输入图片说明

但是,这导致部署失败并显示以下错误。

The term 'Build.DefaultWorkingDirectory' is not recognized as the name of a cmdlet

我不确定DevOps目录的结构或AZ CLI如何通过--source标志与之交互,但是任何提示或建议将不胜感激。

Questioner
jamesamuir
Viewed
0
Kevin Lu-MSFT 2020-12-01 10:38:33

术语“ Build.DefaultWorkingDirectory”未被识别为cmdlet的名称

由于你正在使用CD Process启动azure cli部署,因此你似乎正在使用Release Pipeline

根据我的测试,我可以在Release Pipeline中重现此问题。

此问题的根本原因是该变量Build.DefaultWorkingDirectory无法在Release Pipeline中使用。

此变量只能在Build Pipeline(CI Process)中使用。

要解决此问题,你可以尝试使用变量:$(system.DefaultWorkingDirectory)

提取文件任务

在此处输入图片说明

Azure CLI脚本示例:

az storage blob upload-batch --account-name $(Name) --account-key $(key) -s $(system.DefaultWorkingDirectory)/$(build.buildid) --pattern * -d xxx

这是有关Release Pipeline中变量的文档

另一方面,除了Azure Cli脚本之外,你还可以直接使用Azure文件复制任务这样会更方便。