From d1cdd60700ff78b04e01df6826cda3d6f6a67fe5 Mon Sep 17 00:00:00 2001 From: Lars Kanis Date: Wed, 8 Oct 2025 21:29:25 +0200 Subject: [PATCH] CI: Workaround duplicated release creation --- lib/ruby_installer/build/release.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/ruby_installer/build/release.rb b/lib/ruby_installer/build/release.rb index 7b12590a6..08b8c67f6 100644 --- a/lib/ruby_installer/build/release.rb +++ b/lib/ruby_installer/build/release.rb @@ -105,7 +105,17 @@ def upload_to_github(tag:, repo:, token: nil, files:) ) end - old_assets = client.release_assets(release.url) + # Recheck all releases to avoid duplicated release creation + release2 = nil + (1..100).find do |page| + release2 = client.releases(repo, page: page).find{|r| r.tag_name==tag } + end + # Did we create a second release in parallel? + if release.id != release2.id + client.delete_release(release.url) + end + + old_assets = client.release_assets(release2.url) files.each do |fname| if old_asset=old_assets.find{|a| a.name == File.basename(fname) } @@ -114,7 +124,7 @@ def upload_to_github(tag:, repo:, token: nil, files:) end $stderr.print "Uploading #{fname} (#{File.size(fname)} bytes) ... " - client.upload_asset(release.url, fname, content_type: CONTENT_TYPE_FOR_EXT[File.extname(fname)]) + client.upload_asset(release2.url, fname, content_type: CONTENT_TYPE_FOR_EXT[File.extname(fname)]) $stderr.puts "OK" end end