diff --git a/.gitea/workflows/windows.yml b/.gitea/workflows/windows.yml index ef61ef3..06b101e 100644 --- a/.gitea/workflows/windows.yml +++ b/.gitea/workflows/windows.yml @@ -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"