11# This pipeline will be triggered manually.
2- variables :
3- - name : tags
4- value : " nonproduction"
5- readonly : true
6-
7- trigger : none
8-
9- pr : none
10-
11- resources :
12- repositories :
13- - repository : CustomPipelineTemplates
14- type : git
15- name : 1ESPipelineTemplates/OfficePipelineTemplates
16- ref : refs/tags/release
17-
18- extends :
19- template : v1/Office.Unofficial.PipelineTemplate.yml@CustomPipelineTemplates
20- parameters :
21- pool :
22- name : Azure-Pipelines-1ESPT-ExDShared
23- image : windows-latest
24- os : windows
25- stages :
26- - stage : validate
27- displayName : Validate
28- jobs :
29- - job : validate
30- pool :
31- name : Azure-Pipelines-1ESPT-ExDShared
32- image : ubuntu-latest
33- os : linux
34- displayName : Validate
35- steps :
36- - checkout : self
37- - task : Bash@3
38- inputs :
39- targetType : inline
40- script : |
41- echo $(version) | python ./bin/version.py
42-
43- - stage : build
44- displayName : Build
45- jobs :
46- - job : build
47- strategy :
48- matrix :
49- x64-windows :
50- poolName : Azure-Pipelines-1ESPT-ExDShared
51- image : windows-latest
52- os : windows
53- runtime : win10-x64
54- x64-mac :
55- poolName : Azure Pipelines
56- image : macOS-latest
57- os : macOS
58- runtime : osx-x64
59- arm-mac :
60- poolName : Azure Pipelines
61- image : macOS-latest
62- os : macOS
63- runtime : osx-arm64
64- pool :
65- name : $(poolName)
66- image : $(image)
67- os : $(os)
2+ parameters :
3+ - name : version
4+ type : string
5+ - name : prerelease
6+ displayName : Prerelease?
7+ type : boolean
8+ default : true
9+ - name : buildConfigs
10+ type : object
11+ default :
12+ - pool :
13+ name : Azure-Pipelines-1ESPT-ExDShared
14+ image : windows-latest
15+ os : windows
16+ runtime : win10-x64
17+ - pool :
18+ name : Azure Pipelines
19+ image : macOS-latest
20+ os : macOS
21+ runtime : osx-x64
22+ - pool :
23+ name : Azure Pipelines
24+ image : macOS-latest
25+ os : macOS
26+ runtime : osx-arm64
27+
28+ variables :
29+ - name : tags
30+ value : " nonproduction"
31+ readonly : true
32+
33+ trigger : none
34+
35+ pr : none
36+
37+ resources :
38+ repositories :
39+ - repository : CustomPipelineTemplates
40+ type : git
41+ name : 1ESPipelineTemplates/OfficePipelineTemplates
42+ ref : refs/tags/release
43+
44+ extends :
45+ template : v1/Office.Unofficial.PipelineTemplate.yml@CustomPipelineTemplates
46+ parameters :
47+ pool :
48+ name : Azure-Pipelines-1ESPT-ExDShared
49+ image : ubuntu-latest
50+ os : linux
51+ sdl :
52+ sourceAnalysisPool :
53+ name : Azure-Pipelines-1ESPT-ExDShared
54+ image : windows-latest
55+ os : windows
56+ stages :
57+ - stage : validate
58+ displayName : Validate
59+ jobs :
60+ - job : validate
61+ displayName : Validate
62+ steps :
63+ - checkout : self
64+ - task : Bash@3
65+ inputs :
66+ targetType : inline
67+ script : |
68+ echo ${{ parameters.version }} | python ./bin/version.py
69+
70+ - stage : build
6871 displayName : Build
69- steps :
70- - checkout : self
71- - task : UseDotNet@2
72- displayName : Use .NET Core sdk 6.x
73- inputs :
74- version : 6.x
75-
76- - task : NuGetToolInstaller@0
77- displayName : Use NuGet 6.x
78- inputs :
79- versionSpec : 6.x
80-
81- - task : DotNetCoreCLI@2
82- displayName : Install dependencies
83- inputs :
84- command : restore
85- feedsToUse : select
86- vstsFeed : $(vstsFeedId)
87- includeNuGetOrg : false
88- arguments : --runtime $(runtime)
89-
90- - task : DotNetCoreCLI@2
91- displayName : Test
92- inputs :
93- command : test
94- arguments : --configuration release
95-
96- - task : DotNetCoreCLI@2
97- displayName : Build artifacts
98- inputs :
99- command : publish
100- projects : src/AzureAuth/AzureAuth.csproj
101- arguments : -p:Version=$(version) --configuration release --self-contained true --runtime $(runtime) --output dist/$(runtime)
102-
103- templateContext :
104- outputs :
105- - output : pipelineArtifact
106- path : dist/$(runtime)
107- artifact : azureauth-$(version)-$(runtime)
72+ jobs :
73+ - ${{ each config in parameters.buildConfigs }} :
74+ - job : build_${{ replace(config.runtime,'-', '_') }}
75+ displayName : Building for ${{ config.runtime }} on ${{ config.pool.name }}
76+ pool :
77+ name : ${{ config.pool.name }}
78+ image : ${{ config.pool.image }}
79+ os : ${{ config.pool.os }}
80+ steps :
81+ - checkout : self
82+ - task : UseDotNet@2
83+ displayName : Use .NET Core sdk 6.x
84+ inputs :
85+ version : 6.x
86+
87+ - task : NuGetToolInstaller@0
88+ displayName : Use NuGet 6.x
89+ inputs :
90+ versionSpec : 6.x
91+
92+ - task : DotNetCoreCLI@2
93+ displayName : Install dependencies
94+ inputs :
95+ command : restore
96+ feedsToUse : select
97+ vstsFeed : $(vstsFeedId)
98+ includeNuGetOrg : false
99+ arguments : --runtime ${{ config.runtime }}
100+
101+ - task : DotNetCoreCLI@2
102+ displayName : Test
103+ inputs :
104+ command : test
105+ arguments : --configuration release
106+
107+ - task : DotNetCoreCLI@2
108+ displayName : Build artifacts
109+ inputs :
110+ command : publish
111+ projects : src/AzureAuth/AzureAuth.csproj
112+ arguments : -p:Version=${{ parameters.version }} --configuration release --self-contained true --runtime ${{ config.runtime }} --output dist/${{ config.runtime }}
113+
114+ templateContext :
115+ outputs :
116+ - output : pipelineArtifact
117+ path : dist/${{ config.runtime }}
118+ artifact : azureauth-${{ parameters.version }}-${{ config.runtime }}
0 commit comments