Hacer idempotente la creacion de release (borra release/tag previos si el tag no cambio)
Build Fritzing on Windows / build (push) Has been cancelled
Build Fritzing on Windows / build (push) Has been cancelled
This commit is contained in:
@@ -723,6 +723,37 @@ jobs:
|
||||
run: |
|
||||
$headers = @{ Authorization = "token $env:GITEA_TOKEN" }
|
||||
|
||||
# Si ya existe una release con este tag (p.ej. se relanzo el
|
||||
# workflow sin cambios de version en fritzing-app), se borra
|
||||
# primero para dejar el paso idempotente.
|
||||
try {
|
||||
$existing = Invoke-RestMethod `
|
||||
-Uri "$env:GITEA_API/releases/tags/$env:FRITZING_VER" `
|
||||
-Headers $headers `
|
||||
-Method Get
|
||||
|
||||
Write-Host "Release $env:FRITZING_VER ya existe (id $($existing.id)), se borra para recrearla"
|
||||
|
||||
Invoke-RestMethod `
|
||||
-Uri "$env:GITEA_API/releases/$($existing.id)" `
|
||||
-Headers $headers `
|
||||
-Method Delete
|
||||
} catch {
|
||||
Write-Host "No habia release previa para $env:FRITZING_VER"
|
||||
}
|
||||
|
||||
# Tambien se borra el tag git subyacente si quedo de una release
|
||||
# anterior, para que la creacion de abajo no choque con el.
|
||||
try {
|
||||
Invoke-RestMethod `
|
||||
-Uri "$env:GITEA_API/tags/$env:FRITZING_VER" `
|
||||
-Headers $headers `
|
||||
-Method Delete
|
||||
Write-Host "Tag $env:FRITZING_VER previo borrado"
|
||||
} catch {
|
||||
Write-Host "No habia tag previo para $env:FRITZING_VER"
|
||||
}
|
||||
|
||||
$releaseBody = @{
|
||||
tag_name = $env:FRITZING_VER
|
||||
name = "Fritzing $env:FRITZING_VER"
|
||||
|
||||
Reference in New Issue
Block a user