summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSutou Kouhei <kou@clear-code.com>2022-04-16 07:08:19 +0900
committergit <svn-admin@ruby-lang.org>2022-04-16 07:08:41 +0900
commit22f79ae3f749ebe31c34c22d5b8699ffd81ab341 (patch)
tree2354103446e95ab5180d551a776e8a1ed3a530d4
parent566fb7fa7d7c221b7048fc27d206d90739a2abc6 (diff)
[ruby/stringio] Add push task to push built gems
https://github.com/ruby/stringio/commit/4431eefbad
-rw-r--r--rakelib/release.rake30
1 files changed, 30 insertions, 0 deletions
diff --git a/rakelib/release.rake b/rakelib/release.rake
new file mode 100644
index 0000000000..ca9ab714c9
--- /dev/null
+++ b/rakelib/release.rake
@@ -0,0 +1,30 @@
+release_task = Rake.application["release"]
+release_task.prerequisites.delete("build")
+release_task.prerequisites.delete("release:rubygem_push")
+release_task_comment = release_task.comment
+if release_task_comment
+ release_task.clear_comments
+ release_task.comment = release_task_comment.gsub(/ and build.*$/, "")
+end
+
+desc "Push built gems"
+task "push" do
+ require "open-uri"
+ helper = Bundler::GemHelper.instance
+ gemspec = helper.gemspec
+ name = gemspec.name
+ version = gemspec.version.to_s
+ pkg_dir = "pkg"
+ mkdir_p(pkg_dir)
+ ["", "-java"].each do |type|
+ base_url = "https://github.com/ruby/#{name}/releases/download"
+ url = URI("#{base_url}/v#{version}/#{name}-#{version}#{type}.gem")
+ path = "#{pkg_dir}/#{File.basename(url.path)}"
+ url.open do |input|
+ File.open(path, "wb") do |output|
+ IO.copy_stream(input, output)
+ end
+ helper.__send__(:rubygem_push, path)
+ end
+ end
+end