76 строки
2.7 KiB
YAML
76 строки
2.7 KiB
YAML
trigger: none # We only want to trigger manually or based on resources
|
|
pr: none
|
|
|
|
resources:
|
|
pipelines:
|
|
- pipeline: win32metadata
|
|
source: microsoft.win32metadata
|
|
trigger:
|
|
tags:
|
|
- auto-release
|
|
|
|
stages:
|
|
- stage: GitHubRelease
|
|
displayName: GitHub Release
|
|
jobs:
|
|
- deployment: create
|
|
pool:
|
|
vmImage: windows-2019
|
|
environment: No-Approval 2
|
|
strategy:
|
|
runOnce:
|
|
deploy:
|
|
steps:
|
|
- download: none
|
|
- powershell: |
|
|
Write-Host "##vso[build.updatebuildnumber]$(resources.pipeline.win32metadata.runName)"
|
|
$runName = "$(resources.pipeline.win32metadata.runName)"
|
|
$tagName = $runName.Split('_')[0]
|
|
Write-Output "##vso[task.setvariable variable=TagName]$tagName"
|
|
displayName: Set pipeline name
|
|
- task: GitHubRelease@1
|
|
displayName: GitHub release (create)
|
|
inputs:
|
|
gitHubConnection: github.com_mikebattista
|
|
repositoryName: $(Build.Repository.Name)
|
|
target: $(resources.pipeline.win32metadata.sourceCommit)
|
|
tagSource: userSpecifiedTag
|
|
tag: v$(TagName)
|
|
title: v$(TagName)
|
|
isDraft: true # After running this step, visit the new draft release, edit, and publish.
|
|
changeLogCompareToRelease: lastNonDraftRelease
|
|
changeLogType: issueBased
|
|
changeLogLabels: |
|
|
[
|
|
{ "label" : "bug", "displayName" : "Fixes", "state" : "closed" },
|
|
{ "label" : "enhancement", "displayName": "Enhancements", "state" : "closed" }
|
|
]
|
|
- stage: nuget_org
|
|
displayName: nuget.org
|
|
dependsOn: GitHubRelease
|
|
jobs:
|
|
- deployment: push
|
|
pool:
|
|
vmImage: windows-2019
|
|
environment: No-Approval 2
|
|
strategy:
|
|
runOnce:
|
|
deploy:
|
|
steps:
|
|
- download: win32metadata
|
|
artifact: NuGetPackages
|
|
displayName: Download metadata and generators
|
|
- download: win32metadata
|
|
artifact: ApiDocsNuGetPackages
|
|
displayName: Download API docs
|
|
- task: NuGetToolInstaller@1
|
|
displayName: Use NuGet 5.x
|
|
inputs:
|
|
versionSpec: 5.x
|
|
- powershell: |
|
|
Get-ChildItem .\NuGetPackages\*.nupkg,.\ApiDocsNuGetPackages\*.nupkg -Exclude Microsoft.Dia.Win32Metadata.*.nupkg |% {
|
|
nuget push $_ -Source https://api.nuget.org/v3/index.json -SkipDuplicate -ApiKey $(NuGetOrgApiKey)
|
|
}
|
|
displayName: Push packages to nuget.org
|
|
workingDirectory: $(Pipeline.Workspace)/win32metadata
|