Azure Pipeline 完成后看不到我的构建工件

Can't see my build artifacts after Azure Pipeline finished

我有一个非常简单的管道 yaml(见下文)

我想要的是在我的解决方案中构建项目,并保留创建的工件,以便我可以在单独的发布管道中将它们发布到 Azure。

我记得以前做过类似的事情,当它起作用时,我可以在成功构建列表项旁边看到一个用于查看构建工件的选项。但是我再也看不到这样的东西了。

我在这里错过了什么?

管道:

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

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

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: '**/*.csproj'
- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '**/*.csproj'
    zipAfterPublish: true

您必须发布您的构建工件,使用此任务:

之后您可以在摘要下查看您的工件:

您可以添加类似的内容(复制到工件文件夹并发布):

- task: CopyFiles@2
       displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
       inputs:
       SourceFolder: '$(system.defaultworkingdirectory)'
       Contents: '**\bin$(BuildConfiguration)\**'
       TargetFolder: '$(build.artifactstagingdirectory)'
       condition: succeededOrFailed()

- task: PublishBuildArtifacts@1
       displayName: 'Publish Artifact: drop'
       inputs:
       PathtoPublish: '$(build.artifactstagingdirectory)'
       condition: succeededOrFailed()

尝试添加 CopyFiles 任务和 PublishBuildArtifacts 任务:

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

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: '**/*.csproj'
    feedsToUse: 'config'
- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '**/*.csproj'
    zipAfterPublish: true

- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    SourceFolder: '$(agent.builddirectory)'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'

我的回答基于 ms 文档(所有详细信息都可用 https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/dotnet-core?view=azure-devops)。

有三个基于 DotNetCoreCLI 的任务(恢复、构建和发布到正确的目录)和最后一个将工件发布到提要的任务。

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

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

steps:

- task: DotNetCoreCLI@2
  displayName: Restore
  inputs:
    command: restore
    projects: '**/*.csproj'

- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    command: build
    projects: '**/*.csproj'
    arguments: '--configuration $(buildConfiguration)' # Update this to match your need

- task: DotNetCoreCLI@2
  displayName: Package
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.

- task: PublishBuildArtifacts@1
  displayName: "Publish as artifact"
  inputs:
    pathtoPublish: '$(Build.ArtifactStagingDirectory)' 
    artifactName: 'myWebsiteName'