in build/scripts/automation/winbldroutines.pm [1036:1180]
sub DoDriverSigning
{
print "DEBUG: in DoDriverSigning()\n";
my $this = shift;
my $srcpath = $this->SrcPath();
my $partner = $this->Partner();
my $configlist = $this->ConfigList();
my $productlist = $this->ProductList();
my $datewisedir = $this->DatewiseDir();
my $branchname = $this->Branch();
my $signing = $this->Signing();
my ($buildoutputdir,$logfile);
foreach my $config (reverse sort @{$configlist})
{
foreach my $product (@{$productlist})
{
next if uc($product) ne "UA" and uc($product) ne "CX" and uc($product) ne "PI" and uc($product) ne "ASRUA" and uc($product) ne "ASRSETUP";
$buildoutputdir = $this->GetBuildIssDir($product);
$logfile = "${srcpath}\\${buildoutputdir}\\DriverSigningLog_${product}_${config}_${partner}.txt";
my $bldlogfile = "${srcpath}\\${buildoutputdir}\\BuildLog_${product}_${config}_${partner}.txt";
my $solnfile = $this->GetSolnFileName($product);
unlink "$logfile" if -e "$logfile";
my ($weekday,$month,$sdate,$hour,$min,$sec,$year) = ( localtime =~ /^(\w{3})\s+(\w{3})\s+(\d{1,2})\s+(\d{2}):(\d{2}):(\d{2})\s+(\d{4})$/ );
$sdate = sprintf("%02d", $sdate);
my $sdate = "${sdate}_${month}_${year}";
my $product = uc($product);
# Delete signing related files if they exists.
my @signfilestoberemoved = ("InputSign.json", "OutputSign.json", "OutputSignVerbose.log");
foreach (@signfilestoberemoved) {
Log_Do("if exist I:\\Signing\\$branchname\\$sdate\\$product\\$_ del /F I:\\Signing\\$branchname\\$sdate\\$product\\$_");
}
# Variables specific to signing.
my $inputfileslist = "$srcpath\\build\\scripts\\automation\\CodeSignScripts\\Files.json";
my $sourcerootdir = "\t\t\"SourceRootDirectory\":" . " \"I:\\\\Signing\\\\$branchname\\\\$sdate\\\\$product\\\\Unsigned\\\\$config\",\n";
my $destrootdir = "\t\t\"DestinationRootDirectory\":" . " \"I:\\\\Signing\\\\$branchname\\\\$sdate\\\\$product\\\\Signed\\\\$config\",\n";
my $inputtempfile = "$srcpath\\build\\scripts\\automation\\CodeSignScripts\\InputSignTemplate.json";
my $inputfile = "I:\\Signing\\$branchname\\$sdate\\$product\\InputSign.json";
my $outputfile = "I:\\Signing\\$branchname\\$sdate\\$product\\OutputSign.json";
my $verboselogfile = "I:\\Signing\\$branchname\\$sdate\\$product\\OutputSignVerbose.log";
if (uc($product) eq "UA")
{
# Copy unsigned binaries/files to submission path.
system($PowerShellPath ' -File ".\\CodeSignScripts\\Copy_Unsinged_Binaries_To_Submission_Path.ps1"' , $config , $product , $srcpath, $branchname, $signing);
# Prepare files for signing.
my $filessection = "UA_SIGN_FILES";
prepare_signing_files ("$inputfileslist", "$filessection", "$inputtempfile", "$inputfile", "$sourcerootdir", "$destrootdir");
# Submit binaries/files for signing.
submit_files_for_signing("$product", "$config", "$inputfile", "$outputfile", "$verboselogfile");
# Copy signed binaries/files back to build path.
system($PowerShellPath ' -File ".\\CodeSignScripts\\Copy_Signed_Binaries_To_Build_Path.ps1"' , $config , $product , $srcpath, $branchname, $signing);
}
if (uc($product) eq "ASRUA")
{
# Copy managed binaries to submission path.
system($PowerShellPath ' -File ".\\CodeSignScripts\\Copy_Unsinged_Binaries_To_Submission_Path.ps1"' , $config , $product , $srcpath, $branchname, $signing);
# Prepare files for signing.
my $filessection = "ASRUA_SIGN_FILES";
prepare_signing_files ("$inputfileslist", "$filessection", "$inputtempfile", "$inputfile", "$sourcerootdir", "$destrootdir");
# Submit binaries/files for signing.
submit_files_for_signing("$product", "$config", "$inputfile", "$outputfile", "$verboselogfile");
# Copy managed binaries to build path.
system($PowerShellPath ' -File ".\\CodeSignScripts\\Copy_Signed_Binaries_To_Build_Path.ps1"' , $config , $product , $srcpath, $branchname, $signing);
if (Log_Do("\"$msbuild_exe\" ${srcpath}\\$solnfile /t:UnifiedAgentCustomActions:Rebuild /p:Configuration=$config /p:Platform=\"Any CPU\" /p:Signing=True") == 0 ) {
Log_Do("if exist $bldlogfile copy /Y $bldlogfile ${datewisedir}\\${config}\\logs");
print "\n\n$config build from $branchname is successful for $product for UnifiedAgentCustomActions in $addr\n\n";
}
else
{
Log_Do("if exist $bldlogfile copy /Y $bldlogfile ${datewisedir}\\${config}\\logs");
send_mail($failure_alert_ids,'Windows build failure',"$config build from $branchname is failed for $product for UnifiedAgentCustomActions in $addr",1);
die "\n\n$config build from $branchname is failed for $product for UnifiedAgentCustomActions in $addr";
}
}
if (uc($product) eq "ASRSETUP")
{
# Copy managed binaries to submission path.
system($PowerShellPath ' -File ".\\CodeSignScripts\\Copy_Unsinged_Binaries_To_Submission_Path.ps1"' , $config , $product , $srcpath, $branchname, $signing);
# Prepare files for signing.
my $filessection = "ASRUS_SIGN_FILES";
prepare_signing_files ("$inputfileslist", "$filessection", "$inputtempfile", "$inputfile", "$sourcerootdir", "$destrootdir");
# Submit binaries/files for signing.
submit_files_for_signing("$product", "$config", "$inputfile", "$outputfile", "$verboselogfile");
# Copy managed binaries to build path.
system($PowerShellPath ' -File ".\\CodeSignScripts\\Copy_Signed_Binaries_To_Build_Path.ps1"' , $config , $product , $srcpath, $branchname, $signing);
}
if (uc($product) eq "PI")
{
# Copy unsigned binaries to submission path.
system($PowerShellPath ' -File ".\\CodeSignScripts\\Copy_Unsinged_Binaries_To_Submission_Path.ps1"' , $config , $product , $srcpath, $branchname, $signing);
# Prepare files for signing.
my $filessection = "PI_SIGN_FILES";
prepare_signing_files ("$inputfileslist", "$filessection", "$inputtempfile", "$inputfile", "$sourcerootdir", "$destrootdir");
# Submit binaries/files for signing.
submit_files_for_signing("$product", "$config", "$inputfile", "$outputfile", "$verboselogfile");
# Copy signed binaries to build path.
system($PowerShellPath ' -File ".\\CodeSignScripts\\Copy_Signed_Binaries_To_Build_Path.ps1"' , $config , $product , $srcpath, $branchname, $signing);
}
if (uc($product) eq "CX")
{
# Copy binaries/files to submission path.
system($PowerShellPath ' -File ".\\CodeSignScripts\\Copy_Unsinged_Binaries_To_Submission_Path.ps1"' , $config , $product , $srcpath, $branchname, $signing);
# Prepare files for signing.
my $filessection = "CX_SIGN_FILES";
prepare_signing_files ("$inputfileslist", "$filessection", "$inputtempfile", "$inputfile", "$sourcerootdir", "$destrootdir");
# Submit binaries/files for signing.
submit_files_for_signing("$product", "$config", "$inputfile", "$outputfile", "$verboselogfile");
# Copy signed binaries/files to build path.
system($PowerShellPath ' -File ".\\CodeSignScripts\\Copy_Signed_Binaries_To_Build_Path.ps1"' , $config , $product , $srcpath, $branchname, $signing);
}
else
{
next;
}
Log_Do("if exist $logfile copy /Y $logfile ${datewisedir}\\${config}\\logs");
}
}
}