Azure DevOps pipeline release Error: No package found with specified pattern: D:\a\r1\a\**\*.zip

Azure DevOps pipeline release Error: No package found with specified pattern: D:\a\r1\a\**\*.zip

我在 Azure DevOps 存储库中有一个 ASP.NET 核心项目,它使用 DevOps 构建管道构建成功。但是,构建的版本总是失败并出现此错误:

Error: No package found with specified pattern: D:\a\r1\a***.zip

我已经检查过 and Q/As,但无法找到解决方案。

这是我的 azure.pipelines.yml 文件:

pool:
  vmImage: 'vs2017-win2016'

variables:
  buildConfiguration: 'Release'

steps:
  - script: dotnet build ".\src\MyProject.sln" --configuration $(buildConfiguration)
    displayName: 'dotnet build $(buildConfiguration)'
  - script: dotnet publish ".\src\MyProject.sln" --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)
     displayName: 'dotnet publish $(buildConfiguration)'
  - task: PublishBuildArtifacts@1
    pathtoPublish: '$(Build.ArtifactStagingDirectory)' 
    artifactName: 'drop' 
    publishLocation: 'Container'

更多详情

发布管道错误:

日志

初始化作业:

2018-11-02T05:31:14.7337716Z ##[section]Starting: Initialize job
2018-11-02T05:31:14.7338264Z Current agent version: '2.141.1'
2018-11-02T05:31:14.7365208Z Prepare release directory.
2018-11-02T05:31:14.7379296Z ReleaseId=4, TeamProjectId=ea66a316-xxxx-xxxx-xxxx-866fc594b83f, ReleaseDefinitionName=New release pipeline
2018-11-02T05:31:14.7461870Z Release folder: D:\a\r1\a
2018-11-02T05:31:14.7620235Z Environment variables available are below.  Note that these environment variables can be referred to in the task (in the ReleaseDefinition) by replacing "_" with "." e.g. AGENT_NAME environment variable can be referenced using Agent.Name in the ReleaseDefinition: 
            [AGENT_HOMEDIRECTORY] --> [C:\agents.141.1]
            [AGENT_ID] --> [2]
            [AGENT_JOBNAME] --> [Release]
            [AGENT_MACHINENAME] --> [factoryvm-az50]
            [AGENT_NAME] --> [Hosted Agent]
            [AGENT_OS] --> [Windows_NT]
            [AGENT_OSARCHITECTURE] --> [X64]
            [AGENT_RELEASEDIRECTORY] --> [D:\a\r1\a]
            [AGENT_ROOTDIRECTORY] --> [D:\a]
            [AGENT_SERVEROMDIRECTORY] --> [C:\agents.141.1\externals\vstsom]
            [AGENT_TEMPDIRECTORY] --> [D:\a\_temp]
            [AGENT_TOOLSDIRECTORY] --> [C:/hostedtoolcache/windows]
            [AGENT_VERSION] --> [2.141.1]
            [AGENT_WORKFOLDER] --> [D:\a]
            [AZURE_HTTP_USER_AGENT] --> [VSTS_70c99791-xxxx-xxxx-xxxx-5af143aa8244_release_1_4_4_2]
            [BUILD_BUILDID] --> [25]
            [BUILD_BUILDNUMBER] --> [20181102.1]
            [BUILD_BUILDURI] --> [vstfs:///Build/Build/25]
            [BUILD_DEFINITIONID] --> [1]
            [BUILD_DEFINITIONNAME] --> [MyProjectName]
            [BUILD_PROJECTID] --> [ea66a316-xxxx-xxxx-xxxx-866fc594b83f]
            [BUILD_PROJECTNAME] --> [MyProjectName]
            [BUILD_REPOSITORY_ID] --> [38420003-xxxx-xxxx-xxxx-6fd304fd324c]
            [BUILD_REPOSITORY_NAME] --> [MyProjectName]
            [BUILD_REPOSITORY_PROVIDER] --> [TfsGit]
            [BUILD_REQUESTEDFOR] --> [MyUserName]
            [BUILD_REQUESTEDFORID] --> [b08e40ca-xxxx-xxxx-xxxx-2b6fc6e350f8]
            [BUILD_SOURCEBRANCH] --> [refs/heads/master]
            [BUILD_SOURCEBRANCHNAME] --> [master]
            [BUILD_SOURCEVERSION] --> [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
            [BUILD_TYPE] --> [Build]
            [MSDEPLOY_HTTP_USER_AGENT] --> [VSTS_70c99791-xxxx-xxxx-xxxx-5af143aa8244_release_1_4_4_2]
            [PARAMETERS_CONNECTEDSERVICENAME] --> [9d9a15a6-xxxx-xxxx-xxxx-2cb822e6a67e]
            [PARAMETERS_DOCKERNAMESPACE] --> []
            [PARAMETERS_DOCKERREPOSITORY] --> []
            [PARAMETERS_IMAGESOURCE] --> [Registry]
            [PARAMETERS_RUNTIMESTACK] --> []
            [PARAMETERS_WEBAPPKIND] --> [app]
            [PARAMETERS_WEBAPPNAME] --> [myprojectname]
            [RELEASE_ARTIFACTS_DROP_BUILDID] --> [25]
            [RELEASE_ARTIFACTS_DROP_BUILDNUMBER] --> [20181102.1]
            [RELEASE_ARTIFACTS_DROP_BUILDURI] --> [vstfs:///Build/Build/25]
            [RELEASE_ARTIFACTS_DROP_DEFINITIONID] --> [1]
            [RELEASE_ARTIFACTS_DROP_DEFINITIONNAME] --> [myprojectname]
            [RELEASE_ARTIFACTS_DROP_PROJECTID] --> [ea66a316-xxxx-xxxx-xxxx-866fc594b83f]
            [RELEASE_ARTIFACTS_DROP_PROJECTNAME] --> [MyProjectName]
            [RELEASE_ARTIFACTS_DROP_REPOSITORY_ID] --> [38420003-xxxx-xxxx-xxxx-6fd304fd324c]
            [RELEASE_ARTIFACTS_DROP_REPOSITORY_NAME] --> [MyProjectName]
            [RELEASE_ARTIFACTS_DROP_REPOSITORY_PROVIDER] --> [TfsGit]
            [RELEASE_ARTIFACTS_DROP_REQUESTEDFOR] --> [MyUserName]
            [RELEASE_ARTIFACTS_DROP_REQUESTEDFORID] --> [b08e40ca-xxxx-xxxx-xxxx-2b6fc6e350f8]
            [RELEASE_ARTIFACTS_DROP_SOURCEBRANCH] --> [refs/heads/master]
            [RELEASE_ARTIFACTS_DROP_SOURCEBRANCHNAME] --> [master]
            [RELEASE_ARTIFACTS_DROP_SOURCEVERSION] --> [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
            [RELEASE_ARTIFACTS_DROP_TYPE] --> [Build]
            [RELEASE_ATTEMPTNUMBER] --> [2]
            [RELEASE_DEFINITIONENVIRONMENTID] --> [1]
            [RELEASE_DEFINITIONID] --> [1]
            [RELEASE_DEFINITIONNAME] --> [New release pipeline]
            [RELEASE_DEPLOYMENT_REQUESTEDFOR] --> [MyUserName]
            [RELEASE_DEPLOYMENT_REQUESTEDFOREMAIL] --> [myemail@mail.com]
            [RELEASE_DEPLOYMENT_REQUESTEDFORID] --> [b08e40ca-xxxx-xxxx-xxxx-2b6fc6e350f8]
            [RELEASE_DEPLOYMENT_STARTTIME] --> [2018-11-02 05:29:41Z]
            [RELEASE_DEPLOYMENTID] --> [8]
            [RELEASE_DEPLOYPHASEID] --> [8]
            [RELEASE_ENVIRONMENTID] --> [4]
            [RELEASE_ENVIRONMENTNAME] --> [Stage 1]
            [RELEASE_ENVIRONMENTS_STAGE_1_STATUS] --> [InProgress]
            [RELEASE_ENVIRONMENTURI] --> [vstfs:///ReleaseManagement/Environment/4]
            [RELEASE_PRIMARYARTIFACTSOURCEALIAS] --> [drop]
            [RELEASE_REASON] --> [Manual]
            [RELEASE_RELEASEDESCRIPTION] --> [Trying manually]
            [RELEASE_RELEASEID] --> [4]
            [RELEASE_RELEASENAME] --> [Release-4]
            [RELEASE_RELEASEURI] --> [vstfs:///ReleaseManagement/Release/4]
            [RELEASE_RELEASEWEBURL] --> [https://dev.azure.com/mycompany/ea66a316-xxxx-xxxx-xxxx-866fc594b83f/_release?releaseId=4&_a=release-summary]
            [RELEASE_REQUESTEDFOR] --> [MyUserName]
            [RELEASE_REQUESTEDFOREMAIL] --> [myemail@mail.com]
            [RELEASE_REQUESTEDFORID] --> [b08e40ca-xxxx-xxxx-xxxx-2b6fc6e350f8]
            [RELEASE_SKIPARTIFACTSDOWNLOAD] --> [False]
            [RELEASE_TRIGGERINGARTIFACT_ALIAS] --> []
            [REQUESTEDFORID] --> [b08e40ca-xxxx-xxxx-xxxx-2b6fc6e350f8]
            [SYSTEM] --> [release]
            [SYSTEM_ARTIFACTSDIRECTORY] --> [D:\a\r1\a]
            [SYSTEM_COLLECTIONID] --> [70c99791-xxxx-xxxx-xxxx-5af143aa8244]
            [SYSTEM_CULTURE] --> [en-US]
            [SYSTEM_DEFAULTWORKINGDIRECTORY] --> [D:\a\r1\a]
            [SYSTEM_ENABLEACCESSTOKEN] --> [False]
            [SYSTEM_HOSTTYPE] --> [release]
            [SYSTEM_JOBID] --> [22af3160-xxxx-xxxx-xxxx-2001a5e5d480]
            [SYSTEM_JOBPARALLELISMTAG] --> [Private]
            [SYSTEM_JOBPOSITIONINPHASE] --> [1]
            [SYSTEM_PARALLELEXECUTIONTYPE] --> [None]
            [SYSTEM_PLANID] --> [12163963-xxxx-xxxx-xxxx-dff7b6858fe8]
            [SYSTEM_SERVERTYPE] --> [Hosted]
            [SYSTEM_TASKDEFINITIONSURI] --> [https://dev.azure.com/mycompany/]
            [SYSTEM_TEAMFOUNDATIONCOLLECTIONURI] --> [https://dev.azure.com/mycompany/]
            [SYSTEM_TEAMFOUNDATIONSERVERURI] --> [https://vsrm.dev.azure.com/mycompany/]
            [SYSTEM_TEAMPROJECT] --> [MyProjectName]
            [SYSTEM_TEAMPROJECTID] --> [ea66a316-xxxx-xxxx-xxxx-866fc594b83f]
            [SYSTEM_TIMELINEID] --> [12163963-xxxx-xxxx-xxxx-dff7b6858fe8]
            [SYSTEM_TOTALJOBSINPHASE] --> [1]
            [SYSTEM_WORKFOLDER] --> [D:\a]
2018-11-02T05:31:15.2649945Z Download all required tasks.
2018-11-02T05:31:15.2814886Z Downloading task: AzureRmWebAppDeployment
2018-11-02T05:31:17.1807839Z ##[section]Finishing: Initialize job

下载神器:

2018-11-02T05:31:17.2269286Z ##[section]Starting: Download Artifacts
2018-11-02T05:31:17.2382502Z Creating artifacts directory: D:\a\r1\a
2018-11-02T05:31:17.2399560Z Created artifacts directory: D:\a\r1\a
2018-11-02T05:31:17.2399678Z Downloading artifact
2018-11-02T05:31:17.2414468Z Starting artifacts download...
2018-11-02T05:31:17.2445323Z Downloading linked artifact drop of type Build...
2018-11-02T05:31:17.2485179Z Ensuring artifact folder D:\a\r1\a\drop exists and is clean.
2018-11-02T05:31:17.2560775Z Preparing to get the list of available artifacts from build
2018-11-02T05:31:17.4683478Z Preparing to download artifact: drop
2018-11-02T05:31:17.4757997Z Artifact Type: ServerDrop
2018-11-02T05:31:17.4758675Z Downloading artifact from file container: #/2728848/drop to target: D:\a\r1\a\drop\drop
2018-11-02T05:31:17.4761540Z Parallel download limit: 4
2018-11-02T05:31:17.4761629Z Download buffer size: 8192
2018-11-02T05:31:17.5861772Z Caching items under 'drop' in the file container...
2018-11-02T05:31:17.6566410Z Caching complete. (70 ms)
2018-11-02T05:31:17.6722228Z Downloading file D:\a\r1\a\drop\drop\appsettings.Development.json
2018-11-02T05:31:17.6960764Z Downloading file D:\a\r1\a\drop\drop\appsettings.json
2018-11-02T05:31:17.6963293Z Downloading file D:\a\r1\a\drop\drop\dotnet-aspnet-codegenerator-design.dll
.
.
.
Lots of other JSON and DLL files.
.
.
.
2018-11-02T05:31:22.7080863Z Download complete.
2018-11-02T05:31:22.7086672Z 123 placed file(s): 122 downloaded, 1 empty
2018-11-02T05:31:22.7087329Z 29 MB downloaded at 5848 KB/sec. Download time: 00:00:05.0380618.
2018-11-02T05:31:22.7115052Z Downloaded linked artifact drop
2018-11-02T05:31:22.7115281Z Finished artifacts download
2018-11-02T05:31:22.7189498Z ##[section]Finishing: Download Artifacts

部署 Azure 应用服务:

2018-11-02T05:31:22.7214141Z ##[section]Starting: Deploy Azure App Service
2018-11-02T05:31:22.7468470Z
==============================================================================
2018-11-02T05:31:22.7468805Z Task         : Azure App Service Deploy
2018-11-02T05:31:22.7468901Z Description  : Update Azure App Services on Windows, Web App on Linux with built-in images or Docker containers, ASP.NET, .NET Core, PHP, Python or Node.js based Web applications, Function Apps, Mobile Apps, API applications, Web Jobs using Web Deploy / Kudu REST APIs
2018-11-02T05:31:22.7469033Z Version      : 3.4.13
2018-11-02T05:31:22.7469089Z Author       : Microsoft Corporation
2018-11-02T05:31:22.7469173Z Help         : [More information](https://aka.ms/azurermwebdeployreadme)
2018-11-02T05:31:22.7469246Z
==============================================================================
2018-11-02T05:31:23.6141335Z Got connection details for Azure App Service:'myproject'
2018-11-02T05:31:27.9431753Z ##[error]Error: No package found with specified pattern: D:\a\r1\a\**\*.zip
2018-11-02T05:31:29.9576685Z Successfully added release annotation to the Application Insight : myproject
2018-11-02T05:31:33.0440055Z Successfully updated deployment History at https://xxxxxxxxx.scm.azurewebsites.net/api/deployments/4154xxxxxx957
2018-11-02T05:31:33.0615049Z ##[section]Finishing: Deploy Azure App Service

我遇到了同样的问题,谷歌搜索后我发现了这个 answer

总而言之,该答案表明您需要转到构建部分并对其进行编辑。

您需要在 .yaml 文件的最后添加一行。

- task: PublishBuildArtifacts@1

排队新构建,你应该可以开始了!

对我们来说,这只是 "Package or Folder" 的部署任务的错误路径。 它与我们在管道选项卡上的内容不匹配(作为工件之一):

我在使用 Maven 的示例 Java 代码中遇到了同样的错误。为此,您还需要在 PublishBuildArtifacts

之前添加 CopyFiles 任务
trigger:
- master

pool:
  vmImage: 'Ubuntu-16.04'

steps:
- task: Maven@3
  inputs:
    mavenPomFile: 'pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.11'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
    goals: 'package'

- task: CopyFiles@2
  inputs:
    contents: '**/*.war'
    targetFolder: '$(build.artifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs:
    artifactName: 'war'
    pathToPublish: '$(build.artifactStagingDirectory)'

ASP.NET 项目:

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1

因为每个人都指出这个错误是因为构建任务没有配置。您需要将下面的 YAML 代码放在最后才能使其工作。

- task: PublishBuildArtifacts@1

您可以转到此 Azure tutorial 查看错误,我已指出确切的时间线以避免看到完整视频。

祝您编码愉快。

在我的例子中,我正在部署到 Azure 应用服务,我必须更改 packageForLinux 部分以使用来自 PathToPublish 的路径,默认情况下它是 System.DefaultWorkingDirectory

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

- task: AzureRmWebAppDeployment@4
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: 'Pay-As-You-Go ($(subscriptionId))'
    appType: 'webApp'
    WebAppName: 'webappname'
    deployToSlotOrASE: true
    ResourceGroupName: 'resourceGroupName'
    SlotName: 'production'
    packageForLinux: '$(Build.ArtifactStagingDirectory)/*.zip'

我 运行 遇到同样的错误,但我跳过了工件的下载。一旦我启用了工件的下载,部署就成功了。

发生这种情况是因为我们尚未发布工件或未正确引用

首先在 azure 中-pipelines.yml 进行此更改

- task: CopyFiles@2
      inputs:
        targetFolder: '$(Build.ArtifactStagingDirectory)' 
 
- task: PublishBuildArtifacts@1    
displayName: 'Publish Artifact: drop'
inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'

这会将文件从 repo 复制到工件并发布名为 drop

的工件

完成后 运行 管道

说到发布,

创建版本,添加工件

现在转到任务 > 单击下面显示的 3 点菜单以查看您拥有的工件。

您会看到如下所示的下拉菜单,找到您的神器,在本例中它将被放置

那么最重要的是,如果您还没有添加资源(环境),请先执行此操作,

别忘了保存!!!

下面附上照片以供参考。

如果您在 Release->Stage->Phase 1 中的 Agent Selection(Agent Pool)选择与 Pipeline->Phase 1 中的选择不同,您也会遇到此错误。例如,如果您有一个 on-用于管道的 prem 代理池和用于发布的 Azure Pipelines 代理池。本地代理可能在 c: 上有 agent_work 文件夹,而 Azure 构建代理可能在 d: 上有它,即使驱动器匹配,也不会有任何文件要部署,因为代理机器不同。

在我的例子中,它没有找到 .zip,因为我在发布管道中错误地选择了存储库作为工件而不是构建。

我在这里尝试了以下答案,但我仍然卡住了

Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.

我正在使用 vmImage: 'windows-latest'

所以对我有用的是:

- stage: deploy_dev
    displayName: 'Deploy Functions'
    jobs:
    - job: deploy1
        displayName: 'Deploy ${{ parameters.appName }} (${{ parameters.environment }})'
        pool:
        vmImage: 'windows-latest'
        steps:
        - task: NodeTool@0
            inputs:
            versionSpec: '10.x'
        - bash: |
                cd $appName
                npm install
            displayName: 'Install Dependencies'
            env:
            appName: ${{ parameters.appName }}
        - bash: |
                cd $appName
                npm run build
            displayName: 'Build Typescript'
            env:
            appName: ${{ parameters.appName }}
        - task: ArchiveFiles@2
            displayName: 'Compress App'
            inputs:
            rootFolderOrFile: '$(System.DefaultWorkingDirectory)/${{ parameters.appName }}'
            includeRootFolder: false
            archiveFile: '$(Build.ArtifactStagingDirectory)/${{ parameters.appName }}.zip'
        - task: PublishBuildArtifacts@1
            displayName: 'Publish Artifact'
            inputs:
            PathtoPublish: '$(Build.ArtifactStagingDirectory)'
            ArtifactName: 'drop'
            publishLocation: 'Container'
        - task: AzureFunctionApp@1
            displayName: 'Deploy ${{ parameters.appName }} to ${{ parameters.environment }}'
            inputs:
            azureSubscription: ${{ parameters.azureSubscriptionServiceConnectionName }}
            appType: functionAppLinux
            appName: ${{ parameters.appName }}-${{ parameters.environment }}
            package: $(Build.ArtifactStagingDirectory)/${{ parameters.appName }}.zip

## other stages, jobs and task

- stage: deploy_production
    displayName: 'Deploy App'
    jobs:
    - job: deploy1
        displayName: 'Deploying ${{ parameters.appName }}'
        pool:
        vmImage: 'windows-latest'
        steps:
        - download: current
            artifact: drop
        - task: AzureFunctionApp@1
            displayName: 'Deploy ${{ parameters.appName }}'
            inputs:
            azureSubscription: ${{ parameters.azureSubscriptionServiceConnectionName }}
            appType: functionAppLinux
            appName: ${{ parameters.appName }}-prd
            package: $(Pipeline.Workspace)/drop/${{ parameters.appName }}.zip

由于下载步骤和正确的路径,此解决方案有效