pool:
  vmImage: 'windows-2022'

variables:
  Prerelease: ''
  buildId: "1$(Build.BuildId)"
  buildProjects: '**/src/**/*.csproj'

steps:
# Print buildId
- script: |
    echo "BuildId = $(buildId)"
  displayName: 'Print buildId'

- task: UseDotNet@2
  displayName: 'Use .NET 8'
  inputs:
    packageType: sdk
    version: 8.0.x

# Based on https://whereslou.com/2018/09/versioning-and-publishing-nuget-packages-automatically-using-azure-devops-pipelines/
- task: DotNetCoreCLI@2
  displayName: Build Release
  inputs:
    command: 'build'
    arguments: /p:Configuration=Release # https://github.com/MicrosoftDocs/vsts-docs/issues/1976
    projects: $(buildProjects)

- task: DotNetCoreCLI@2
  displayName: Pack
  condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) # Do not run for PullRequests
  inputs:
    command: pack
    configuration: 'Release'
    packagesToPack: $(buildProjects)
    nobuild: true
    packDirectory: '$(Build.ArtifactStagingDirectory)/packages'
    verbosityPack: 'normal'

- task: PublishBuildArtifacts@1
  displayName: Publish Artifacts
  condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) # Do not run for PullRequests
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'

- task: DotNetCoreCLI@2
  displayName: Push to NuGet
  condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) # Do not run for PullRequests
  inputs:
    command: custom
    custom: nuget
    arguments: push $(Build.ArtifactStagingDirectory)\packages\*.nupkg -n -s https://api.nuget.org/v3/index.json -k $(NuGetKey) --skip-duplicate