@@ -15,134 +15,141 @@ pr:
1515 include :
1616 - ' *'
1717
18- jobs :
19- - template : /eng/common/templates/jobs/jobs.yml
20- parameters :
21- enableMicrobuild : true
22- enablePublishBuildArtifacts : true
23- enablePublishTestResults : true
24- enablePublishBuildAssets : true
25- enableTelemetry : true
26- helixRepo : dotnet/command-line-api
27- timeoutInMinutes : 180 # increase timeout since BAR publishing might wait a long time
28- jobs :
29- - job : Windows
30- pool :
31- # For public or PR jobs, use the hosted pool. For internal jobs use the internal pool.
32- # Will eventually change this to two BYOC pools.
33- ${{ if ne(variables['System.TeamProject'], 'internal') }} :
34- name : NetCorePublic-Pool
35- queue : BuildPool.Windows.10.Amd64.VS2019.Open
36- ${{ if eq(variables['System.TeamProject'], 'internal') }} :
37- name : NetCoreInternal-Pool
38- queue : BuildPool.Windows.10.Amd64.VS2019
39- variables :
40- # Only enable publishing in official builds.
41- - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
42- # DotNet-Blob-Feed provides: dotnetfeed-storage-access-key-1
43- # Publish-Build-Assets provides: MaestroAccessToken, BotAccount-dotnet-maestro-bot-PAT
44- - group : DotNet-Blob-Feed
45- - group : DotNet-Symbol-Server-Pats
46- - group : Publish-Build-Assets
47- - name : _OfficialBuildArgs
48- value : /p:DotNetSignType=$(_SignType)
49- /p:TeamName=$(_TeamName)
50- /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
51- /p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
52- /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
53- /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
54- /p:PublishToSymbolServer=true
55- /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
56- /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
57- # else
58- - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }} :
59- - name : _OfficialBuildArgs
60- value : ' '
61- strategy :
62- matrix :
63- ${{ if in(variables['Build.Reason'], 'PullRequest') }} :
64- Debug :
65- _BuildConfig : Debug
66- _SignType : test
67- _DotNetPublishToBlobFeed : false
68- _BuildArgs :
18+ stages :
19+ - stage : build
20+ displayName : Build and Test
21+ jobs :
22+ - template : /eng/common/templates/jobs/jobs.yml
23+ parameters :
24+ enableMicrobuild : true
25+ enablePublishBuildArtifacts : true
26+ enablePublishTestResults : true
27+ enablePublishBuildAssets : true
28+ enableTelemetry : true
29+ helixRepo : dotnet/command-line-api
30+ timeoutInMinutes : 180 # increase timeout since BAR publishing might wait a long time
31+ jobs :
32+ - job : Windows
33+ pool :
34+ # For public or PR jobs, use the hosted pool. For internal jobs use the internal pool.
35+ # Will eventually change this to two BYOC pools.
36+ ${{ if ne(variables['System.TeamProject'], 'internal') }} :
37+ name : NetCorePublic-Pool
38+ queue : BuildPool.Windows.10.Amd64.VS2019.Open
39+ ${{ if eq(variables['System.TeamProject'], 'internal') }} :
40+ name : NetCoreInternal-Pool
41+ queue : BuildPool.Windows.10.Amd64.VS2019
42+ variables :
43+ # Only enable publishing in official builds.
44+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
45+ # DotNet-Blob-Feed provides: dotnetfeed-storage-access-key-1
46+ # Publish-Build-Assets provides: MaestroAccessToken, BotAccount-dotnet-maestro-bot-PAT
47+ - group : DotNet-Blob-Feed
48+ - group : DotNet-Symbol-Server-Pats
49+ - group : Publish-Build-Assets
50+ - name : _OfficialBuildArgs
51+ value : /p:DotNetSignType=$(_SignType)
52+ /p:TeamName=$(_TeamName)
53+ /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
54+ /p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
55+ /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
56+ /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
57+ /p:PublishToSymbolServer=true
58+ /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
59+ /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
60+ - name : _DotNetArtifactsCategory
61+ value : .NETCore
62+ - name : _PublishUsingPipelines
63+ value : true
64+ # else
65+ - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }} :
66+ - name : _OfficialBuildArgs
67+ value : ' '
68+ strategy :
69+ matrix :
70+ ${{ if in(variables['Build.Reason'], 'PullRequest') }} :
71+ Debug :
72+ _BuildConfig : Debug
73+ _SignType : test
74+ _DotNetPublishToBlobFeed : false
75+ _BuildArgs :
6976
70- Release :
71- _BuildConfig : Release
72- # PRs or external builds are not signed.
73- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }} :
74- _SignType : test
75- _DotNetPublishToBlobFeed : false
76- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
77- _SignType : real
78- _DotNetPublishToBlobFeed : true
79- _BuildArgs : $(_OfficialBuildArgs)
80- steps :
81- - checkout : self
82- clean : true
83- - script : eng\common\cibuild.cmd
84- -configuration $(_BuildConfig)
85- -prepareMachine
86- $(_BuildArgs)
87- displayName : Build and Publish
88- - task : PublishBuildArtifacts@1
89- displayName : Upload package artifacts
90- condition : and(eq(variables['system.pullrequest.isfork'], false), eq(variables['_BuildConfig'], 'Release'))
91- inputs :
92- pathtoPublish : artifacts/packages/
93- artifactName : artifacts
94- artifactType : Container
95- parallel : true
96- - task : PublishBuildArtifacts@1
97- displayName : Publish Artifact Symbols
98- condition : and(eq(variables['system.pullrequest.isfork'], false), eq(variables['_BuildConfig'], 'Release'))
99- inputs :
100- PathtoPublish : ' $(Build.SourcesDirectory)\artifacts\SymStore\$(_BuildConfig)'
101- ArtifactName : ' NativeSymbols'
77+ Release :
78+ _BuildConfig : Release
79+ # PRs or external builds are not signed.
80+ ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }} :
81+ _SignType : test
82+ _DotNetPublishToBlobFeed : false
83+ ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
84+ _SignType : real
85+ _DotNetPublishToBlobFeed : true
86+ _BuildArgs : $(_OfficialBuildArgs)
87+ steps :
88+ - checkout : self
89+ clean : true
90+ - script : eng\common\cibuild.cmd
91+ -configuration $(_BuildConfig)
92+ -prepareMachine
93+ $(_BuildArgs)
94+ displayName : Build and Publish
95+ - task : PublishBuildArtifacts@1
96+ displayName : Upload package artifacts
97+ condition : and(eq(variables['system.pullrequest.isfork'], false), eq(variables['_BuildConfig'], 'Release'))
98+ inputs :
99+ pathtoPublish : artifacts/packages/
100+ artifactName : artifacts
101+ artifactType : Container
102+ parallel : true
103+ - task : PublishBuildArtifacts@1
104+ displayName : Publish Artifact Symbols
105+ condition : and(eq(variables['system.pullrequest.isfork'], false), eq(variables['_BuildConfig'], 'Release'))
106+ inputs :
107+ PathtoPublish : ' $(Build.SourcesDirectory)\artifacts\SymStore\$(_BuildConfig)'
108+ ArtifactName : ' NativeSymbols'
102109
103- - job : Ubuntu_16_04
104- displayName : ' Ubuntu 16.04'
105- pool :
106- name : Hosted Ubuntu 1604
107- strategy :
108- matrix :
109- ${{ if in(variables['Build.Reason'], 'PullRequest') }} :
110- Debug :
111- _BuildConfig : Debug
110+ - job : Ubuntu_16_04
111+ displayName : ' Ubuntu 16.04'
112+ pool :
113+ name : Hosted Ubuntu 1604
114+ strategy :
115+ matrix :
116+ ${{ if in(variables['Build.Reason'], 'PullRequest') }} :
117+ Debug :
118+ _BuildConfig : Debug
119+ _SignType : none
120+ _DotNetPublishToBlobFeed : false
121+ Release :
122+ _BuildConfig : Release
112123 _SignType : none
113124 _DotNetPublishToBlobFeed : false
114- Release :
115- _BuildConfig : Release
116- _SignType : none
117- _DotNetPublishToBlobFeed : false
118- steps :
119- - checkout : self
120- clean : true
121- - script : eng/common/cibuild.sh
122- --configuration $(_BuildConfig)
123- --prepareMachine
124- displayName : Build
125+ steps :
126+ - checkout : self
127+ clean : true
128+ - script : eng/common/cibuild.sh
129+ --configuration $(_BuildConfig)
130+ --prepareMachine
131+ displayName : Build
125132
126- - job : OSX_10_13
127- displayName : ' OSX'
128- pool :
129- name : Hosted macOS
130- vmImage : macOS-10.13
131- strategy :
132- matrix :
133- ${{ if in(variables['Build.Reason'], 'PullRequest') }} :
134- Debug :
135- _BuildConfig : Debug
133+ - job : OSX_10_13
134+ displayName : ' OSX'
135+ pool :
136+ name : Hosted macOS
137+ vmImage : macOS-10.13
138+ strategy :
139+ matrix :
140+ ${{ if in(variables['Build.Reason'], 'PullRequest') }} :
141+ Debug :
142+ _BuildConfig : Debug
143+ _SignType : none
144+ _DotNetPublishToBlobFeed : false
145+ Release :
146+ _BuildConfig : Release
136147 _SignType : none
137148 _DotNetPublishToBlobFeed : false
138- Release :
139- _BuildConfig : Release
140- _SignType : none
141- _DotNetPublishToBlobFeed : false
142- steps :
143- - checkout : self
144- clean : true
145- - script : eng/common/cibuild.sh
146- --configuration $(_BuildConfig)
147- --prepareMachine
148- displayName : Build
149+ steps :
150+ - checkout : self
151+ clean : true
152+ - script : eng/common/cibuild.sh
153+ --configuration $(_BuildConfig)
154+ --prepareMachine
155+ displayName : Build
0 commit comments