Changeset 459 for trunk/Rakefile
- Timestamp:
- 08/15/08 19:28:50 (5 months ago)
- Files:
-
- 1 modified
-
trunk/Rakefile (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Rakefile
r457 r459 39 39 DOCSDIR = BASEDIR + 'docs' 40 40 PKGDIR = BASEDIR + 'pkg' 41 RAKE_TASKDIR = BASEDIR + 'rake'42 41 43 42 PKG_NAME = 'arrow' 44 PKG_SUMMARY = ' '43 PKG_SUMMARY = 'A mod_ruby web application framework' 45 44 VERSION_FILE = LIBDIR + 'arrow.rb' 46 45 PKG_VERSION = VERSION_FILE.read[ /VERSION = '(\d+\.\d+\.\d+)'/, 1 ] … … 48 47 GEM_FILE_NAME = "#{PKG_FILE_NAME}.gem" 49 48 50 RELEASE_NAME = "RELEASE_#{PKG_VERSION.gsub(/\./, '_')}"51 52 49 ARTIFACTS_DIR = Pathname.new( ENV['CC_BUILD_ARTIFACTS'] || 'artifacts' ) 53 50 … … 62 59 TEST_FILES = Pathname.glob( TESTDIR + '**/*.tests.rb' ).delete_if {|item| item =~ /\.svn/ } 63 60 64 RELEASE_FILES = FileList[ TEXT_FILES + SPEC_FILES + TEST_FILES + LIB_FILES + EXT_FILES ] 65 61 RAKE_TASKDIR = BASEDIR + 'rake' 62 RAKE_TASKLIBS = Pathname.glob( RAKE_TASKDIR + '*.rb' ) 63 64 LOCAL_RAKEFILE = BASEDIR + 'Rakefile.local' 65 66 EXTRA_PKGFILES = [] 67 EXTRA_PKGFILES.concat Pathname.glob( BASEDIR + 'applets/**/*.rb' ).delete_if {|item| item =~ /\.svn/ } 68 EXTRA_PKGFILES.concat Pathname.glob( BASEDIR + 'docs/manual/**' ).delete_if {|item| item =~ /\.svn/ } 69 70 RELEASE_FILES = TEXT_FILES + 71 SPEC_FILES + 72 TEST_FILES + 73 LIB_FILES + 74 EXT_FILES + 75 RAKE_TASKLIBS + 76 EXTRA_PKGFILES 77 78 RELEASE_FILES << LOCAL_RAKEFILE if LOCAL_RAKEFILE.exist? 79 80 COVERAGE_MINIMUM = ENV['COVERAGE_MINIMUM'] ? Float( ENV['COVERAGE_MINIMUM'] ) : 85.0 66 81 RCOV_EXCLUDES = 'spec,tests,/Library/Ruby,/var/lib,/usr/local/lib' 67 82 RCOV_OPTS = [ … … 80 95 SVN_TAGS_DIR = 'tags' 81 96 97 SVN_DOTDIR = BASEDIR + '.svn' 98 SVN_ENTRIES = SVN_DOTDIR + 'entries' 99 100 82 101 ### Load some task libraries that need to be loaded early 83 102 require RAKE_TASKDIR + 'helpers.rb' … … 96 115 '-i', '.', 97 116 '-m', 'README', 98 '-W', 'http://deveiate.org/projects/Arrow/ browser/trunk/'117 '-W', 'http://deveiate.org/projects/Arrow//browser/trunk/' 99 118 ] 100 119 … … 107 126 PROJECT_PUBDIR = "/usr/local/www/public/code" 108 127 PROJECT_DOCDIR = "#{PROJECT_PUBDIR}/#{PKG_NAME}" 109 PROJECT_SCPURL = "#{PROJECT_HOST}:#{PROJECT_DOCDIR}" 128 PROJECT_SCPPUBURL = "#{PROJECT_HOST}:#{PROJECT_PUBDIR}" 129 PROJECT_SCPDOCURL = "#{PROJECT_HOST}:#{PROJECT_DOCDIR}" 130 131 # Rubyforge stuff 132 RUBYFORGE_GROUP = 'deveiate' 133 RUBYFORGE_PROJECT = 'arrow' 110 134 111 135 # Gem dependencies: gemname => version … … 129 153 gem.summary = PKG_SUMMARY 130 154 gem.description = <<-EOD 131 A mod_ruby web application framework 155 Arrow is a web application framework for mod_ruby. It was designed to make 156 development of web applications under Apache easier and more fun without 157 sacrificing the power of being able to access the native Apache API. 132 158 EOD 133 159 134 160 gem.authors = 'Michael Granger' 135 161 gem.email = 'ged@FaerieMUD.org' 136 gem.homepage = 'http://deveiate.org/projects/Arrow '137 gem.rubyforge_project = 'deveiate'162 gem.homepage = 'http://deveiate.org/projects/Arrow/' 163 gem.rubyforge_project = RUBYFORGE_PROJECT 138 164 139 165 gem.has_rdoc = true … … 155 181 end 156 182 183 $trace = Rake.application.options.trace ? true : false 184 $dryrun = Rake.application.options.dryrun ? true : false 185 157 186 158 187 # Load any remaining task libraries 159 Pathname.glob( RAKE_TASKDIR + '*.rb' ).each do |tasklib| 160 RELEASE_FILES.include( tasklib ) 161 188 RAKE_TASKLIBS.each do |tasklib| 162 189 next if tasklib =~ %r{/(helpers|svn|verifytask)\.rb$} 163 190 begin … … 174 201 end 175 202 176 $trace = Rake.application.options.trace ? true : false177 $dryrun = Rake.application.options.dryrun ? true : false178 179 203 # Load any project-specific rules defined in 'Rakefile.local' if it exists 180 LOCAL_RAKEFILE = BASEDIR + 'Rakefile.local' 181 if LOCAL_RAKEFILE.exist? 182 import LOCAL_RAKEFILE 183 RELEASE_FILES.include( LOCAL_RAKEFILE.to_s ) 184 end 204 import LOCAL_RAKEFILE if LOCAL_RAKEFILE.exist? 185 205 186 206 … … 190 210 191 211 ### Default task 192 task :default => [:clean, :spec, :rdoc, :package] 212 task :default => [:clean, :local, :spec, :rdoc, :package] 213 214 ### Task the local Rakefile can append to -- no-op by default 215 task :local 193 216 194 217 … … 197 220 CLOBBER.include 'artifacts', 'coverage.info', PKGDIR 198 221 199 200 ### Cruisecontrol task 222 # Target to hinge on ChangeLog updates 223 file SVN_ENTRIES 224 225 ### Task: changelog 226 file 'ChangeLog' => SVN_ENTRIES.to_s do |task| 227 log "Updating #{task.name}" 228 229 changelog = make_svn_changelog() 230 File.open( task.name, 'w' ) do |fh| 231 fh.print( changelog ) 232 end 233 end 234 235 236 ### Task: cruise (Cruisecontrol task) 201 237 desc "Cruisecontrol build" 202 238 task :cruise => [:clean, :spec, :package] do |task| … … 205 241 artifact_dir.mkpath 206 242 207 $stderr.puts "Copying coverage stats..." 208 FileUtils.cp_r( 'coverage', artifact_dir ) 243 coverage = BASEDIR + 'coverage' 244 if coverage.exist? && coverage.directory? 245 $stderr.puts "Copying coverage stats..." 246 FileUtils.cp_r( 'coverage', artifact_dir ) 247 end 209 248 210 249 $stderr.puts "Copying packages..." … … 213 252 214 253 254 desc "Update the build system to the latest version" 255 task :update_build do 256 log "Updating the build system" 257 sh 'svn', 'up', RAKE_TASKDIR 258 log "Updating the Rakefile" 259 sh 'rake', '-f', RAKE_TASKDIR + 'Metarakefile' 260 end 261
