83 lines
2.7 KiB
YAML
83 lines
2.7 KiB
YAML
parameters:
|
|
- name: buildConfiguration
|
|
type: string
|
|
- name: pool
|
|
type: object
|
|
default: []
|
|
- name: dependsOn
|
|
type: object
|
|
default: null
|
|
- name: artifactStem
|
|
type: string
|
|
default: ''
|
|
- name: jobName
|
|
type: string
|
|
default: BuildAndPublishPGONuget
|
|
|
|
jobs:
|
|
- job: ${{ parameters.jobName }}
|
|
${{ if ne(length(parameters.pool), 0) }}:
|
|
pool: ${{ parameters.pool }}
|
|
dependsOn: ${{ parameters.dependsOn }}
|
|
displayName: Package and Publish PGO Databases
|
|
|
|
variables:
|
|
artifactsPath: $(Build.SourcesDirectory)\Artifacts
|
|
pgoToolsPath: $(Build.SourcesDirectory)\build\PGO
|
|
nuspecPath: $(pgoToolsPath)\NuSpecs
|
|
nuspecFilename: PGO.nuspec
|
|
|
|
steps:
|
|
- checkout: self
|
|
clean: true
|
|
# It is important that this be 0, otherwise git will not fetch the branch ref names that the PGO rules require.
|
|
fetchDepth: 0
|
|
submodules: false
|
|
persistCredentials: false
|
|
|
|
- task: DownloadPipelineArtifact@2
|
|
displayName: Download Final PGO Databases
|
|
inputs:
|
|
artifact: pgd-merged-${{ parameters.buildConfiguration }}${{ parameters.artifactStem }}
|
|
downloadPath: $(artifactsPath)
|
|
|
|
- template: steps-ensure-nuget-version.yml
|
|
|
|
- task: NuGetAuthenticate@1
|
|
inputs:
|
|
nuGetServiceConnections: 'Terminal Public Artifact Feed'
|
|
|
|
# In the Microsoft Azure DevOps tenant, NuGetCommand is ambiguous.
|
|
# This should be `task: NuGetCommand@2`
|
|
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
|
displayName: Restore NuGet packages for extraneous build actions
|
|
inputs:
|
|
command: restore
|
|
feedsToUse: config
|
|
configPath: NuGet.config
|
|
restoreSolution: build/packages.config
|
|
restoreDirectory: '$(Build.SourcesDirectory)\packages'
|
|
|
|
- task: MSBuild@1
|
|
displayName: 'Create PGO Nuget'
|
|
inputs:
|
|
solution: $(pgoToolsPath)\PGO.DB.proj
|
|
msbuildArguments: '/t:CreatePGONuGet /p:PGOBuildMode=Instrument /p:PGDPathForAllArch=$(artifactsPath) /p:PGOOutputPath=$(Build.ArtifactStagingDirectory)'
|
|
|
|
- publish: $(Build.ArtifactStagingDirectory)
|
|
artifact: pgo-nupkg-${{ parameters.buildConfiguration }}${{ parameters.artifactStem }}
|
|
displayName: "Publish Pipeline Artifact"
|
|
|
|
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
|
displayName: 'NuGet push'
|
|
inputs:
|
|
command: push
|
|
nuGetFeedType: external
|
|
packagesToPush: $(Build.ArtifactStagingDirectory)/*.nupkg
|
|
# The actual URL and PAT for this feed is configured at
|
|
# https://microsoft.visualstudio.com/Dart/_settings/adminservices
|
|
# This is the name of that connection
|
|
publishFeedCredentials: 'Terminal Public Artifact Feed'
|
|
feedsToUse: config
|
|
nugetConfigPath: '$(Build.SourcesDirectory)/NuGet.config'
|