我正在尝试为我们的单页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标志与之交互,但是任何提示或建议将不胜感激。
术语“ 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文件复制任务。这样会更方便。
您确定我们不能
Build.DefaultWorkingDirectory
在发布管道中使用吗?这是Build管道中的预定义变量。在发布管道中,将无法识别它。如果可能的话,您可以尝试一下。
i.stack.imgur.com/ns5o1.jpg当在我的发布管道中时,此方法可以工作...
您使用
system.DefaultWorkingDirectory
而不是Build.DefaultWorkingDirectory
,对吗?好吧,现在我明白了,谢谢你,凯文。