49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
| . .\scripts\appveyor\appveyor_get_build.ps1
 | |
| . .\scripts\appveyor\appveyor_get_artifacts.ps1
 | |
| 
 | |
| # Only deploy when commit message contains "[deploy]"
 | |
| if (!(Get-AppVeyorBuild).build.message.Contains('[deploy]')) { return }
 | |
| 
 | |
| # Deploy once on last job
 | |
| if ($env:APPVEYOR_JOB_NUMBER -ne $env:job_to_deploy) { return }
 | |
| 
 | |
| # Wait for other jobs complete
 | |
| Write-Host "Waiting for other jobs to complete"
 | |
| 
 | |
| [datetime]$stop = ([datetime]::Now).AddMinutes($env:time_out_mins)
 | |
| [bool]$success = $false
 | |
| 
 | |
| while(!$success -and ([datetime]::Now) -lt $stop) {
 | |
|     $success = $true
 | |
|     (Get-AppVeyorBuild).build.jobs | foreach-object {
 | |
|         if (($_.jobId -ne $env:APPVEYOR_JOB_ID) -and ($_.status -ne "success")) {
 | |
|             $success = $false
 | |
|         }
 | |
|         Write-Host "Job `"$($_.jobId)`" $($_.status)";
 | |
|     }
 | |
|     if (!$success) { Start-sleep 5 }
 | |
| }
 | |
| 
 | |
| if (!$success) {
 | |
|     throw "Test jobs were not finished in $env:time_out_mins minutes"
 | |
| }
 | |
| 
 | |
| # get job artifacts
 | |
| (Get-AppVeyorBuild).build.jobs | foreach-object {
 | |
|     $jobId = $_.jobId
 | |
|     if ($jobId -ne $env:APPVEYOR_JOB_ID) {
 | |
|         # Get job artifacts information
 | |
|         (Get-AppVeyorArtifacts -Job $jobId) | foreach-object {
 | |
|             # Create directory if not exists
 | |
|             $filePath = $_.fileName.Substring(0, $_.fileName.LastIndexOf('/'))
 | |
|             if (!(Test-Path -Path $filePath)) {
 | |
|                 New-Item -ItemType "directory" -Path $filePath
 | |
|             }
 | |
|             # Download artifact from other job
 | |
|             Start-FileDownload "https://ci.appveyor.com/api/buildjobs/$jobId/artifacts/$($_.fileName)" -FileName $_.fileName
 | |
|         }
 | |
|     };
 | |
| }
 | |
| 
 | |
| # Set flag to deploy
 | |
| $env:flag_to_deploy = $success |