/
official.yml
109 lines (103 loc) · 3.31 KB
/
official.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
trigger:
branches:
include:
- main
- 'v16.*'
- 'validate/*'
paths:
exclude:
- .github/
- doc/
- '*.md'
- .vscode/
schedules:
- cron: "0 3 * * *" # Daily @ 8 PM PST
displayName: Daily vs-insertion
branches:
include:
- main
- 'v16.*'
parameters:
- name: SignTypeSelection
displayName: Sign type
type: string
default: Test
values: [ 'Test', 'Real' ]
- name: ShouldSkipOptimize
displayName: Skip OptProf optimization
type: boolean
default: false
variables:
NugetSecurityAnalysisWarningLevel: none # nuget.config requires signed packages by trusted owners
stages:
- stage: Build
variables:
TreatWarningsAsErrors: true
UpdateXlfOnBuild: false # force build breaks if xlf files aren't updated on dev box with resx changes
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
BuildConfiguration: Release
BuildPlatform: Any CPU
push_to_ci: true
NUGET_PACKAGES: $(Agent.TempDirectory)/.nuget/packages
SignTypeSelection: ${{ parameters.SignTypeSelection }}
jobs:
- template: build.yml
parameters:
windowsPool: VSEngSS-MicroBuild2019
ShouldSkipOptimize: ${{ parameters.ShouldSkipOptimize }}
- stage: symbol_archive
displayName: Symbol archival
condition: and(succeeded(), eq(dependencies.Build.outputs['Windows.SetPipelineVariables.SignType'], 'Real'))
jobs:
- job: archive
pool: VSEng-ReleasePool
steps:
- download: current
artifact: Variables-Windows
displayName: Download Variables-Windows artifact
- task: PowerShell@2
displayName: Set VSTS variables based on artifacts
inputs:
targetType: filePath
filePath: $(Pipeline.Workspace)/Variables-Windows/_pipelines.ps1
- download: current
artifact: symbols-Windows
displayName: Download symbols-Windows artifact
- task: MicroBuildArchiveSymbols@1
displayName: Archive $(SymbolsFeatureName) on Symweb
inputs:
SymbolsFeatureName: $(SymbolsFeatureName)
SymbolsSymwebProject: VS
SymbolsUncPath: \\cpvsbuild\drops\$(TeamName)\$(Build.DefinitionName)\$(Build.SourceBranchName)\$(Build.BuildId)\Symbols.Archival
SymbolsEmailContacts: vsidemicrobuild
SymbolsAgentPath: $(Pipeline.Workspace)/symbols-Windows
- task: MicroBuildCleanup@1
displayName: Send Telemetry
- stage: azure_public_vssdk_feed
displayName: azure-public/vssdk feed
condition: and(succeeded(), eq(dependencies.Build.outputs['Windows.SetPipelineVariables.SignType'], 'Real'))
jobs:
- deployment: push
pool:
vmImage: ubuntu-latest
environment: No-Approval
strategy:
runOnce:
deploy:
steps:
- download: current
artifact: deployables-Windows
displayName: Download deployables-Windows artifact
- task: NuGetToolInstaller@1
displayName: Use NuGet 5.x
inputs:
versionSpec: 5.x
- task: NuGetCommand@2
displayName: NuGet push
inputs:
command: push
packagesToPush: $(Pipeline.Workspace)/deployables-Windows/NuGet/*.nupkg
nuGetFeedType: external
publishFeedCredentials: azure-public/vssdk
allowPackageConflicts: true
continueOnError: true # until "skip on conflict" is offered as a task input.