Rakefile in integrity-0.1.8 vs Rakefile in integrity-0.1.9
- old
+ new
@@ -1,165 +1,92 @@
require "rake/testtask"
require "rake/clean"
require "rcov/rcovtask"
-require File.dirname(__FILE__) + "/lib/integrity"
+begin
+ require "metric_fu"
+rescue LoadError
+end
-desc "Run all tests and check test coverage"
-task :default => "test:coverage:verify"
+module Integrity
+ def self.version
+ YAML.load_file("VERSION.yml").values.join(".")
+ end
+end
+desc "Default: run all tests"
+task :default => :test
+
+desc "Special task for running tests on <http://builder.integrityapp.com>"
+task :ci do
+ sh "git submodule update --init"
+
+ Rake::Task["test"].invoke
+
+ metrics = %w(flay flog:all reek roodi saikuro)
+ metrics.each { |m| Rake::Task["metrics:#{m}"].invoke }
+
+ rm_rf "/var/www/integrity-metrics"
+ mv "tmp/metric_fu", "/var/www/integrity-metrics"
+
+ File.open("/var/www/integrity-metrics/index.html", "w") { |f|
+ f << "<ul>"
+ metrics.map { |m| m.split(":").first }.each { |m|
+ f << %Q(<li><a href="/#{m}">#{m}</a></li>)
+ }
+ f << "</ul>"
+ }
+end
+
desc "Run tests"
task :test => %w(test:units test:acceptance)
-
namespace :test do
Rake::TestTask.new(:units) do |t|
t.test_files = FileList["test/unit/*_test.rb"]
end
Rake::TestTask.new(:acceptance) do |t|
t.test_files = FileList["test/acceptance/*_test.rb"]
end
- desc "Measure test coverage"
- task :coverage => %w(test:coverage:units test:coverage:acceptance)
-
- namespace :coverage do
- desc "Measure test coverage of unit tests"
- Rcov::RcovTask.new(:units) do |rcov|
- rcov.pattern = "test/unit/*_test.rb"
- rcov.rcov_opts = %w(--html --aggregate .aggregated_coverage_report)
- rcov.rcov_opts << ENV["RCOV_OPTS"] if ENV["RCOV_OPTS"]
- end
-
- desc "Measure test coverage of acceptance tests"
- Rcov::RcovTask.new(:acceptance) do |rcov|
- rcov.pattern = "test/acceptance/*_test.rb"
- rcov.rcov_opts = %w(--html --aggregate .aggregated_coverage_report)
- rcov.rcov_opts << ENV["RCOV_OPTS"] if ENV["RCOV_OPTS"]
- end
-
- desc "Verify test coverage"
- task :verify => "test:coverage" do
- File.read("coverage/index.html") =~ /<tt class='coverage_total'>\s*(\d+\.\d+)%\s*<\/tt>/
- coverage = $1.to_f
-
- puts
- if coverage == 100
- puts "\e[32m100% coverage! Awesome!\e[0m"
- else
- puts "\e[31mOnly #{coverage}% code coverage. You can do better ;)\e[0m"
- end
- end
- end
-
desc "Install all gems on which the tests depend on"
task :install_dependencies do
- system 'gem install redgreen rr mocha ruby-debug dm-sweatshop webrat'
- system 'gem install -s http://gems.github.com jeremymcanally-context jeremymcanally-matchy jeremymcanally-pending foca-storyteller'
+ system "gem install rr mocha dm-sweatshop ZenTest"
+ system "gem install -s http://gems.github.com jeremymcanally-context \
+jeremymcanally-matchy jeremymcanally-pending foca-storyteller"
+ system "git submodule update --init"
end
end
-namespace :db do
- desc "Setup connection."
- task :connect do
- config = File.expand_path(ENV['CONFIG']) if ENV['CONFIG']
- config = Integrity.root / 'config.yml' if File.exists?(Integrity.root / 'config.yml')
- Integrity.new(config)
- end
-
- desc "Automigrate the database"
- task :migrate => :connect do
- require "project"
- require "build"
- require "notifier"
- DataMapper.auto_migrate!
- end
+desc "Launch Integrity real quick"
+task :launch do
+ ruby "bin/integrity launch"
end
-# tx RMT :)
-namespace :rubyforge do
- def package(ext="")
- "dist/integrity-#{Integrity.version}" + ext
- end
-
- directory "dist/"
- CLOBBER.include("dist")
-
- desc "Build packages"
- task :package => %w[.gem .tar.gz].map { |ext| package(ext) } << :changelog
-
- desc "Build and install as local gem"
- task :install => package(".gem") do
- sh "gem install #{package(".gem")}"
- end
-
- file package(".gem") => %w[dist/ integrity.gemspec] do |f|
- sh "gem build integrity.gemspec"
- mv File.basename(f.name), f.name
- end
-
- file package('.tar.gz') => %w[dist/] do |f|
- sh <<-SH
- git archive \
- --prefix=integrity-#{Integrity.version}/ \
- --format=tar \
- HEAD | gzip > #{f.name}
- SH
- end
-
- desc "Publish gem and tarball to rubyforge"
- task "publish:gem" => [package(".gem"), package(".tar.gz")] do |t|
- sh <<-end
- rubyforge add_release integrity integrity #{Integrity.version} #{package('.gem')} &&
- rubyforge add_file integrity integrity #{Integrity.version} #{package('.tar.gz')}
- end
- end
-
- file "dist/git-changelog.py" => %w[dist/] do
- sh "cd dist && wget http://gist.github.com/raw/62837/bc6d2c6102933c3eac5fa33afd3effd7ab97edb7/git-changelog.py"
- end
-
- task :changelog => ["dist/git-changelog.py"] do
- sh "python git-changelog.py"
- sh "git add ChangeLog"
- sh 'git commit -m "Regenerated ChangeLog"'
- end
-end
-
begin
require "jeweler"
namespace :jeweler do
Jeweler::Tasks.new do |s|
- files = `git ls-files`.split("\n").reject {|f| f =~ %r(^test/acceptance) || f =~ %r(^test/unit) || f =~ /^\.git/ }
+ s.name = "integrity"
+ s.summary = "The easy and fun Continuous Integration server"
+ s.description = "Your Friendly Continuous Integration server. Easy, fun and painless!"
+ s.homepage = "http://integrityapp.com"
+ s.rubyforge_project = "integrity"
+ s.email = "contacto@nicolassanguinetti.info"
+ s.authors = ["Nicolás Sanguinetti", "Simon Rozet"]
+ s.files = FileList["[A-Z]*", "{bin,lib,views,public,config,test,vendor}/**/*"]
+ s.executables = ["integrity"]
+ s.post_install_message = "Run `integrity help` for information on how to setup Integrity."
- s.name = 'integrity'
- s.summary = 'The easy and fun Continuous Integration server'
- s.description = 'Your Friendly Continuous Integration server. Easy, fun and painless!'
- s.homepage = 'http://integrityapp.com'
- s.rubyforge_project = 'integrity'
- s.email = 'contacto@nicolassanguinetti.info'
- s.authors = ['Nicolás Sanguinetti', 'Simon Rozet']
- s.files = files
- s.executables = ['integrity']
- s.post_install_message = 'Run `integrity help` for information on how to setup Integrity.'
-
- s.add_dependency 'sinatra', ['>= 0.9.0.3']
- s.add_dependency 'haml', ['>= 2.0.0']
- s.add_dependency 'dm-core', ['>= 0.9.5']
- s.add_dependency 'dm-validations', ['>= 0.9.5']
- s.add_dependency 'dm-types', ['>= 0.9.5']
- s.add_dependency 'dm-timestamps', ['>= 0.9.5']
- s.add_dependency 'dm-aggregates', ['>= 0.9.5']
- s.add_dependency 'dm-migrations', ['>= 0.9.5']
- s.add_dependency 'data_objects', ['>= 0.9.5']
- s.add_dependency 'do_sqlite3', ['>= 0.9.5']
- s.add_dependency 'json'
- s.add_dependency 'foca-sinatra-diddies', ['>= 0.0.2']
- s.add_dependency 'thor'
- s.add_dependency 'uuidtools' # required by dm-types
- s.add_dependency 'bcrypt-ruby' # required by dm-types
+ s.add_dependency "sinatra", [">= 0.9.1.1"]
+ s.add_dependency "haml", [">= 2.0.0"]
+ s.add_dependency "data_mapper", [">= 0.9.10"]
+ s.add_dependency "uuidtools" # required by dm-types
+ s.add_dependency "bcrypt-ruby" # required by dm-types
+ s.add_dependency "json"
+ s.add_dependency "foca-sinatra-ditties", [">= 0.0.3"]
+ s.add_dependency "thor"
end
end
rescue LoadError
end
-