Fixed spree_favicon_path helper method
[spree.git] / Rakefile
blob65b213fac15a62b42e16d34ef56d9a9624048572
1 require 'rake'
2 require 'rubygems/package_task'
3 require 'thor/group'
4 begin
5   require 'spree/testing_support/common_rake'
6 rescue LoadError
7   raise "Could not find spree/testing_support/common_rake. You need to run this command using Bundler."
8 end
10 SPREE_GEMS = %w(core api cli emails sample).freeze
12 task default: :test
14 desc "Runs all tests in all Spree engines"
15 task test: :test_app do
16   SPREE_GEMS.each do |gem_name|
17     Dir.chdir("#{File.dirname(__FILE__)}/#{gem_name}") do
18       sh 'rspec'
19     end
20   end
21 end
23 desc "Generates a dummy app for testing for every Spree engine"
24 task :test_app do
25   SPREE_GEMS.each do |gem_name|
26     Dir.chdir("#{File.dirname(__FILE__)}/#{gem_name}") do
27       sh 'rake test_app'
28     end
29   end
30 end
32 desc "clean the whole repository by removing all the generated files"
33 task :clean do
34   rm_f  "Gemfile.lock"
35   rm_rf "sandbox"
36   rm_rf "pkg"
38   SPREE_GEMS.each do |gem_name|
39     rm_f  "#{gem_name}/Gemfile.lock"
40     rm_rf "#{gem_name}/pkg"
41     rm_rf "#{gem_name}/spec/dummy"
42   end
43 end
45 namespace :gem do
46   def version
47     require 'spree/core/version'
48     Spree.version
49   end
51   def for_each_gem
52     SPREE_GEMS.each do |gem_name|
53       yield "pkg/spree_#{gem_name}-#{version}.gem"
54     end
55     yield "pkg/spree-#{version}.gem"
56   end
58   desc "Build all spree gems"
59   task :build do
60     pkgdir = File.expand_path("../pkg", __FILE__)
61     FileUtils.mkdir_p pkgdir
63     SPREE_GEMS.each do |gem_name|
64       Dir.chdir(gem_name) do
65         sh "gem build spree_#{gem_name}.gemspec"
66         mv "spree_#{gem_name}-#{version}.gem", pkgdir
67       end
68     end
70     sh "gem build spree.gemspec"
71     mv "spree-#{version}.gem", pkgdir
72   end
74   desc "Install all spree gems"
75   task install: :build do
76     for_each_gem do |gem_path|
77       Bundler.with_clean_env do
78         sh "gem install #{gem_path}"
79       end
80     end
81   end
83   desc "Release all gems to rubygems"
84   task release: :build do
85     sh "git tag -a -m \"Version #{version}\" v#{version}"
87     for_each_gem do |gem_path|
88       sh "gem push '#{gem_path}'"
89     end
90   end
91 end
93 desc "Creates a sandbox application for simulating the Spree code in a deployed Rails app"
94 task :sandbox do
95   Bundler.with_clean_env do
96     exec("bin/sandbox.sh")
97   end
98 end