我的解決方案中有多個 .net mvc 應用程式和 1 個 .net azure 函式應用程式。我有一個用于部署的 azure-pipeline.yml 檔案。Mvc 應用程式轉到應用程式服務,Function 應用程式轉到 azure 函式。
現在,當我在 azure devops 上運行管道時,它會將 webapps 部署到相應的應用服務,但無法部署 azure 函式并出現錯誤:
##[error]Error: No package found with specified pattern: D:\a\1\a**\FunctionApp.zip
檢查任務中提到的包是否在構建或上一階段作為工件發布并下載在目前的作業中。整理:AzureFunctionApp
但我可以在構建工件中看到 FunctionApp.zip。
這是我的 yml:
trigger:
- master
- feature/*
- hotfix/*
pool:
vmImage: 'windows-2019'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
isMaster: $[eq(variables['Build.SourceBranch'], 'refs/heads/master')]
isDeployableBranch: $[eq(variables.isMaster, true)]
stages:
- stage: Build
displayName: Build and Test Package
jobs:
- job: Build_Test_Publish
displayName: Build_Test_Publish
steps:
- task: NuGetToolInstaller@1
- task: VisualStudioTestPlatformInstaller@1
displayName: 'Install Visual Studio Test Platform'
inputs:
packageFeedSelector: 'nugetOrg'
versionSelector: 'latestStable'
- task: NuGetCommand@2
displayName: 'Restore NuGet packages'
inputs:
command: 'restore'
restoreSolution: '$(solution)'
feedsToUse: 'config'
nugetConfigPath: './'
externalFeedCredentials: 'Telerik NuGet'
- task: VSBuild@1
displayName: 'Build Solution'
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=$(isDeployableBranch) /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
displayName: 'Run Unit Tests'
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
condition: and(succeeded(), eq(variables.isDeployableBranch, true))
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
- stage: Deploy
displayName: Deploy
condition: and(succeeded(), eq(variables.isDeployableBranch, true))
jobs:
- deployment: DeployWebApp1
displayName: Deploy Web App 1
environment: 'PROD'
strategy:
runOnce:
deploy:
steps:
- checkout: none
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'MyResourcegroup'
appType: 'webApp'
WebAppName: 'webapp1'
packageForLinux: '$(System.ArtifactsDirectory)/**/WebApp1.zip'
- deployment: DeployWebApp2
displayName: Deploy Web App 2
environment: 'PROD'
strategy:
runOnce:
deploy:
steps:
- checkout: none
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'MyResourceGroup'
appType: 'webApp'
WebAppName: 'webapp2-motionkinetic'
packageForLinux: '$(System.ArtifactsDirectory)/**/WebApp2.zip'
- deployment: DeployFunction
displayName: Deploy Function
environment: 'PROD'
strategy:
runOnce:
deploy:
steps:
- checkout: none
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- task: AzureFunctionApp@1
inputs:
azureSubscription: 'MyResourceGroup'
appType: functionApp
appName: 'MyFunction'
package: '$(System.ArtifactsDirectory)/**/FunctionApp.zip'
我認為問題出在 yml 檔案本身。我究竟做錯了什么?
uj5u.com熱心網友回復:
在部署階段之前我沒有看到 FunctionApp.zip。
似乎沒有人將檔案存檔為“FunctionApp.zip”(從您的 YAML 中我看不到它)。
下面的 YAML 將起作用:
trigger:
- main
pool:
vmImage: 'windows-latest'
stages:
- stage: C
displayName: C
jobs:
- job: xxx
displayName: xxxOfC
steps:
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
includeRootFolder: true
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/FunctionApp.zip'
replaceExistingArchive: true
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
- stage: D
displayName: Deploy
jobs:
- job: xxx
displayName: xxxOfD
steps:
- task: DownloadBuildArtifacts@1
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- task: AzureFunctionApp@1
inputs:
azureSubscription: 'testbowman_in_AAD'
appType: 'functionApp'
appName: 'testbowman'
package: '$(System.ArtifactsDirectory)/**/*.zip'
deploymentMethod: 'auto'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/488388.html
標籤:。网 天蓝色 天蓝色的devops yaml 天蓝色管道
