diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2013-09-30 13:19:31 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2013-09-30 13:19:31 -0700 |
commit | fa204e0efb1fea305107ad2c4c10226e61879da0 (patch) | |
tree | f602315cf24fab210483413463f14741ac7779fb | |
parent | 2a4ae8fe7c4b406a30f2c9e8257a20504dba9236 (diff) | |
download | chef-fa204e0efb1fea305107ad2c4c10226e61879da0.tar.gz |
use separate gemspec for windows
- allows us to explicitly version pin in the gemspec on gem installs
rather than getting different behavior from 'gem install' and
'bundle install' (gemspec vs. Gemfile).
- the mingw deps had been in the Gemfile because it needed to be a
group since gemspecs do not have groups. this builds two different
gems for publication to rubygems instead.
- see mixlib-shellout for the prototype of where this has been done
(successfully).
-rw-r--r-- | chef/Gemfile | 20 | ||||
-rw-r--r-- | chef/Rakefile | 16 | ||||
-rw-r--r-- | chef/chef-x86-mingw32.gemspec | 19 |
3 files changed, 32 insertions, 23 deletions
diff --git a/chef/Gemfile b/chef/Gemfile index dbf5204946..440634bff3 100644 --- a/chef/Gemfile +++ b/chef/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' -gemspec +gemspec :name => "chef" gem "dep_selector", :group => :server, :platform => "ruby" gem "activesupport", "< 4.0.0", :group => :compat_testing, :platform => "ruby" @@ -17,24 +17,6 @@ group(:development, :test) do # gem 'pry' end -platforms :mswin, :mingw do - gem "systemu", "2.2.0" # CHEF-3718 - gem "ffi", "1.0.9" - gem "rdp-ruby-wmi", "0.3.1" - gem "windows-api", "0.4.0" - gem "windows-pr", "1.2.1" - gem "win32-api", "1.4.8" - gem "win32-dir", "0.3.7" - gem "win32-event", "0.5.2" - gem "win32-mutex", "0.3.1" - gem "win32-process", "0.6.5" - gem "win32-service", "0.7.2" -end - -platforms :mingw_18 do - gem "win32-open3", "0.3.2" -end - # If you want to load debugging tools into the bundle exec sandbox, # add these additional dependencies into chef/Gemfile.local eval(IO.read(__FILE__ + '.local'), binding) if File.exists?(__FILE__ + '.local') diff --git a/chef/Rakefile b/chef/Rakefile index b227bd3e7a..dc441e3802 100644 --- a/chef/Rakefile +++ b/chef/Rakefile @@ -26,13 +26,12 @@ require './tasks/rspec.rb' GEM_NAME = "chef" -spec = eval(File.read("chef.gemspec")) - # This has to be here or else the docs get generated *after* the gem is created task :gem => 'docs:all' -Gem::PackageTask.new(spec) do |pkg| - pkg.gem_spec = spec +Dir[File.expand_path("../*gemspec", __FILE__)].reverse.each do |gemspec_path| + gemspec = eval(IO.read(gemspec_path)) + Gem::PackageTask.new(gemspec).define end begin @@ -58,6 +57,15 @@ task :uninstall do sh %{gem uninstall #{GEM_NAME} -x -v #{Chef::VERSION} } end +desc "Build it, tag it and ship it" +task :ship => :gem do + sh("git tag #{Chef::VERSION}") + sh("git push opscode --tags") + Dir[File.expand_path("../pkg/*.gem", __FILE__)].reverse.each do |built_gem| + sh("gem push #{built_gem}") + end +end + RONN_OPTS = "--manual='Chef Manual' --organization='Chef #{Chef::VERSION}' --date='#{Time.new.strftime('%Y-%m-%d')}'" namespace :docs do diff --git a/chef/chef-x86-mingw32.gemspec b/chef/chef-x86-mingw32.gemspec new file mode 100644 index 0000000000..83f6009fd6 --- /dev/null +++ b/chef/chef-x86-mingw32.gemspec @@ -0,0 +1,19 @@ +# x86-mingw32 Gemspec # +gemspec = eval(IO.read(File.expand_path("../chef.gemspec", __FILE__))) + +gemspec.platform = "x86-mingw32" + +gemspec.add_dependency "systemu", "2.2.0" # CHEF-3718 +gemspec.add_dependency "ffi", "1.0.9" +gemspec.add_dependency "rdp-ruby-wmi", "0.3.1" +gemspec.add_dependency "windows-api", "0.4.0" +gemspec.add_dependency "windows-pr", "1.2.1" +gemspec.add_dependency "win32-api", "1.4.8" +gemspec.add_dependency "win32-dir", "0.3.7" +gemspec.add_dependency "win32-event", "0.5.2" +gemspec.add_dependency "win32-mutex", "0.3.1" +gemspec.add_dependency "win32-process", "0.6.5" +gemspec.add_dependency "win32-service", "0.7.2" + +gemspec + |