build/scripts/automation/TRUNK_Builds_Copy.ps1 (145 lines of code) (raw):
#Powershell script to copy builds to staging server.
#Declaring the date and time variables.
$Date = Get-Date -Format dd_MMM_yyyy
$Time = Get-Date -Format hh_mm_tt
#Declaring the config and product variables and reading the values from perl module
$Config=$args[0]
$Product=$args[1]
#Declaring the variables for directory structure in InMStagingSvr and fort.
$Build_Machine="InMStagingSvr"
$Branch=$args[2]
$Branch_Dest=$args[3]
$ProdVersion=$args[4]
#Declaring the variables for directory structure and log name.
$FolderPath = "\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date"
$Log_Name = "Copy_daily_build_"+$Date+"_"+$Time+".txt"
$Log_File = "\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Log_Name"
$PushInstallBinariesPath = "\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\PushInstallBinaries"
$PushInstallClientsRcmPath = "\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\PushInstallClientsRcm"
$DataProtectionBinariesPath = "\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\DataProtectionBinaries"
$MarsAgentBinariesRcmPath = "\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\MarsAgentBinariesRcm"
$HostPath = "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host"
#Creating the directory structure.
new-Item -Path $FolderPath -ItemType directory
New-Item -Path $PushInstallBinariesPath -ItemType directory -Force
New-Item -Path $PushInstallClientsRcmPath -ItemType directory -Force
New-Item -Path $DataProtectionBinariesPath -ItemType directory -Force
New-Item -Path $MarsAgentBinariesRcmPath -ItemType directory -Force
#Writing the first message into the log
Write-Output "Copying to InMStagingSvr" >> $Log_File
#Creating the directory structure in InMStagingSvr
foreach ($Path in "","UnifiedAgent_Builds")
{
foreach ($ConfigType in "release","debug")
{
foreach ($SubPath in "logs","symbol_tars")
{
New-Item -Path $FolderPath\$Path\$ConfigType -name $SubPath -ItemType directory
}
}
}
foreach ($ConfigType in "release","debug")
{
New-Item -Path $FolderPath\$ConfigType -name Test -ItemType directory
New-Item -Path $FolderPath\$ConfigType\Test -name CVT -ItemType directory
New-Item -Path $FolderPath\$ConfigType\Test -name Symbols -ItemType directory
New-Item -Path $FolderPath\$ConfigType\Test\Symbols -name CVT -ItemType directory
New-Item -Path $FolderPath\$ConfigType\Test\Symbols -name DITests -ItemType directory
New-Item -Path $FolderPath\$ConfigType\Test -name DITests -ItemType directory
New-Item -Path $FolderPath\$ConfigType -name AzureRecoveryTools -ItemType directory
New-Item -Path $FolderPath\$ConfigType\AzureRecoveryTools -name Symbols -ItemType directory
}
# Copying the build and symbol files to InMStagingSvr
if ($Product -eq "UCX")
{
Copy-Item "H:\builds\Daily_Builds\$Branch\HOST\$Date\$Config\InMage_CX_9.*.zip" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\symbol_tars -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\setup\DRA" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config -recurse -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\setup\MARS" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config -recurse -passthru >> $Log_File
# Copying the required RCM MARS binaries
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\server\MarsAgent\bin\$Config\*.exe" $MarsAgentBinariesRcmPath -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\server\MarsAgent\bin\$Config\MarsAgent.exe.config" $MarsAgentBinariesRcmPath -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\server\MarsAgent\bin\$Config\MARSAgent.pdb" $MarsAgentBinariesRcmPath -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\server\MarsAgent\bin\$Config\*.dll" $MarsAgentBinariesRcmPath -passthru >> $Log_File
Copy-Item "\\$Build_Machine\OneOffRequests\SetMarsProxy\SetMarsProxy.exe" $MarsAgentBinariesRcmPath -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\server\MarsAgent\bin\$Config\en" $MarsAgentBinariesRcmPath -Recurse -passthru >> $Log_File
}
if ($Product -eq "CX_TP")
{
Copy-Item "H:\builds\Daily_Builds\$Branch\HOST\$Date\$Config\InMage_CX_TP*.zip" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\symbol_tars -passthru >> $Log_File
}
if ($Product -eq "PI")
{
# Copy Pushinstall related binaries to staging server.
Copy-Item "$HostPath\PushInstall\RcmBasedPushInstall\$Config\RcmBasedPushInstall.exe" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\bin\$Config\VMware.Interfaces.dll" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\bin\$Config\VMware.VSphere.Management.dll" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\bin\$Config\VMwarePushInstall.exe" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\VMwarePushInstall.conf" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\bin\$Config\httpclient.dll" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\bin\$Config\InMageAPILibrary.dll" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\bin\$Config\Newtonsoft.Json.dll" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\bin\$Config\Vim25Service.dll" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\bin\$Config\CredentialStore.dll" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\bin\$Config\AutoMapper.dll" $PushInstallBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\VMwarePushInstall\bin\$Config\en" $PushInstallBinariesPath -Recurse -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\server\windows\Unix_LE_OS_details.sh" $PushInstallBinariesPath\OS_details.sh -Recurse -passthru >> $Log_File
Copy-Item "$HostPath\pushInstallerCli\$Config\pushClient.exe" $PushInstallClientsRcmPath\Windows_pushinstallclient_$ProdVersion.exe -passthru >> $Log_File
}
if ($Product -eq "ASRUA")
{
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\ASRSetup\UnifiedAgentMSI\x64\bin\Release\UnifiedAgentMSI.wixpdb" "\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\UnifiedAgent_Builds\$Config\symbol_tars\UnifiedAgentMSI_x64.wixpdb" -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\ASRSetup\UnifiedAgentMSI\x86\bin\Release\UnifiedAgentMSI.wixpdb" "\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\UnifiedAgent_Builds\$Config\symbol_tars\UnifiedAgentMSI_x86.wixpdb" -passthru >> $Log_File
Copy-Item "H:\BUILDS\Daily_Builds\$Branch\HOST\$Date\$Config\Microsoft-ASR_UA_*.exe" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\UnifiedAgent_Builds\$Config -passthru >> $Log_File
Copy-Item "H:\BUILDS\Daily_Builds\$Branch\HOST\$Date\$Config\InMage_ASRUA*.zip" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\UnifiedAgent_Builds\$Config\symbol_tars -passthru -ErrorAction Ignore >> $Log_File
Copy-Item "H:\builds\Daily_Builds\$Branch\HOST\$Date\$Config\InMage_UA_*.zip" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\UnifiedAgent_Builds\$Config\symbol_tars -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\CVT\*.ps1" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\Test\CVT -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\$Config\*.dll" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\Test\CVT -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\$Config\*.exe" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\Test\CVT -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\$Config\*.pdb" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\Test\Symbols\CVT -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\DITests\$Config\*.exe" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\Test\DITests -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\DITests\$Config\*.dll" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\Test\DITests -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\DITests\$Config\*.pdb" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\Test\Symbols\DITests -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\AzureRecoveryUtil\$Config\*.exe" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\AzureRecoveryTools -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\AzureRecoveryUtil\Scripts\win32\StartupScript.ps1" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\AzureRecoveryTools -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\AzureRecoveryUtil\$Config\*.pdb" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\AzureRecoveryTools\Symbols -passthru >> $Log_File
& { C:\'Program Files (x86)'\7-zip\7z.exe a -tzip "\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\release\AzureRecoveryTools\AzureRecoveryTools.zip" "\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\release\AzureRecoveryTools\*" -mx0 -xr!"\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\release\AzureRecoveryTools\Symbols\" -x!"\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\release\AzureRecoveryTools\StartupScript.*" -x!"\\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\release\AzureRecoveryTools\*.zip" }
Copy-Item "$HostPath\DataProtectionSyncRcm\$Config\DataProtectionSyncRcm.exe" $DataProtectionBinariesPath -passthru >> $Log_File
Copy-Item "$HostPath\DataProtectionSyncRcm\$Config\DataProtectionSyncRcm.pdb" $DataProtectionBinariesPath -passthru >> $Log_File
# Copy the GQL scripts to staging server
if ($Branch -eq "develop")
{
Remove-Item \\$Build_Machine\V2AGQLShare\scripts\*.ps1 >> $Log_File
Remove-Item \\$Build_Machine\V2AGQLShare\scripts\AddAccounts.exe >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\ScenarioGQL\V2A\*.ps1" \\$Build_Machine\V2AGQLShare\scripts >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\ScenarioGQL\V2A\V2AGQLTests\AddAccounts\bin\$Config\AddAccounts.exe" \\$Build_Machine\V2AGQLShare\scripts >> $Log_File
// Copy A2A GQL scripts to share
Remove-Item \\$Build_Machine\A2AGQLShare\scripts\*.xml >> $Log_File
Remove-Item \\$Build_Machine\A2AGQLShare\scripts\*.ps1 >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\ScenarioGQL\A2A\*.ps1" \\$Build_Machine\A2AGQLShare\scripts >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\host\tests\ScenarioGQL\A2A\*.xml" \\$Build_Machine\A2AGQLShare\scripts >> $Log_File
// Below script cannot be checked into GIT due to SAS token are not allowed. This reporting will be deprecated with CloudTest migration, not fixing this.
Copy-Item "\\$Build_Machine\A2AGQLShare\TestStatus\TestStatus.ps1" \\$Build_Machine\A2AGQLShare\scripts >> $Log_File
}
}
if ($Product -eq "ASRSETUP")
{
Copy-Item "H:\BUILDS\Daily_Builds\$Branch\HOST\$Date\$Config\MicrosoftAzureSiteRecoveryUnifiedSetup.exe" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config -passthru >> $Log_File
Copy-Item "H:\BUILDS\Daily_Builds\$Branch\HOST\$Date\$Config\InMage_ASRSETUP*.zip" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\symbol_tars -passthru >> $Log_File
if ($Config -eq "release")
{
Copy-Item "H:\BUILDS\Daily_Builds\$Branch\HOST\$Date\release\AzureRecoveryTools.exe" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\release\AzureRecoveryTools -passthru >> $Log_File
}
}
if ($Product -eq "PSMSI")
{
Copy-Item "H:\BUILDS\Daily_Builds\$Branch\HOST\$Date\$Config\ProcessServer.msi" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config -passthru >> $Log_File
Copy-Item "H:\BUILDS\Daily_Builds\$Branch\HOST\$Date\$Config\InMage_PSMSI*.zip" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\symbol_tars -passthru >> $Log_File
Copy-Item "I:\SRC\$Branch\InMage-Azure-SiteRecovery\server\windows\ProcessServerMSI\x64\bin\Release\ProcessServer.wixpdb" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\symbol_tars -passthru >> $Log_File
}
if ($Product -eq "PSGI")
{
Copy-Item "H:\BUILDS\Daily_Builds\$Branch\HOST\$Date\DeployPS.log" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\ -passthru >> $Log_File
}
# Copying logs to InMStagingSvr
Copy-Item "H:\builds\Daily_Builds\$Branch\HOST\$Date\$Config\logs\*" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date\$Config\logs -passthru >> $Log_File
Copy-Item "H:\builds\Daily_Builds\$Branch\HOST\$Date\*.txt" \\$Build_Machine\DailyBuilds\Daily_Builds\$Branch_Dest\HOST\$Date -passthru >> $Log_File