# From our friends at MUX: https://github.com/microsoft/microsoft-ui-xaml/blob/main/build/AzurePipelinesTemplates/MUX-BuildAndPublishPGONuGet-Job.yml parameters: dependsOn: '' pgoArtifact: PGO jobs: - job: BuildAndPublishPGONuGet dependsOn: ${{ parameters.dependsOn }} pool: vmImage: 'windows-2019' variables: artifactsPath: $(Build.SourcesDirectory)\Artifacts pgoToolsPath: $(Build.SourcesDirectory)\tools\PGODatabase nuspecPath: $(pgoToolsPath)\NuSpecs nuspecFilename: PGO.nuspec steps: - task: DownloadBuildArtifacts@0 inputs: artifactName: ${{ parameters.pgoArtifact }} downloadPath: $(artifactsPath) - task: NuGetAuthenticate@0 inputs: nuGetServiceConnections: 'Terminal Public Artifact Feed' - task: NuGetToolInstaller@0 displayName: 'Use NuGet 5.8.0' inputs: versionSpec: 5.8.0 - task: CopyFiles@2 displayName: 'Copy pgd files to NuGet build directory' inputs: sourceFolder: $(artifactsPath)\${{ parameters.pgoArtifact }} contents: '**\*.pgd' targetFolder: $(nuspecPath)\tools - task: powershell@2 displayName: 'Generate NuSpec file' inputs: targetType: filePath filePath: $(pgoToolsPath)\generate-nuspec.ps1 workingDirectory: $(pgoToolsPath) arguments: $(nuspecPath)\$(nuspecFilename).template $(nuspecPath)\$(nuspecFilename) - task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 displayName: 'NuGet pack' inputs: command: pack packagesToPack: '$(nuspecPath)\$(nuspecFilename)' basePath: '$(nuspecPath)' packDestination: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 inputs: pathToPublish: $(Build.ArtifactStagingDirectory) artifactName: ${{ parameters.pgoArtifact }} - 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'