@@ -15,9 +15,31 @@ parameters:
1515 default : false
1616 displayName : ' Enable ESRP code signing'
1717
18+ variables :
19+ - name : ' esrpConnectionName'
20+ value : ' ESRP-1ESGitClient'
21+ - name : ' esrpEndpointUrl'
22+ value : ' https://api.esrp.microsoft.com/api/v2'
23+ - name : ' esrpClientId'
24+ value : ' TODO'
25+ - name : ' esrpTenantId'
26+ value : ' TODO'
27+ - name : ' esrpAuthAkvName'
28+ value : ' TODO'
29+ - name : ' esrpAuthCertName'
30+ value : ' TODO'
31+ - name : ' esrpAuthSignCertName'
32+ value : ' TODO'
33+
1834extends :
1935 template : v1/1ES.Official.PipelineTemplate.yml@1ESPipelines
2036 parameters :
37+ sdl :
38+ # SDL source analysis tasks only run on Windows images
39+ sourceAnalysisPool :
40+ name : GitClient-1ESHostedPool-intel-pc
41+ image : win-x86_64-ado1es
42+ os : windows
2143 stages :
2244 - stage : windows
2345 displayName : ' Windows'
@@ -28,5 +50,114 @@ extends:
2850 name : GitClient-1ESHostedPool-intel-pc
2951 image : win-x86_64-ado1es
3052 os : windows
53+ templateContext :
54+ outputs :
55+ - output : pipelineArtifact
56+ targetPath : ' $(Build.ArtifactStagingDirectory)/payload'
57+ artifactName : ' win-x86_payload'
58+ - output : pipelineArtifact
59+ targetPath : ' $(Build.ArtifactStagingDirectory)/installers'
60+ artifactName : ' win-x86_installers'
3161 steps :
3262 - checkout : self
63+ - task : UseDotNet@2
64+ displayName : ' Use .NET 8 SDK'
65+ inputs :
66+ packageType : sdk
67+ version : ' 8.x'
68+ - task : PowerShell@2
69+ displayName : ' Build payload'
70+ inputs :
71+ pwsh : true
72+ targetType : filePath
73+ filePath : ' .\src\windows\Installer.Windows\layout.ps1'
74+ arguments : |
75+ -Configuration Release `
76+ -Output $(Build.ArtifactStagingDirectory)\payload `
77+ -SymbolOutput $(Build.ArtifactStagingDirectory)\symbols
78+ - task : EsrpCodeSigning@5
79+ condition : and(succeeded(), eq('${{ parameters.esrp }}', true))
80+ displayName : ' Sign payload'
81+ inputs :
82+ connectedServiceName : ' $(esrpConnectionName)'
83+ appRegistrationClientId : ' $(esrpClientId)'
84+ appRegistrationTenantId : ' $(esrpTenantId)'
85+ authAkvName : ' $(esrpAuthAkvName)'
86+ authCertName : ' $(esrpAuthCertName)'
87+ authSignCertName : ' $(esrpAuthSignCertName)'
88+ serviceEndpointUrl : ' $(esrpEndpointUrl)'
89+ folderPath : ' $(Build.ArtifactStagingDirectory)\payload'
90+ pattern : ' **\*.exe;**\*.dll'
91+ signConfigType : inlineSignParams
92+ inlineOperation : |
93+ [
94+ {
95+ "keyCode": "TODO",
96+ "operationCode": "SigntoolSign"
97+ "parameters": {
98+ "OpusName": "Microsoft",
99+ "OpusInfo": "http://microsoft.com",
100+ "FileDigest": "/fd \"SHA256\"",
101+ "PageHash": "/NPH",
102+ "Timestamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
103+ },
104+ "toolName": "sign",
105+ "toolVersion": "1.0"
106+ },
107+ {
108+ "keyCode": "TODO",
109+ "operationCode": "SigntoolVerify",
110+ "parameters": {},
111+ "toolName": "sign",
112+ "toolVersion": "1.0"
113+ }
114+ ]
115+ - task : PowerShell@2
116+ displayName : ' Build installers'
117+ inputs :
118+ pwsh : true
119+ targetType : inline
120+ script : |
121+ dotnet build '.\src\windows\Installer.Windows\Installer.Windows.csproj' `
122+ --configuration Release `
123+ --no-dependencies `
124+ -p:NoLayout=true `
125+ -p:PayloadPath="$(Build.ArtifactStagingDirectory)\payload"
126+ -p:OutputPath="$(Build.ArtifactStagingDirectory)\installers"
127+ - task : EsrpCodeSigning@5
128+ condition : and(succeeded(), eq('${{ parameters.esrp }}', true))
129+ displayName : ' Sign installers'
130+ inputs :
131+ connectedServiceName : ' $(esrpConnectionName)'
132+ appRegistrationClientId : ' $(esrpClientId)'
133+ appRegistrationTenantId : ' $(esrpTenantId)'
134+ authAkvName : ' $(esrpAuthAkvName)'
135+ authCertName : ' $(esrpAuthCertName)'
136+ authSignCertName : ' $(esrpAuthSignCertName)'
137+ serviceEndpointUrl : ' $(esrpEndpointUrl)'
138+ folderPath : ' $(Build.ArtifactStagingDirectory)\installers'
139+ pattern : ' **\*.exe'
140+ signConfigType : inlineSignParams
141+ inlineOperation : |
142+ [
143+ {
144+ "keyCode": "TODO",
145+ "operationCode": "SigntoolSign"
146+ "parameters": {
147+ "OpusName": "Microsoft",
148+ "OpusInfo": "http://microsoft.com",
149+ "FileDigest": "/fd \"SHA256\"",
150+ "PageHash": "/NPH",
151+ "Timestamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
152+ },
153+ "toolName": "sign",
154+ "toolVersion": "1.0"
155+ },
156+ {
157+ "keyCode": "TODO",
158+ "operationCode": "SigntoolVerify",
159+ "parameters": {},
160+ "toolName": "sign",
161+ "toolVersion": "1.0"
162+ }
163+ ]
0 commit comments