python-versions/builders/python-versions-runner.ps1

51 lines
2.0 KiB
PowerShell
Raw Normal View History

<#
.SYNOPSIS
Generate Python artifact.
.DESCRIPTION
Script that triggering and fetching the result of the "Build python package" workflow with provided python version
.PARAMETER Version
Required parameter. Python version to trigger build for.
#>
param(
[Parameter (Mandatory=$true, HelpMessage="Python version to trigger build for")]
[string] $Version
)
$payload = @{
"ref" = "main"
"inputs" = @{
"VERSION" = "$Version"
"PUBLISH_RELEASES" = "false"
}
} | ConvertTo-Json
$headers = @{
Authorization="Bearer $env:PERSONAL_TOKEN"
}
Invoke-RestMethod -uri "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/actions/workflows/python-builder.yml/dispatches" -method POST -headers $headers -body $payload
while (!$workflowToCheck) {
Start-Sleep -seconds 40
$workflowRuns = (Invoke-RestMethod "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/actions/runs").workflow_runs | Where-Object {$_.status -like "*progress*" -and $_.id -ne $env:GITHUB_RUN_ID}
$workflowToCheck = $workflowRuns | Where-Object {
((Invoke-RestMethod "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/actions/runs/$($_.id)/jobs").jobs.steps.name -match "$Version").Count -gt 0
}
$retries ++
if ($retries -gt 10) {
Write-Host "No workflow triggered or something went wrong with fetching its status"
exit 1
}
}
Write-Host "Triggered workflow with Id: $($workflowToCheck.id) , Url: $($workflowToCheck.url)"
while ($workflowToCheck.status -ne "completed") {
Start-Sleep -Seconds 120
$workflowToCheck = Invoke-RestMethod "$env:GITHUB_API_URL/repos/$env:GITHUB_REPOSITORY/actions/runs/$($workflowToCheck.id)"
Write-Host "Workflow run with Id: $($workflowToCheck.id) - status '$($workflowToCheck.status)'"
}
if ($workflowToCheck.conclusion -ne "success") {
Write-Host "Triggered workflow completed with result '$($workflowToCheck.conclusion)'. Check logs: $($workflowToCheck.logs_url)"
exit 1
}
Write-Host "Triggered workflow succeeded; Url: $($workflowToCheck.url)"