@@ -234,6 +234,12 @@ void SignNuGet(string publishDir)
234
234
return ;
235
235
}
236
236
237
+ var vctid = EnvironmentVariable( "azure-key-vault-tenant-id" ) ;
238
+ if ( string . IsNullOrWhiteSpace ( vctid ) ) {
239
+ Error( "Could not resolve signing client tenant id." ) ;
240
+ return ;
241
+ }
242
+
237
243
var vcs = EnvironmentVariable( "azure-key-vault-client-secret" ) ;
238
244
if ( string . IsNullOrWhiteSpace ( vcs ) ) {
239
245
Error( "Could not resolve signing client secret." ) ;
@@ -247,42 +253,26 @@ void SignNuGet(string publishDir)
247
253
}
248
254
249
255
var nugetFiles = GetFiles( publishDir + "/*.nupkg" ) ;
256
+ var signTool = Context. Tools . Resolve ( "NuGetKeyVaultSignTool.exe" ) ;
257
+
250
258
foreach ( var file in nugetFiles )
251
259
{
252
260
Information( $ "Sign file: { file } ") ;
253
- var processSettings = new ProcessSettings {
254
- RedirectStandardOutput = true,
255
- RedirectStandardError = true,
256
- Arguments = new ProcessArgumentBuilder( )
257
- . Append ( "sign" )
258
- . Append ( MakeAbsolute ( file ) . FullPath )
259
- . Append ( "--force" )
260
- . AppendSwitchQuoted ( "--file-digest" , "sha256" )
261
- . AppendSwitchQuoted ( "--timestamp-rfc3161" , "http://timestamp.digicert.com" )
262
- . AppendSwitchQuoted ( "--timestamp-digest" , "sha256" )
263
- . AppendSwitchQuoted ( "--azure-key-vault-url" , vurl )
264
- . AppendSwitchQuotedSecret ( "--azure-key-vault-client-id" , vcid )
265
- . AppendSwitchQuotedSecret ( "--azure-key-vault-client-secret" , vcs )
266
- . AppendSwitchQuotedSecret ( "--azure-key-vault-certificate" , vc )
267
- } ;
268
-
269
- using ( var process = StartAndReturnProcess( "tools/NuGetKeyVaultSignTool" , processSettings ) )
270
- {
271
- process. WaitForExit ( ) ;
272
-
273
- if ( process . GetStandardOutput ( ) . Any ( ) )
274
- {
275
- Information( $ "Output:{ Environment . NewLine } { string . Join ( Environment . NewLine , process . GetStandardOutput ( ) ) } ") ;
276
- }
277
261
278
- if ( process . GetStandardError ( ) . Any ( ) )
279
- {
280
- Information( $ "Errors occurred:{ Environment . NewLine } { string . Join ( Environment . NewLine , process . GetStandardError ( ) ) } ") ;
281
- }
282
-
283
- // This should output 0 as valid arguments supplied
284
- Information( "Exit code: {0}" , process . GetExitCode ( ) ) ;
285
- }
262
+ ExecuteProcess( signTool ,
263
+ new ProcessArgumentBuilder ( )
264
+ . Append ( "sign" )
265
+ . Append ( MakeAbsolute ( file ) . FullPath )
266
+ . Append ( "--force" )
267
+ . AppendSwitchQuoted ( "--file-digest" , "sha256" )
268
+ . AppendSwitchQuoted ( "--timestamp-rfc3161" , "http://timestamp.digicert.com" )
269
+ . AppendSwitchQuoted ( "--timestamp-digest" , "sha256" )
270
+ . AppendSwitchQuoted ( "--azure-key-vault-url" , vurl )
271
+ . AppendSwitchQuotedSecret ( "--azure-key-vault-client-id" , vcid )
272
+ . AppendSwitchQuotedSecret ( "--azure-key-vault-tenant-id" , vctid )
273
+ . AppendSwitchQuotedSecret ( "--azure-key-vault-client-secret" , vcs )
274
+ . AppendSwitchQuotedSecret ( "--azure-key-vault-certificate" , vc )
275
+ ) ;
286
276
}
287
277
}
288
278
@@ -325,6 +315,53 @@ Task("CreateRelease")
325
315
} ) ;
326
316
} ) ;
327
317
318
+ void ExecuteProcess( FilePath fileName , ProcessArgumentBuilder arguments , string workingDirectory = null )
319
+ {
320
+ if ( ! FileExists ( fileName ) )
321
+ {
322
+ throw new Exception( $ "File not found: { fileName } ") ;
323
+ }
324
+
325
+ var processSettings = new ProcessSettings
326
+ {
327
+ RedirectStandardOutput = true ,
328
+ RedirectStandardError = true ,
329
+ Arguments = arguments
330
+ } ;
331
+
332
+ if ( ! string . IsNullOrEmpty ( workingDirectory ) )
333
+ {
334
+ processSettings . WorkingDirectory = workingDirectory ;
335
+ }
336
+
337
+ Information ( $ "Arguments: { arguments . RenderSafe ( ) } ") ;
338
+
339
+ using ( var process = StartAndReturnProcess( fileName , processSettings ) )
340
+ {
341
+ process . WaitForExit ( ) ;
342
+
343
+ if ( process . GetStandardOutput ( ) . Any ( ) )
344
+ {
345
+ Information ( $ "Output:{ Environment . NewLine } { string . Join ( Environment . NewLine , process . GetStandardOutput ( ) ) } ") ;
346
+ }
347
+
348
+ if ( process . GetStandardError ( ) . Any ( ) )
349
+ {
350
+ // Information($"Errors occurred:{Environment.NewLine} {string.Join(Environment.NewLine, process.GetStandardError())}");
351
+ throw new Exception ( $ "Errors occurred:{ Environment . NewLine } { string . Join ( Environment . NewLine , process . GetStandardError ( ) ) } ") ;
352
+ }
353
+
354
+ // This should output 0 as valid arguments supplied
355
+ var exitCode = process . GetExitCode ( ) ;
356
+ Information ( $ "Exit code: { exitCode } ") ;
357
+
358
+ if ( exitCode > 0 )
359
+ {
360
+ throw new Exception ( $ "Exit code: { exitCode } ") ;
361
+ }
362
+ }
363
+ }
364
+
328
365
///////////////////////////////////////////////////////////////////////////////
329
366
// TASK TARGETS
330
367
///////////////////////////////////////////////////////////////////////////////
0 commit comments