diff --git a/appveyor.yml b/appveyor.yml index 9309b6a..9addce7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -153,16 +153,15 @@ deploy_script: on_finish: - ps: | + Push-Location $env:APPVEYOR_BUILD_FOLDER + . .\asm\scripts\API-Functions.ps1 if(-not (Test-Path env:APPVEYOR_PULL_REQUEST_NUMBER)) { # Delete all branches for asm if this is the last build - $build = Invoke-RestMethod -Uri "https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG" -Method GET -Headers @{ - "Authorization" = "Bearer $env:APPVEYOR_API_TOKEN" - "Content-type" = "application/json" - } - $jobs = $buildData.build.jobs + $build = Get-AppVeyorBuild + $jobs = $build.build.jobs $lastJob = ($jobs | Select-Object -Last 1) - Write-Host "Build : $($buildData.build)" + Write-Host "Build : $($build.build)" Write-Host "Jobs:" $jobs | Foreach-Object { diff --git a/asm/scripts/deploy-asm.ps1 b/asm/scripts/deploy-asm.ps1 index 9f428a7..e5c3253 100644 --- a/asm/scripts/deploy-asm.ps1 +++ b/asm/scripts/deploy-asm.ps1 @@ -1,95 +1,5 @@ -function Get-AppVeyorBuild { - param() - - if (-not ($env:APPVEYOR_API_TOKEN)) { - throw "missing api token for AppVeyor." - } - - Invoke-RestMethod -Uri "https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG" -Method GET -Headers @{ - "Authorization" = "Bearer $env:APPVEYOR_API_TOKEN" - "Content-type" = "application/json" - } -} - -function Get-TravisBuild { - param( - [int]$limit = 10, - [int]$maxLimit = 100 - ) - if (-not ($env:TRAVIS_API_TOKEN)) { - throw "missing api token for Travis-CI." - } - - $builds = Invoke-RestMethod -Uri "https://api.travis-ci.org/builds?limit=$($limit)" -Method Get -Headers @{ - "Authorization" = "token $env:TRAVIS_API_TOKEN" - "Travis-API-Version" = "3" - } - $currentBuild = $builds.builds | Where-Object {$_.commit.sha -eq $env:APPVEYOR_REPO_COMMIT} - if (!$currentBuild) { - if($limit+10 -le $maxLimit) { - return Get-TravisBuild -limit $limit+10 -maxLimit $maxLimit - } else { - throw "Could not get information about Travis build with sha $REPO_COMMIT" - } - } - return $currentBuild -} - -function appveyorFinished { - param() - $buildData = Get-AppVeyorBuild - $lastJob = ($buildData.build.jobs | Select-Object -Last 1).jobId - - if ($lastJob -ne $env:APPVEYOR_JOB_ID) { - return $false - } - - [datetime]$stop = ([datetime]::Now).AddMinutes($env:TIMEOUT_MINS) - - do { - - $allSuccess = $true - (Get-AppVeyorBuild).build.jobs | Where-Object {$_.jobId -ne $env:APPVEYOR_JOB_ID} | Foreach-Object ` - { - $job = $_ - switch ($job.status) { - "failed" { throw "AppVeyor's Job ($($job.jobId)) failed." } - "success" { continue } - Default { $allSuccess = $false } - } - } - if ($allSuccess) { return $true } - Start-sleep 5 - } while (([datetime]::Now) -lt $stop) - - throw "Test jobs were not finished in $env:TIMEOUT_MINS minutes" -} - -function travisFinished { - param() - - [datetime]$stop = ([datetime]::Now).AddMinutes($env:TIMEOUT_MINS) - - do { - $builds = Get-TravisBuild - $currentBuild = $builds.builds | Where-Object {$_.commit.sha -eq $env:APPVEYOR_REPO_COMMIT} - if (!$currentBuild) { - throw "Could not get information about Travis build with sha $REPO_COMMIT" - } - switch -regex ($currentBuild.state) { - "^passed$" { - return $true - } - "^(errored|failed|canceled)" { - throw "Travis Job ($($builds.builds.id)) failed" - } - } - - Start-sleep 5 - } while (([datetime]::Now) -lt $stop) - - throw "Travis build did not finished in $env:TIMEOUT_MINS minutes" -} +# Include the API access functions +. .\API-Functions.ps1 function collectAsm { # Create branch to merge asm into