Azure devops Azure DevOps多级管道错误:未找到具有指定模式的包:/home/vsts/work/1/s/***.zip-如何修复?

Azure devops Azure DevOps多级管道错误:未找到具有指定模式的包:/home/vsts/work/1/s/***.zip-如何修复?,azure-devops,azure-pipelines,azure-pipelines-release-pipeline,azure-pipelines-build-task,azure-pipelines-yaml,Azure Devops,Azure Pipelines,Azure Pipelines Release Pipeline,Azure Pipelines Build Task,Azure Pipelines Yaml,我已经成功地将Azure DevOps构建(yaml)和发布管道(Classic)部署到Azure 我试图在多阶段Yaml管道中转换这两个单独的步骤 在Azure应用程序服务部署任务上(AzureRmWebAppDeployment@4),我收到以下错误: No package found with specified pattern: /home/vsts/work/1/a/*.zip 下面是我的多级Yaml管道 stages: - stage: Build jobs:

我已经成功地将Azure DevOps构建(yaml)和发布管道(Classic)部署到Azure

我试图在多阶段Yaml管道中转换这两个单独的步骤

在Azure应用程序服务部署任务上(
AzureRmWebAppDeployment@4
),我收到以下错误:

No package found with specified pattern: /home/vsts/work/1/a/*.zip
下面是我的多级Yaml管道

stages:
  - stage: Build
    jobs:
    - job: 'Build'
      pool:
        vmImage: 'windows-latest'

      variables:
        buildConfiguration: 'Release'

      steps:
      - task: DotNetCoreCLI@2
        displayName: Restore
        inputs:
          command: restore
          projects: '**/*.csproj'
          vstsFeed: 'dd55642d-8943-411f-8856-9714dd0da8af'

      - task: DotNetCoreCLI@2
        displayName: Build
        inputs:
          projects: '**/*.csproj'
          arguments: '--configuration $(buildConfiguration)'

      - task: DotNetCoreCLI@2
        displayName: Test
        inputs:
          command: test
          projects: '**/*[Tt]ests/*.csproj'
          arguments: '--configuration $(buildConfiguration)'

      - task: DotNetCoreCLI@2
        displayName: Publish
        inputs:
          command: publish
          publishWebProjects: false
          projects: '**/Tools.Client.Blazor.ServerApp.csproj'
          arguments: '--configuration $(buildConfiguration) --output $(build.artifactstagingdirectory)'

      - task: PublishSymbols@2
        displayName: 'Publish symbols path'
        inputs:
          SearchPattern: '**\bin\**\*.pdb'
          PublishSymbols: false
        continueOnError: true

      - task: CopyFiles@2
        displayName: 'Copy Files to: $(build.artifactstagingdirectory)\AzureDeploy'
        inputs:
          SourceFolder: AzureDeploy
          TargetFolder: '$(build.artifactstagingdirectory)\AzureDeploy'

      - task: PublishBuildArtifacts@1
        displayName: 'Publish Artifact: drop'
        inputs:
          PathtoPublish: '$(build.artifactstagingdirectory)'
        condition: succeededOrFailed()
        
  - stage: Systest
    jobs:
    - job: 'Systest'
      variables:       
        resourceGroupName: '$(appName)-rg-$(environment)'
        location: 'East US'
        appServiceName: '$(appName)-svc-$(environment)'
        appInsightsName: '$(appName)-ins-$(environment)'
        appServicePlanName: '$(appName)-asp-$(environment)'
        appName: 'tools'
        owner: 'Pod'
        environment: 'systest'    

      steps:
      - task: AzureResourceManagerTemplateDeployment@3
        displayName: 'ARM Template deployment: Resource Group scope'
        inputs:
          azureResourceManagerConnection: 'Dev/Test Connection'
          subscriptionId: ''
          resourceGroupName: '$(resourceGroupName)'
          location: '$(location)'
          csmFile: '$(System.DefaultWorkingDirectory)/AzureDeploy/Tools.azureDeploy.json'
          csmParametersFile: '$(System.DefaultWorkingDirectory)/AzureDeploy/Tools.azureDeploy.parameter.json'
          overrideParameters: '-appServiceName "$(appServiceName)" -appInsightsName "$(appInsightsName)" -appServicePlanName "$(appServicePlanName)" -owner "$(owner)" -environment "$(environment)" -location "$(location)"'

      - task: AzureRmWebAppDeployment@4
        displayName: 'Azure App Service Deploy: $(appServiceName)'
        inputs:
          ConnectionType: 'AzureRM'
          azureSubscription: ''
          appType: 'webApp'
          WebAppName: '$(appServiceName)'
          packageForLinux: '$(Build.ArtifactStagingDirectory)/*.zip'

如果您有任何帮助/建议,我们将不胜感激。

在发布期间,它不会像这样工作。在发布过程中,可以使用“$(System.DefaultWorkingDirectory)/\u Releasepipelinename/drop/.zip”路径,而不是使用路径“/home/vsts/work/1/a/.zip”,该路径将不会像这样工作。不使用路径“/home/vsts/work/1/a/.zip”,此路径可以使用“$(System.DefaultWorkingDirectory)/\u Releasepipelinename/drop/.zip”

因为它是两个阶段,第二阶段没有第一阶段中发布的文件,所以需要下载它

您可以使用而不是构建工件

管道工件提供了一种在多个阶段之间共享文件的方法 管道或不同管道之间。它们通常是输出 需要由另一个作业或 部署。工件与它们在其中生成的运行相关联 并在运行完成后保持可用

要发布(上载)当前运行的工件,请执行以下操作:

steps:
- publish: $(build.artifactstagingdirectory)
  artifact: drop
在第二阶段,下载工件:

steps:
- download: current
  artifact: drop

您也可以通过
DownloadBuildArtifacts@0
task.

因为它是两个阶段,第二个阶段没有您在第一个阶段中发布的文件,所以您需要下载它

您可以使用而不是构建工件

管道工件提供了一种在多个阶段之间共享文件的方法 管道或不同管道之间。它们通常是输出 需要由另一个作业或 部署。工件与它们在其中生成的运行相关联 并在运行完成后保持可用

要发布(上载)当前运行的工件,请执行以下操作:

steps:
- publish: $(build.artifactstagingdirectory)
  artifact: drop
在第二阶段,下载工件:

steps:
- download: current
  artifact: drop

您也可以通过
DownloadBuildArtifacts@0
任务。

我是根据你的建议来完成这项任务的。谢谢你给我指出了正确的方向。我是根据你的建议来做这件事的。谢谢你给我指出了正确的方向。强烈建议不要使用硬编码目录。使用提供的变量/任务是最佳实践。这种方法假设工件将被命名为默认的放置文件夹名。强烈建议避免使用硬编码目录。使用提供的变量/任务是最佳实践。这种方法假设工件将被命名为默认的放置文件夹名称。