72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| require 'ci/reporter/rake/minitest'
 | |
| require 'ffi'
 | |
| require 'fileutils'
 | |
| require 'flog'
 | |
| require 'rake/extensiontask'
 | |
| require 'rake/testtask'
 | |
| require 'rake/version_task'
 | |
| require 'rubygems/gem_runner'
 | |
| require 'rubygems/package_task'
 | |
| 
 | |
| def gemspec
 | |
|   @gemspec ||= Gem::Specification.load('process_shared.gemspec')
 | |
| end
 | |
| 
 | |
| Rake::ExtensionTask.new('helper') do |ext|
 | |
|   ext.lib_dir = 'lib/process_shared/posix'
 | |
| end
 | |
| 
 | |
| desc 'Run the tests'
 | |
| task :default => [:test]
 | |
| 
 | |
| Rake::TestTask.new(:test => [:compile]) do |t|
 | |
|   if FFI::Platform.mac?
 | |
|     t.pattern = 'spec/**/*_spec.rb' # only include mach tests on mac
 | |
|   else
 | |
|     t.pattern = 'spec/process_shared/**/*_spec.rb'
 | |
|   end
 | |
|   t.libs.push 'spec'
 | |
| end
 | |
| 
 | |
| pkg = Gem::PackageTask.new(gemspec) do |p|
 | |
|   p.need_tar = true
 | |
|   p.gem_spec = gemspec
 | |
| end
 | |
| 
 | |
| Rake::VersionTask.new do |t|
 | |
|   t.with_git_tag = true
 | |
| end
 | |
| 
 | |
| task :push => :gem do
 | |
|   gem_file = File.basename gemspec.cache_file
 | |
|   gem_path = File.join pkg.package_dir, gem_file
 | |
|   Gem::GemRunner.new.run(["push", gem_path])
 | |
| end
 | |
| 
 | |
| if Version.current.prerelease?
 | |
|   vrelease = Version.current.bump!
 | |
|   desc "Release version #{vrelease}"
 | |
|   task :release => [:test, 'version:bump'] do
 | |
|     # must run in subprocess so tasks use newwer versioned gemspec
 | |
|     sh %{rake push version:bump:pre}
 | |
|   end
 | |
| end
 | |
| 
 | |
| desc 'Generate flog reports for all ruby code'
 | |
| task :flog do
 | |
|   opts = {
 | |
|     :all => true,
 | |
|     :blame => true,
 | |
|     :details => true,
 | |
|     :group => true
 | |
|   }
 | |
|   flog = Flog.new(opts)
 | |
|   flog.flog('lib')
 | |
|   out = 'target/reports/flog.txt'
 | |
|   FileUtils.mkdir_p(File.dirname(out))
 | |
|   File.open('target/reports/flog.txt', 'wb') {|io| flog.report io }
 | |
| end
 | |
| 
 | |
| desc 'Run test for CI environment with xunit reports and flog'
 | |
| task :ci_test => ['ci:setup:minitest', :test, :flog]
 |