diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 45da9c3..27456e1 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -53,7 +53,7 @@ jobs: run: | $version = "${{ steps.extract_version.outputs.version }}" $tag = "v$version" - git show-ref --tags --quiet --verify "refs/tags/$tag" + git ls-remote --tags origin "refs/tags/$tag" | Out-Null $tagExists = ($LASTEXITCODE -eq 0) $global:LASTEXITCODE = 0 $utf8NoBom = New-Object System.Text.UTF8Encoding($false) @@ -66,6 +66,25 @@ jobs: } exit 0 + - name: Stop if release already exists + if: env.CONTINUE == 'true' + shell: powershell + run: | + $version = "${{ steps.extract_version.outputs.version }}" + $tag = "v$version" + $apiUrl = "https://git.daemonlord.ru/api/v1/repos/${{ gitea.repository }}/releases/tags/$tag" + $headers = @{ Authorization = "token ${{ secrets.API_TOKEN }}" } + $utf8NoBom = New-Object System.Text.UTF8Encoding($false) + try { + $response = Invoke-WebRequest -Uri $apiUrl -Headers $headers -Method Get -UseBasicParsing + if ($response.StatusCode -eq 200) { + Write-Host "Release $tag already exists, stopping job." + [System.IO.File]::AppendAllText($env:GITHUB_ENV, "CONTINUE=false`n", $utf8NoBom) + } + } catch { + Write-Host "Release $tag not found, continuing workflow..." + } + - name: Run tests if: env.CONTINUE == 'true' shell: powershell