diff options
author | danielsdeleo <dan@getchef.com> | 2015-05-13 17:05:40 -0700 |
---|---|---|
committer | danielsdeleo <dan@getchef.com> | 2015-05-20 15:13:56 -0700 |
commit | 1428270b0f2d0f2ae5d62ecb2aa512ffa7ac773e (patch) | |
tree | 9d98fa3d2a9f1b7ffcd49cd1465b8aa3269e6430 | |
parent | 12a608c962d2eaa6c8b410794530fb104167162c (diff) | |
download | chef-1428270b0f2d0f2ae5d62ecb2aa512ffa7ac773e.tar.gz |
Update rake tasks for componentization
-rw-r--r-- | Rakefile | 88 | ||||
-rw-r--r-- | VERSION | 1 | ||||
-rw-r--r-- | chef-config/Rakefile | 55 | ||||
-rw-r--r-- | chef-config/chef-config.gemspec | 2 | ||||
-rw-r--r-- | chef-config/lib/chef-config/version.rb | 23 | ||||
-rw-r--r-- | chef.gemspec | 2 | ||||
-rw-r--r-- | lib/chef/version.rb | 10 | ||||
-rw-r--r-- | tasks/rspec.rb | 12 |
8 files changed, 181 insertions, 12 deletions
@@ -17,7 +17,7 @@ # limitations under the License. # -require File.dirname(__FILE__) + '/lib/chef/version' +VERSION = IO.read(File.expand_path("../VERSION", __FILE__)).strip require 'rubygems' require 'rubygems/package_task' @@ -27,22 +27,99 @@ require_relative 'tasks/external_tests' GEM_NAME = "chef" +desc "build Gems of Chef's components" +task :package_components do + Dir.chdir("chef-config") do + sh "rake package" + end +end + +task :package => :package_components + +desc "build and install chef's components" +task :install_components => :package_components do + Dir.chdir("chef-config") do + sh "rake install" + end +end + +task :install => :install_components + +desc "clean up builds of Chef's components" +task :clobber_component_packages do + Dir.chdir("chef-config") do + sh "rake clobber_package" + end +end + +task :clobber_package => :clobber_component_packages + +desc "Update the version number for Chef's components" +task :update_components_versions do + Dir.chdir("chef-config") do + sh "rake version" + end +end + +desc "Regenerate lib/chef/version.rb from VERSION file" +task :version => :update_components_versions do + contents = <<-VERSION_RB +# Copyright:: Copyright (c) 2010-2015 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# NOTE: This file is generated by running `rake version` in the top level of +# this repo. Do not edit this manually. Edit the VERSION file and run the rake +# task instead. +#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +class Chef + CHEF_ROOT = File.dirname(File.expand_path(File.dirname(__FILE__))) + VERSION = '#{VERSION}' +end + +# +# NOTE: the Chef::Version class is defined in version_class.rb +# +# NOTE: DO NOT Use the Chef::Version class on Chef::VERSIONs. The +# Chef::Version class is for _cookbooks_ only, and cannot handle +# pre-release chef-client versions like "10.14.0.rc.2". Please +# use Rubygem's Gem::Version class instead. +# +VERSION_RB + version_rb_path = File.expand_path("../lib/chef/version.rb", __FILE__) + IO.write(version_rb_path, contents) +end + Dir[File.expand_path("../*gemspec", __FILE__)].reverse.each do |gemspec_path| gemspec = eval(IO.read(gemspec_path)) Gem::PackageTask.new(gemspec).define end -task :install => :package do - sh %{gem install pkg/#{GEM_NAME}-#{Chef::VERSION}.gem --no-rdoc --no-ri} +desc "Build and install a chef gem" +task :install => [:package] do + sh %{gem install pkg/#{GEM_NAME}-#{VERSION}.gem --no-rdoc --no-ri} end task :uninstall do - sh %{gem uninstall #{GEM_NAME} -x -v #{Chef::VERSION} } + sh %{gem uninstall #{GEM_NAME} -x -v #{VERSION} } end desc "Build it, tag it and ship it" task :ship => [:clobber_package, :gem] do - sh("git tag #{Chef::VERSION}") + sh("git tag #{VERSION}") sh("git push opscode --tags") Dir[File.expand_path("../pkg/*.gem", __FILE__)].reverse.each do |built_gem| sh("gem push #{built_gem}") @@ -80,3 +157,4 @@ begin rescue LoadError puts "yard is not available. (sudo) gem install yard to generate yard documentation." end + diff --git a/VERSION b/VERSION new file mode 100644 index 0000000000..1e37dfcda9 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +12.4.0.dev.0 diff --git a/chef-config/Rakefile b/chef-config/Rakefile index 809eb5616a..6eb195f672 100644 --- a/chef-config/Rakefile +++ b/chef-config/Rakefile @@ -1,2 +1,55 @@ -require "bundler/gem_tasks" +require 'rspec/core/rake_task' +require 'rubygems/package_task' + +VERSION = IO.read(File.expand_path("../../VERSION", __FILE__)).strip + +Dir[File.expand_path("../*gemspec", __FILE__)].reverse.each do |gemspec_path| + gemspec = eval(IO.read(gemspec_path)) + Gem::PackageTask.new(gemspec).define +end + +desc "Build and install a chef-config gem" +task :install => [:package] do + sh %{gem install pkg/chef-config-#{ChefConfig::VERSION}.gem --no-rdoc --no-ri} +end + +task :default => :spec + +desc "Run standard specs" +RSpec::Core::RakeTask.new(:spec) do |t| + t.pattern = FileList['spec/**/*_spec.rb'] +end + +desc "Regenerate lib/chef/version.rb from VERSION file" +task :version do + contents = <<-VERSION_RB +# Copyright:: Copyright (c) 2010-2015 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# NOTE: This file is generated by running `rake version` in the top level of +# this repo. Do not edit this manually. Edit the VERSION file and run the rake +# task instead. +#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +module ChefConfig + VERSION = '#{VERSION}' +end + +VERSION_RB + version_rb_path = File.expand_path("../lib/chef-config/version.rb", __FILE__) + IO.write(version_rb_path, contents) +end diff --git a/chef-config/chef-config.gemspec b/chef-config/chef-config.gemspec index 74789a7328..f0a569f3c1 100644 --- a/chef-config/chef-config.gemspec +++ b/chef-config/chef-config.gemspec @@ -24,7 +24,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency(rspec, "~> 3.2") end - spec.files = %w(Rakefile LICENSE README.md CONTRIBUTING.md) + + spec.files = %w(Rakefile LICENSE README.md) + Dir.glob("{lib,spec}/**/*", File::FNM_DOTMATCH).reject {|f| File.directory?(f) } spec.bindir = "bin" diff --git a/chef-config/lib/chef-config/version.rb b/chef-config/lib/chef-config/version.rb index ffc0f707c9..2371f31d98 100644 --- a/chef-config/lib/chef-config/version.rb +++ b/chef-config/lib/chef-config/version.rb @@ -1,4 +1,25 @@ -# TODO: license header +# Copyright:: Copyright (c) 2010-2015 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# NOTE: This file is generated by running `rake version` in the top level of +# this repo. Do not edit this manually. Edit the VERSION file and run the rake +# task instead. +#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + module ChefConfig VERSION = '12.4.0.dev.0' end + diff --git a/chef.gemspec b/chef.gemspec index fb9f640d88..f4f8a31207 100644 --- a/chef.gemspec +++ b/chef.gemspec @@ -15,7 +15,7 @@ Gem::Specification.new do |s| s.required_ruby_version = ">= 2.0.0" - s.add_dependency "chef-config", "~> #{Chef::VERSION}" + s.add_dependency "chef-config", "= #{Chef::VERSION}" s.add_dependency "mixlib-cli", "~> 1.4" s.add_dependency "mixlib-log", "~> 1.3" diff --git a/lib/chef/version.rb b/lib/chef/version.rb index 30ede54095..f7466084b6 100644 --- a/lib/chef/version.rb +++ b/lib/chef/version.rb @@ -1,6 +1,4 @@ - -# Author:: Daniel DeLeo (<dan@opscode.com>) -# Copyright:: Copyright (c) 2010-2011 Opscode, Inc. +# Copyright:: Copyright (c) 2010-2015 Chef Software, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,6 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# NOTE: This file is generated by running `rake version` in the top level of +# this repo. Do not edit this manually. Edit the VERSION file and run the rake +# task instead. +#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + class Chef CHEF_ROOT = File.dirname(File.expand_path(File.dirname(__FILE__))) VERSION = '12.4.0.dev.0' diff --git a/tasks/rspec.rb b/tasks/rspec.rb index d45e6bc2df..18af440e81 100644 --- a/tasks/rspec.rb +++ b/tasks/rspec.rb @@ -25,8 +25,20 @@ CHEF_ROOT = File.join(File.dirname(__FILE__), "..") begin require 'rspec/core/rake_task' + + desc "Run specs for Chef's Components" + task :component_specs do + Dir.chdir("chef-config") do + Bundler.with_clean_env do + sh("bundle exec rake spec") + end + end + end + task :default => :spec + task :spec => :component_specs + desc "Run standard specs (minus long running specs)" RSpec::Core::RakeTask.new(:spec) do |t| # right now this just limits to functional + unit, but could also remove |