summaryrefslogtreecommitdiff
path: root/Rakefile
diff options
context:
space:
mode:
authordanielsdeleo <dan@getchef.com>2015-05-13 17:05:40 -0700
committerdanielsdeleo <dan@getchef.com>2015-05-20 15:13:56 -0700
commit1428270b0f2d0f2ae5d62ecb2aa512ffa7ac773e (patch)
tree9d98fa3d2a9f1b7ffcd49cd1465b8aa3269e6430 /Rakefile
parent12a608c962d2eaa6c8b410794530fb104167162c (diff)
downloadchef-1428270b0f2d0f2ae5d62ecb2aa512ffa7ac773e.tar.gz
Update rake tasks for componentization
Diffstat (limited to 'Rakefile')
-rw-r--r--Rakefile88
1 files changed, 83 insertions, 5 deletions
diff --git a/Rakefile b/Rakefile
index d07ee0c247..d01a139c30 100644
--- a/Rakefile
+++ b/Rakefile
@@ -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
+