Grzegorz Orda
Grzegorz Orda

Reputation: 33

Azure DevOps Pipeline create empty zip

I would like to ask you how to solve a problem which I encountered during a creation of Azure pipeline.

Problem description:

Probably, "brick" responsible for building a project not create a bin folder so I finally get empty zip. Despite of the fact all test were successfully completed(passed).

My yaml file:

trigger:
- main

pool:
  vmImage: 'windows-latest'

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

steps:
- task: NuGetToolInstaller@1

- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '3.1.x'

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

- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '**/XXX.EvaluateFunction.csproj'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.BinariesDirectory)'
    includeRootFolder: true
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/Evaluate.zip'
    replaceExistingArchive: true

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

 

Upvotes: 3

Views: 1169

Answers (1)

Walter
Walter

Reputation: 3058

According to the document about predefined variables: Build.BinariesDirectory is the local path on the agent you can use as an output folder for compiled binaries. Your yaml file does not use it as an output folder so that this folder is empty. You can use Build.BinariesDirectory as an output folder in .NET Core task: arguments: '--output $(Build.BinariesDirectory)'

Here is my complete sample:

trigger:
- main

pool:
  vmImage: 'windows-latest'

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

stages:
- stage: Build
  jobs:
  - job: Build
    steps:
    - task: DotNetCoreCLI@2
      inputs:
        command: 'restore'
        projects: '**/*.csproj'
        feedsToUse: 'select'

    - task: DotNetCoreCLI@2
      inputs:
        command: 'build'
        projects: '**/*.csproj'
        arguments: '--configuration $(BuildConfiguration)'
    - task: DotNetCoreCLI@2
      inputs:
        command: 'publish'
        publishWebProjects: true
        arguments: '--configuration $(BuildConfiguration) --output $(Build.BinariesDirectory)'
    
    - task: ArchiveFiles@2
      inputs:
       rootFolderOrFile: '$(Build.BinariesDirectory)'
       includeRootFolder: true
       archiveType: 'zip'
       archiveFile: '$(Build.ArtifactStagingDirectory)/Evaluate.zip'
       replaceExistingArchive: true
    
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'

You can also refer to the sample about create your first .NET Core pipeline.

Upvotes: 3

Related Questions