.github/workflows/utils.rb in xot-0.1.31 vs .github/workflows/utils.rb in xot-0.1.32
- old
+ new
@@ -1,24 +1,32 @@
+RENAMES = {reflex: 'reflexion'}
+
def sh(cmd)
puts cmd
system cmd
end
def setup_dependencies(build: true, only: nil)
gemspec_path = `git ls-files`.lines(chomp: true).find {|l| l =~ /\.gemspec$/}
- gemspec = File.read gemspec_path
- name = File.basename gemspec_path, '.gemspec'
+ return unless gemspec_path
+ gemspec = File.read gemspec_path
+ name = File.basename gemspec_path, '.gemspec'
+
exts = File.readlines('Rakefile')
.map {|l| l[%r|^\s*require\W+(\w+)/extension\W+$|, 1]}
.compact
.reject {|ext| ext == name}
exts = exts & [only].flatten.map(&:to_s) if only
exts.each do |ext|
- ver = gemspec[/add_runtime_dependency.*'#{ext}'.*'\s*~>\s*([\d\.]+)\s*'/, 1]
- url = "https://github.com/xord/#{ext}.git"
- sh %( git clone --depth 1 --branch v#{ver} #{url} ../#{ext} )
+ gem = RENAMES[ext.to_sym].then {|s| s || ext}
+ clone = "git clone --depth 1 https://github.com/xord/#{ext}.git ../#{ext}"
+ ver = gemspec[/add_runtime_dependency.*['"]#{gem}['"].*['"]\s*~>\s*([\d\.]+)\s*['"]/, 1]
+
+ # 'rake subtree:push' pushes all subrepos, so cloning by new tag
+ # often fails before tagging each new tag
+ sh %( #{clone} --branch v#{ver} || #{clone} )
sh %( cd ../#{ext} && rake ext )
end
end
def tag_versions()