GSL/asm/scripts/deploy-asm.ps1

46 lines
1.3 KiB
PowerShell

# Include the API access functions
. $PSScriptRoot\API-Functions.ps1
function collectAsm {
# Create branch to merge asm into
git fetch --all 2>&1
$asmFinalBranch = "asm/$($env:APPVEYOR_REPO_COMMIT)/final"
git checkout -b $asmFinalBranch $env:APPVEYOR_REPO_BRANCH
#merge all branches into final branch
(Get-AppVeyorBuild).build.jobs | Foreach-Object {
$branchName = "asm/$($env:APPVEYOR_REPO_COMMIT)/appveyor-$($_.jobId)"
#Check that all branches exist
git ls-remote --heads --exit-code https://github.com/dadonenf/GSL.git $branchName
if(-not $?){
throw "Missing branch for job $($_.jobId)"
}
git merge $branchName 2>&1
}
#Merge all branches into master
git checkout master 2>&1
cmd.exe /c "git merge --squash $($asmFinalBranch)"
if(-not $?){
throw "Failed merge"
}
git diff-index --cached --quiet --exit-code HEAD
if(-not $?) {
git commit -m "[skip ci] Update ASM for $($env:APPVEYOR_REPO_COMMIT)"
git push
}
}
Write-Host "Starting asm deployment"
# Wait for all jobs
if(appveyorFinished) {
Write-Host "Appveyor Finished, collecting ASM"
# Collect ASM (currently from Appveyor only)
collectAsm
}