我正在用 C# 构建 Azure 函数,并希望使用管道进行部署。 我构建一次,测试,然后发布。 然后,对于每个 ENV,我运行一个二头肌文件来设置基础架构,并在我希望将发布的函数代码部署到(单个)函数应用程序之后立即运行。
我尝试从已发布的 zip 文件进行部署时遇到错误。找不到该文件。我做错了什么?
发布文件示例:
[命令]/usr/bin/zip -r /home/vsts/work/1/s/build272.zip
(日志行看起来很合理)
发现错误:
##[错误]错误:找不到具有指定模式的包:/home/vsts/work/1/a/*.zip
检查是否提到了包
请注意,我们从 /1/s 发布并尝试在 /1/a 中找到它
构建已“附加”工件为“drop/build272.zip” (11MB的文件看起来还算合理)
要发布的 yaml 行:
- task: DotNetCoreCLI@2
displayName: "dotnet publish"
inputs:
command: publish
arguments: '--configuration Release --output publish_output'
projects: 'src/**/*.csproj'
publishWebProjects: false
modifyOutputPath: false
zipAfterPublish: false
- task: ArchiveFiles@2
displayName: "Archive files (into zip)"
inputs:
rootFolderOrFile: "$(System.DefaultWorkingDirectory)/publish_output"
includeRootFolder: false
archiveFile: "$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip"
- task: PublishBuildArtifacts@1
displayName: "Publish build artifacts"
inputs:
PathtoPublish: '$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip'
要部署的 yaml 行:
- task: AzureFunctionApp@1 # Add this at the end of your file
displayName: 'Deploy Function code to FunctionApp Slot'
inputs:
azureSubscription: 'ServiceConnection'
appType: functionAppLinux # default is functionApp
appName: 'f2404dev-app'
package: '$(System.ArtifactsDirectory)/*.zip'
看来你漏掉了下载神器的步骤
- task: DownloadBuildArtifacts@1
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
itemPattern: '**/*.zip'
downloadPath: '$(System.ArtifactsDirectory)'
参考:https://sterl.org/2023/03/azure-devops-function-app-deployment-no-package-found/