summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSoutaro Matsumoto <matsumoto@soutaro.com>2020-10-09 18:41:20 +0900
committerGitHub <noreply@github.com>2020-10-09 18:41:20 +0900
commit02e17d473a5edef69b8c03a8e2b91fdd0c27ed75 (patch)
treef0e015ff77cd978baacff88db9c146cfe7aa1e5a
parent8d1b18886459d3f92cbaf6547f22f893a9a2ced1 (diff)
Let bundled_gems specify commits to test (#3641)
Notes
Notes: Merged-By: soutaro <matsumoto@soutaro.com>
-rw-r--r--gems/bundled_gems5
-rwxr-xr-xtool/fetch-bundled_gems.rb14
2 files changed, 11 insertions, 8 deletions
diff --git a/gems/bundled_gems b/gems/bundled_gems
index 13309a4285..25335eabf2 100644
--- a/gems/bundled_gems
+++ b/gems/bundled_gems
@@ -1,7 +1,8 @@
+# gem-name version-to-bundle repository-url [optional-commit-hash-to-test-or-defaults-to-v-version]
minitest 5.14.2 https://github.com/seattlerb/minitest
power_assert 1.2.0 https://github.com/ruby/power_assert
rake 13.0.1 https://github.com/ruby/rake
-test-unit 3.3.6 https://github.com/test-unit/test-unit
+test-unit 3.3.6 https://github.com/test-unit/test-unit 3.3.6
rexml 3.2.4 https://github.com/ruby/rexml
-rss 0.2.9 https://github.com/ruby/rss
+rss 0.2.9 https://github.com/ruby/rss 0.2.9
rbs 0.12.2 https://github.com/ruby/rbs
diff --git a/tool/fetch-bundled_gems.rb b/tool/fetch-bundled_gems.rb
index 4ba1848d00..ebb70e88f9 100755
--- a/tool/fetch-bundled_gems.rb
+++ b/tool/fetch-bundled_gems.rb
@@ -8,18 +8,20 @@ BEGIN {
Dir.chdir(dir)
}
-n, v, u = $F
+n, v, u, r = $F
+
+next if n =~ /^#/
if File.directory?(n)
puts "updating #{n} ..."
- system("git", (v == "master" ? "pull" : "fetch"), chdir: n) or abort
+ system("git", "fetch", chdir: n) or abort
else
puts "retrieving #{n} ..."
system(*%W"git clone #{u} #{n}") or abort
end
+c = r || "v#{v}"
checkout = %w"git -c advice.detachedHead=false checkout"
-unless system(*checkout, v.sub(/\A(?=\d)/, 'v'), chdir: n)
- unless /\A\d/ =~ v and system(*checkout, v, chdir: n)
- abort
- end
+puts "checking out #{c} (v=#{v}, r=#{r}) ..."
+unless system(*checkout, c, "--", chdir: n)
+ abort
end