continuous4r 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +4 -0
- data/License.txt +20 -0
- data/Manifest.txt +83 -0
- data/README.txt +1 -0
- data/Rakefile +4 -0
- data/config/hoe.rb +71 -0
- data/config/requirements.rb +17 -0
- data/lib/capistrano_formatter.rb +19 -0
- data/lib/continuous4r/version.rb +9 -0
- data/lib/continuous4r.rb +490 -0
- data/lib/flog_formatter.rb +48 -0
- data/lib/heckle_formatter.rb +27 -0
- data/lib/httperf_formatter.rb +160 -0
- data/lib/site/body-capistrano.rhtml +8 -0
- data/lib/site/body-changelog.rhtml +8 -0
- data/lib/site/body-continuous4r-reports.rhtml +83 -0
- data/lib/site/body-dcov.rhtml +27 -0
- data/lib/site/body-dependencies.rhtml +52 -0
- data/lib/site/body-flog.rhtml +15 -0
- data/lib/site/body-heckle.rhtml +16 -0
- data/lib/site/body-httperf.rhtml +8 -0
- data/lib/site/body-index.rhtml +71 -0
- data/lib/site/body-issue-tracking.rhtml +38 -0
- data/lib/site/body-kwala.rhtml +35 -0
- data/lib/site/body-railroad.rhtml +29 -0
- data/lib/site/body-rcov.rhtml +23 -0
- data/lib/site/body-rdoc.rhtml +12 -0
- data/lib/site/body-scm-usage.rhtml +37 -0
- data/lib/site/body-stats.rhtml +8 -0
- data/lib/site/body-team-list.rhtml +73 -0
- data/lib/site/body-tests.rhtml +8 -0
- data/lib/site/body-zentest.rhtml +8 -0
- data/lib/site/header.rhtml +41 -0
- data/lib/site/images/continuous4r-logo.png +0 -0
- data/lib/site/images/external.png +0 -0
- data/lib/site/images/icon_error_sml.gif +0 -0
- data/lib/site/images/icon_success_sml.gif +0 -0
- data/lib/site/images/newwindow.png +0 -0
- data/lib/site/menu-capistrano.rhtml +23 -0
- data/lib/site/menu-changelog.rhtml +23 -0
- data/lib/site/menu-continuous4r-reports.rhtml +31 -0
- data/lib/site/menu-dcov.rhtml +23 -0
- data/lib/site/menu-dependencies.rhtml +19 -0
- data/lib/site/menu-flog.rhtml +23 -0
- data/lib/site/menu-heckle.rhtml +23 -0
- data/lib/site/menu-httperf.rhtml +23 -0
- data/lib/site/menu-index.rhtml +19 -0
- data/lib/site/menu-issue-tracking.rhtml +19 -0
- data/lib/site/menu-kwala.rhtml +23 -0
- data/lib/site/menu-railroad.rhtml +23 -0
- data/lib/site/menu-rcov.rhtml +23 -0
- data/lib/site/menu-rdoc.rhtml +23 -0
- data/lib/site/menu-scm-usage.rhtml +19 -0
- data/lib/site/menu-stats.rhtml +23 -0
- data/lib/site/menu-team-list.rhtml +19 -0
- data/lib/site/menu-tests.rhtml +23 -0
- data/lib/site/menu-zentest.rhtml +23 -0
- data/lib/site/style/commons-maven.css +113 -0
- data/lib/site/style/maven-base.css +151 -0
- data/lib/site/style/maven-theme.css +100 -0
- data/lib/site/style/project.css +1 -0
- data/lib/stats_formatter.rb +51 -0
- data/lib/subversion_extractor.rb +64 -0
- data/lib/tests_formatter.rb +65 -0
- data/lib/zen_test_formatter.rb +48 -0
- data/log/debug.log +0 -0
- data/script/destroy +14 -0
- data/script/destroy.cmd +1 -0
- data/script/generate +14 -0
- data/script/generate.cmd +1 -0
- data/script/txt2html +74 -0
- data/script/txt2html.cmd +1 -0
- data/setup.rb +1585 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +17 -0
- data/test/test_continuous4r.rb +11 -0
- data/test/test_helper.rb +2 -0
- data/website/index.html +411 -0
- data/website/index.txt +298 -0
- data/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/website/stylesheets/screen.css +138 -0
- data/website/template.rhtml +48 -0
- metadata +141 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
desc 'Release the website and new gem version'
|
2
|
+
task :deploy => [:check_version, :website, :release] do
|
3
|
+
puts "Remember to create SVN tag:"
|
4
|
+
puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
|
5
|
+
"svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
|
6
|
+
puts "Suggested comment:"
|
7
|
+
puts "Tagging release #{CHANGES}"
|
8
|
+
end
|
9
|
+
|
10
|
+
desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
|
11
|
+
task :local_deploy => [:website_generate, :install_gem]
|
12
|
+
|
13
|
+
task :check_version do
|
14
|
+
unless ENV['VERSION']
|
15
|
+
puts 'Must pass a VERSION=x.y.z release version'
|
16
|
+
exit
|
17
|
+
end
|
18
|
+
unless ENV['VERSION'] == VERS
|
19
|
+
puts "Please update your version.rb to match the release version, currently #{VERS}"
|
20
|
+
exit
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
|
25
|
+
task :install_gem_no_doc => [:clean, :package] do
|
26
|
+
sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
|
27
|
+
end
|
28
|
+
|
29
|
+
namespace :manifest do
|
30
|
+
desc 'Recreate Manifest.txt to include ALL files'
|
31
|
+
task :refresh do
|
32
|
+
`rake check_manifest | patch -p0 > Manifest.txt`
|
33
|
+
end
|
34
|
+
end
|
data/tasks/website.rake
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
desc 'Generate website files'
|
2
|
+
task :website_generate => :ruby_env do
|
3
|
+
(Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
|
4
|
+
sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
desc 'Upload website files to rubyforge'
|
9
|
+
task :website_upload do
|
10
|
+
host = "#{rubyforge_username}@rubyforge.org"
|
11
|
+
remote_dir = "/var/www/gforge-projects/#{PATH}/"
|
12
|
+
local_dir = 'website'
|
13
|
+
sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
|
14
|
+
end
|
15
|
+
|
16
|
+
desc 'Generate and upload website files'
|
17
|
+
task :website => [:website_generate, :website_upload, :publish_docs]
|
data/test/test_helper.rb
ADDED
data/website/index.html
ADDED
@@ -0,0 +1,411 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
|
+
<title>
|
8
|
+
continuous4r
|
9
|
+
</title>
|
10
|
+
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
11
|
+
<style>
|
12
|
+
|
13
|
+
</style>
|
14
|
+
<script type="text/javascript">
|
15
|
+
window.onload = function() {
|
16
|
+
settings = {
|
17
|
+
tl: { radius: 10 },
|
18
|
+
tr: { radius: 10 },
|
19
|
+
bl: { radius: 10 },
|
20
|
+
br: { radius: 10 },
|
21
|
+
antiAlias: true,
|
22
|
+
autoPad: true,
|
23
|
+
validTags: ["div"]
|
24
|
+
}
|
25
|
+
var versionBox = new curvyCorners(settings, document.getElementById("version"));
|
26
|
+
versionBox.applyCornersToAll();
|
27
|
+
}
|
28
|
+
</script>
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="main">
|
32
|
+
|
33
|
+
<h1>continuous4r</h1>
|
34
|
+
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/continuous4r"; return false'>
|
35
|
+
<p>Get Version</p>
|
36
|
+
<a href="http://rubyforge.org/projects/continuous4r" class="numbers">0.0.1</a>
|
37
|
+
</div>
|
38
|
+
<h2><br/>What is it ?</h2>
|
39
|
+
|
40
|
+
|
41
|
+
<p>Continuous4R is a continuous integration tool for Ruby on Rails. With it, you can
|
42
|
+
aggregate reports of the best analysis, quality, tests and deployment tools for
|
43
|
+
Ruby and Rails.
|
44
|
+
By just defining one Rake task and writing an <span class="caps">XML</span> file describing your project,
|
45
|
+
Continuous4R builds for you an entire website in a Maven form.</p>
|
46
|
+
|
47
|
+
|
48
|
+
<h2>Installing</h2>
|
49
|
+
|
50
|
+
|
51
|
+
<p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">continuous4r</span></pre></p>
|
52
|
+
|
53
|
+
|
54
|
+
<h2>The basics</h2>
|
55
|
+
|
56
|
+
|
57
|
+
<h3>Defining the Rake task</h3>
|
58
|
+
|
59
|
+
|
60
|
+
<p>In order to build your project, you need to declare one Rake task. Under the lib/tasks
|
61
|
+
directory of your project, create a file named continuous4r.rake :</p>
|
62
|
+
|
63
|
+
|
64
|
+
<p><pre class='syntax'><span class="ident">require</span> <span class="punct">'</span><span class="string">rubygems</span><span class="punct">'</span>
|
65
|
+
<span class="ident">require</span> <span class="punct">'</span><span class="string">continuous4r</span><span class="punct">'</span>
|
66
|
+
|
67
|
+
<span class="comment"># Tache Rake pour la construction du site Continuous4R</span>
|
68
|
+
<span class="ident">namespace</span> <span class="symbol">:continuous4r</span> <span class="keyword">do</span>
|
69
|
+
<span class="ident">desc</span> <span class="punct">'</span><span class="string">Build Continuous4R Website for the current project</span><span class="punct">'</span>
|
70
|
+
<span class="ident">task</span> <span class="symbol">:build</span> <span class="keyword">do</span>
|
71
|
+
<span class="constant">Continuous4r</span><span class="punct">.</span><span class="ident">generate_site</span>
|
72
|
+
<span class="keyword">end</span>
|
73
|
+
<span class="keyword">end</span></pre></p>
|
74
|
+
|
75
|
+
|
76
|
+
<h3>Writing the <span class="caps">XML</span> file describing your project</h3>
|
77
|
+
|
78
|
+
|
79
|
+
<p>This file must be named continuous4r-project.xml, and must be placed at the top
|
80
|
+
of your Rails project directory. This file must not have a <span class="caps">XML</span> header (<?xml version…).
|
81
|
+
Here’s the model of this file :</p>
|
82
|
+
|
83
|
+
|
84
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">project</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">PROJECT_NAME</span><span class="punct">"></span>
|
85
|
+
<span class="punct"><</span><span class="tag">description</span><span class="punct">></span>PROJECT_DESCRIPTION<span class="punct"></</span><span class="tag">description</span><span class="punct">></span>
|
86
|
+
<span class="punct"><</span><span class="tag">url</span><span class="punct">></span>PROJECT_URL<span class="punct"></</span><span class="tag">url</span><span class="punct">></span>
|
87
|
+
<span class="punct"><</span><span class="tag">logo</span><span class="punct">></span>PROJECT_IMAGE_URI<span class="punct"></</span><span class="tag">logo</span><span class="punct">></span>
|
88
|
+
<span class="comment"><!-- Describing your project members --></span>
|
89
|
+
<span class="punct"><</span><span class="tag">members</span><span class="punct">></span>
|
90
|
+
<span class="punct"><</span><span class="tag">member</span> <span class="attribute">id</span><span class="punct">="</span><span class="string">MEMBER_LOGIN</span><span class="punct">"</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">MEMBER_NAME</span><span class="punct">"</span> <span class="attribute">email</span><span class="punct">="</span><span class="string">MEMBER_EMAIL</span><span class="punct">"</span>
|
91
|
+
<span class="attribute">roles</span><span class="punct">="</span><span class="string">MEMBER_ROLES</span><span class="punct">"</span> <span class="attribute">company</span><span class="punct">="</span><span class="string">MEMBER_COMPANY_NAME</span><span class="punct">"/></span>
|
92
|
+
...
|
93
|
+
<span class="punct"></</span><span class="tag">members</span><span class="punct">></span>
|
94
|
+
<span class="punct"><</span><span class="tag">bugtracker</span><span class="punct">></span>
|
95
|
+
<span class="punct"><</span><span class="tag">tracker_type</span><span class="punct">></span>[Trac|Bugzilla|Mantis|etc...]<span class="punct"></</span><span class="tag">tracker_type</span><span class="punct">></span>
|
96
|
+
<span class="punct"><</span><span class="tag">tracker_url</span><span class="punct">></span>BUGTRACKER_URL<span class="punct"></</span><span class="tag">tracker_url</span><span class="punct">></span>
|
97
|
+
<span class="punct"><</span><span class="tag">tracker_account_create</span><span class="punct">></span>BUGTRACKER_URL_ACCOUNT_CREATION<span class="punct"></</span><span class="tag">tracker_account_create</span><span class="punct">></span>
|
98
|
+
<span class="punct"><</span><span class="tag">search</span><span class="punct">></span>BUGTRACKER_URL_SEARCH_TICKETS<span class="punct"></</span><span class="tag">search</span><span class="punct">></span>
|
99
|
+
<span class="punct"><</span><span class="tag">url</span><span class="punct">></span>BUGTRACKER_URL_TICKETS_LIST<span class="punct"></</span><span class="tag">url</span><span class="punct">></span>
|
100
|
+
<span class="punct"><</span><span class="tag">add</span><span class="punct">></span>BUGTRACKER_URL_TICKET_ADD<span class="punct"></</span><span class="tag">add</span><span class="punct">></span>
|
101
|
+
<span class="punct"></</span><span class="tag">bugtracker</span><span class="punct">></span>
|
102
|
+
<span class="punct"><</span><span class="tag">scm</span><span class="punct">></span>
|
103
|
+
<span class="punct"><</span><span class="tag">repository_type</span><span class="punct">></span>[svn|cvs]<span class="punct"></</span><span class="tag">repository_type</span><span class="punct">></span>
|
104
|
+
<span class="punct"><</span><span class="tag">url</span><span class="punct">></span>SCM_URL<span class="punct"></</span><span class="tag">url</span><span class="punct">></span>
|
105
|
+
<span class="punct"><</span><span class="tag">view</span><span class="punct">></span>SCM_VIEWER_URL<span class="punct"></</span><span class="tag">view</span><span class="punct">></span>
|
106
|
+
<span class="comment"><!-- needed if authentication for access is mandatory --></span>
|
107
|
+
<span class="punct"><</span><span class="tag">user</span><span class="punct">></span>userlogin<span class="punct"></</span><span class="tag">user</span><span class="punct">></span>
|
108
|
+
<span class="punct"><</span><span class="tag">password</span><span class="punct">></span>userpassword<span class="punct"></</span><span class="tag">password</span><span class="punct">></span>
|
109
|
+
<span class="punct"></</span><span class="tag">scm</span><span class="punct">></span>
|
110
|
+
<span class="comment"><!-- Gems mandatory for your project --></span>
|
111
|
+
<span class="punct"><</span><span class="tag">gems</span><span class="punct">></span>
|
112
|
+
<span class="punct"><</span><span class="tag">gem</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">GEM_NAME</span><span class="punct">"</span> <span class="attribute">version</span><span class="punct">="</span><span class="string">GEM_VERSION</span><span class="punct">"/></span>
|
113
|
+
...
|
114
|
+
<span class="punct"></</span><span class="tag">gems</span><span class="punct">></span>
|
115
|
+
<span class="comment"><!-- Tasks in order to generate reports, described further --></span>
|
116
|
+
<span class="punct"><</span><span class="tag">tasks</span> [<span class="attribute">autoinstall</span><span class="punct">="</span><span class="string">true</span><span class="punct">"]</span> <!<span class="attribute">--</span> <span class="attribute">activates</span> <span class="attribute">autoinstall</span> <span class="attribute">for</span> <span class="attribute">gems</span> <span class="attribute">needed</span> <span class="attribute">by</span> <span class="attribute">tasks</span> <span class="attribute">--</span><span class="punct">></span> >
|
117
|
+
...
|
118
|
+
<span class="punct"></</span><span class="tag">tasks</span><span class="punct">></span>
|
119
|
+
<span class="punct"></</span><span class="tag">project</span><span class="punct">></span></pre></p>
|
120
|
+
|
121
|
+
|
122
|
+
<h2>Defining tasks</h2>
|
123
|
+
|
124
|
+
|
125
|
+
<h3>Changelog task</h3>
|
126
|
+
|
127
|
+
|
128
|
+
<p>Builds a report of the last modifications on the <span class="caps">SCM</span> repository. Only Subversion is supported
|
129
|
+
at the time.</p>
|
130
|
+
|
131
|
+
|
132
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">changelog</span><span class="punct">"/></span>
|
133
|
+
</pre></p>
|
134
|
+
|
135
|
+
|
136
|
+
<p><a href="changelog.png" target="_blank">Sample</a></p>
|
137
|
+
|
138
|
+
|
139
|
+
<h3>Stats task</h3>
|
140
|
+
|
141
|
+
|
142
|
+
<p>Generates a report of the Rails statistics on your project.</p>
|
143
|
+
|
144
|
+
|
145
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">stats</span><span class="punct">"></span>
|
146
|
+
<span class="punct"><</span><span class="tag">description</span><span class="punct">></span>Provides statistics on your Rails code<span class="punct"></</span><span class="tag">description</span><span class="punct">></span>
|
147
|
+
<span class="punct"></</span><span class="tag">task</span><span class="punct">></span></pre></p>
|
148
|
+
|
149
|
+
|
150
|
+
<p><a href="stats.png" target="_blank">Sample</a></p>
|
151
|
+
|
152
|
+
|
153
|
+
<h3>Dcov task</h3>
|
154
|
+
|
155
|
+
|
156
|
+
<p>Generates a report on the rdoc coverage of your Ruby code. The parts
|
157
|
+
which are not covered are colored in red.<br/>
|
158
|
+
The <strong>pattern</strong> param enables you to select the Ruby code to control.<br/>
|
159
|
+
The <strong>report</strong> param is the path where Continuous4R can find the dcov
|
160
|
+
original report (due to a bug in dcov).</p>
|
161
|
+
|
162
|
+
|
163
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">dcov</span><span class="punct">"></span>
|
164
|
+
<span class="punct"><</span><span class="tag">description</span><span class="punct">></span>Rdoc coverage analysis report<span class="punct"></</span><span class="tag">description</span><span class="punct">></span>
|
165
|
+
<span class="punct"><</span><span class="tag">params</span><span class="punct">></span>
|
166
|
+
<span class="punct"><</span><span class="tag">pattern</span> <span class="attribute">value</span><span class="punct">="</span><span class="string">app/**/*.rb</span><span class="punct">"/></span>
|
167
|
+
<span class="punct"><</span><span class="tag">report</span> <span class="attribute">path</span><span class="punct">="</span><span class="string">coverage.html</span><span class="punct">"/></span>
|
168
|
+
<span class="punct"></</span><span class="tag">params</span><span class="punct">></span>
|
169
|
+
<span class="punct"></</span><span class="tag">task</span><span class="punct">></span></pre></p>
|
170
|
+
|
171
|
+
|
172
|
+
<p><a href="dcov.png" target="_blank">Sample</a></p>
|
173
|
+
|
174
|
+
|
175
|
+
<h3>Rcov task</h3>
|
176
|
+
|
177
|
+
|
178
|
+
<p>Builds a report on the coverage of your tests over your Ruby code.</p>
|
179
|
+
|
180
|
+
|
181
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">rcov</span><span class="punct">"></span>
|
182
|
+
<span class="punct"><</span><span class="tag">params</span><span class="punct">></span>
|
183
|
+
<span class="comment"><!-- file which loads all the necessary test files (based on requires) --></span>
|
184
|
+
<span class="punct"><</span><span class="tag">file</span> <span class="attribute">path</span><span class="punct">="</span><span class="string">test/rcov_test_all.rb</span><span class="punct">"/></span>
|
185
|
+
<span class="comment"><!-- path where to find the reports generated by rcov --></span>
|
186
|
+
<span class="punct"><</span><span class="tag">reports</span> <span class="attribute">path</span><span class="punct">="</span><span class="string">coverage</span><span class="punct">"/></span>
|
187
|
+
<span class="punct"></</span><span class="tag">params</span><span class="punct">></span>
|
188
|
+
<span class="punct"></</span><span class="tag">task</span><span class="punct">></span>
|
189
|
+
</pre></p>
|
190
|
+
|
191
|
+
|
192
|
+
<p><a href="rcov.png" target="_blank">Sample</a></p>
|
193
|
+
|
194
|
+
|
195
|
+
<h3>Rdoc task</h3>
|
196
|
+
|
197
|
+
|
198
|
+
<p>Generates a report of the rdoc generation, and gives access to the rdoc.</p>
|
199
|
+
|
200
|
+
|
201
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">rdoc</span><span class="punct">"/></span>
|
202
|
+
</pre></p>
|
203
|
+
|
204
|
+
|
205
|
+
<p><a href="rdoc.png" target="_blank">Sample</a></p>
|
206
|
+
|
207
|
+
|
208
|
+
<h3>Flog task</h3>
|
209
|
+
|
210
|
+
|
211
|
+
<p><a href="http://ruby.sadi.st/Flog.html" target="_blank">Flog</a> is a tool which
|
212
|
+
provides statistics of your Ruby code’s complexity. This task generates an <span class="caps">HTML</span>
|
213
|
+
report of these statistics.</p>
|
214
|
+
|
215
|
+
|
216
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">flog</span><span class="punct">"/></span>
|
217
|
+
</pre></p>
|
218
|
+
|
219
|
+
|
220
|
+
<p><a href="flog.png" target="_blank">Sample</a></p>
|
221
|
+
|
222
|
+
|
223
|
+
<h3>Kwala task</h3>
|
224
|
+
|
225
|
+
|
226
|
+
<p><a href="http://kwala.rubyforge.org" target="_blank">Kwala</a> is a continuous integration
|
227
|
+
tool which gathers informations of the quality and metrics on your project. This
|
228
|
+
task integrates the reports produced by kwala to the site.</p>
|
229
|
+
|
230
|
+
|
231
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">kwala</span><span class="punct">"></span>
|
232
|
+
<span class="punct"><</span><span class="tag">params</span><span class="punct">></span>
|
233
|
+
<span class="comment"><!-- set of actions understood by kwala --></span>
|
234
|
+
<span class="punct"><</span><span class="tag">actions</span><span class="punct">></span>
|
235
|
+
<span class="punct"><</span><span class="tag">action</span><span class="punct">></span>loc<span class="punct"></</span><span class="tag">action</span><span class="punct">></span>
|
236
|
+
<span class="punct"><</span><span class="tag">action</span><span class="punct">></span>syntax_check<span class="punct"></</span><span class="tag">action</span><span class="punct">></span>
|
237
|
+
<span class="punct"><</span><span class="tag">action</span><span class="punct">></span>formatting<span class="punct"></</span><span class="tag">action</span><span class="punct">></span>
|
238
|
+
<span class="punct"><</span><span class="tag">action</span><span class="punct">></span>code_duplication<span class="punct"></</span><span class="tag">action</span><span class="punct">></span>
|
239
|
+
<span class="punct"><</span><span class="tag">action</span><span class="punct">></span>cyclomatic<span class="punct"></</span><span class="tag">action</span><span class="punct">></span>
|
240
|
+
<span class="punct"><</span><span class="tag">action</span><span class="punct">></span>unit_test<span class="punct"></</span><span class="tag">action</span><span class="punct">></span>
|
241
|
+
<span class="punct"><</span><span class="tag">action</span><span class="punct">></span>comment_check<span class="punct"></</span><span class="tag">action</span><span class="punct">></span>
|
242
|
+
<span class="punct"><</span><span class="tag">action</span><span class="punct">></span>requires<span class="punct"></</span><span class="tag">action</span><span class="punct">></span>
|
243
|
+
<span class="punct"><</span><span class="tag">action</span><span class="punct">></span>cycles<span class="punct"></</span><span class="tag">action</span><span class="punct">></span>
|
244
|
+
<span class="punct"></</span><span class="tag">actions</span><span class="punct">></span>
|
245
|
+
<span class="punct"></</span><span class="tag">params</span><span class="punct">></span>
|
246
|
+
<span class="punct"></</span><span class="tag">task</span><span class="punct">></span>
|
247
|
+
</pre></p>
|
248
|
+
|
249
|
+
|
250
|
+
<p><a href="kwala.png" target="_blank">Sample</a></p>
|
251
|
+
|
252
|
+
|
253
|
+
<h3>Railroad task</h3>
|
254
|
+
|
255
|
+
|
256
|
+
<p>Railroad is a tool to generate graphs of your models and/or your controllers. This
|
257
|
+
task generates your graphs and presents them on a <span class="caps">HTML</span> report. This task is not
|
258
|
+
compatible with CruiseControl.rb.</p>
|
259
|
+
|
260
|
+
|
261
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">railroad</span><span class="punct">"></span>
|
262
|
+
<span class="punct"><</span><span class="tag">params</span><span class="punct">></span>
|
263
|
+
<span class="punct"><</span><span class="tag">generate</span> <span class="attribute">value</span><span class="punct">="</span><span class="string">controllers|models|all</span><span class="punct">"/></span>
|
264
|
+
<span class="punct"></</span><span class="tag">params</span><span class="punct">></span>
|
265
|
+
<span class="punct"></</span><span class="tag">task</span><span class="punct">></span>
|
266
|
+
</pre></p>
|
267
|
+
|
268
|
+
|
269
|
+
<h3>Httperf task</h3>
|
270
|
+
|
271
|
+
|
272
|
+
<p><a href="http://www.hpl.hp.com/research/linux/httperf/" target="_blank">Httperf</a>
|
273
|
+
is a <span class="caps">HTTP</span> stress tool which generates text reports for a really important number
|
274
|
+
of statistics. This task generates a <span class="caps">HTML</span> report for these statistics.</p>
|
275
|
+
|
276
|
+
|
277
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">httperf</span><span class="punct">"></span>
|
278
|
+
<span class="punct"><</span><span class="tag">params</span><span class="punct">></span>
|
279
|
+
<span class="comment"><!-- set of ports which will match Mongrel instances (all managed within) --></span>
|
280
|
+
<span class="punct"><</span><span class="tag">ports</span><span class="punct">></span>
|
281
|
+
<span class="punct"><</span><span class="tag">port</span><span class="punct">></span>3334<span class="punct"></</span><span class="tag">port</span><span class="punct">></span>
|
282
|
+
<span class="punct"></</span><span class="tag">ports</span><span class="punct">></span>
|
283
|
+
<span class="punct"><</span><span class="tag">processes</span><span class="punct">></span>
|
284
|
+
<span class="punct"><</span><span class="tag">process</span> <span class="attribute">port</span><span class="punct">="</span><span class="string">3334</span><span class="punct">"</span> <span class="attribute">url</span><span class="punct">="</span><span class="string">/controller/action?param=value</span><span class="punct">"</span>
|
285
|
+
<span class="attribute">requests</span><span class="punct">="</span><span class="string">50</span><span class="punct">"</span> <span class="attribute">timeout</span><span class="punct">="</span><span class="string">2</span><span class="punct">"></span>
|
286
|
+
<span class="punct"><</span><span class="tag">description</span><span class="punct">></span>Stressing application with 50 requests (URL http://127.0.0.1:3334/controller/action?param=value),
|
287
|
+
with a timeout set to 2 seconds.<span class="punct"></</span><span class="tag">description</span><span class="punct">></span>
|
288
|
+
<span class="punct"></</span><span class="tag">process</span><span class="punct">></span>
|
289
|
+
<span class="punct"><</span><span class="tag">process</span> <span class="attribute">port</span><span class="punct">="</span><span class="string">3334</span><span class="punct">"</span> <span class="attribute">url</span><span class="punct">="</span><span class="string">/controller/action?param=value</span><span class="punct">"</span>
|
290
|
+
<span class="attribute">sessions</span><span class="punct">="</span><span class="string">10,5,2</span><span class="punct">"</span> <span class="attribute">rate</span><span class="punct">="</span><span class="string">5</span><span class="punct">"</span> <span class="attribute">timeout</span><span class="punct">="</span><span class="string">3</span><span class="punct">"></span>
|
291
|
+
<span class="punct"><</span><span class="tag">description</span><span class="punct">></span>Stressing application with 10 sessions (URL http://127.0.0.1:3334/controller/action?param=value),
|
292
|
+
with a rate of 5 sessions per second. Each session consists
|
293
|
+
of 5 calls that are spaced out by 2 seconds. Timeout is set to 3 seconds.<span class="punct"></</span><span class="tag">description</span><span class="punct">></span>
|
294
|
+
<span class="punct"></</span><span class="tag">process</span><span class="punct">></span>
|
295
|
+
<span class="punct"></</span><span class="tag">processes</span><span class="punct">></span>
|
296
|
+
<span class="punct"></</span><span class="tag">params</span><span class="punct">></span>
|
297
|
+
<span class="punct"></</span><span class="tag">task</span><span class="punct">></span>
|
298
|
+
</pre></p>
|
299
|
+
|
300
|
+
|
301
|
+
<p><a href="httperf.png" target="_blank">Sample</a></p>
|
302
|
+
|
303
|
+
|
304
|
+
<h3>Tests task</h3>
|
305
|
+
|
306
|
+
|
307
|
+
<p>Generates a report for the results of your tests.</p>
|
308
|
+
|
309
|
+
|
310
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">tests</span><span class="punct">"></span>
|
311
|
+
<span class="punct"><</span><span class="tag">params</span><span class="punct">></span>
|
312
|
+
<span class="punct"><</span><span class="tag">runner</span> <span class="attribute">type</span><span class="punct">="</span><span class="string">units</span><span class="punct">"/></span><span class="comment"><!-- equivalent to rake test:units --></span>
|
313
|
+
<span class="punct"><</span><span class="tag">runner</span> <span class="attribute">type</span><span class="punct">="</span><span class="string">functionals</span><span class="punct">"/></span><span class="comment"><!-- equivalent to rake test:functionals --></span>
|
314
|
+
<span class="punct"><</span><span class="tag">runner</span> <span class="attribute">type</span><span class="punct">="</span><span class="string">integration</span><span class="punct">"/></span><span class="comment"><!-- equivalent to rake test:integration --></span>
|
315
|
+
<span class="punct"><</span><span class="tag">runner</span> <span class="attribute">type</span><span class="punct">="</span><span class="string">rspec</span><span class="punct">"/></span><span class="comment"><!-- equivalent to rake spec --></span>
|
316
|
+
<span class="punct"></</span><span class="tag">params</span><span class="punct">></span>
|
317
|
+
<span class="punct"></</span><span class="tag">task</span><span class="punct">></span>
|
318
|
+
</pre></p>
|
319
|
+
|
320
|
+
|
321
|
+
<p><a href="tests.png" target="_blank">Sample</a></p>
|
322
|
+
|
323
|
+
|
324
|
+
<h3>ZenTest task</h3>
|
325
|
+
|
326
|
+
|
327
|
+
<p>ZenTest is a tool which generates Ruby code to show your test leaks. This task generates
|
328
|
+
a report to show where these leaks are.</p>
|
329
|
+
|
330
|
+
|
331
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">zentest</span><span class="punct">"></span>
|
332
|
+
<span class="punct"><</span><span class="tag">params</span><span class="punct">></span>
|
333
|
+
<span class="comment"><!-- runs an analysis of the efficiency/exhaustiveness of the HomeControllerTest
|
334
|
+
test class against the HomeController class --></span>
|
335
|
+
<span class="punct"><</span><span class="tag">runner</span> <span class="attribute">class</span><span class="punct">="</span><span class="string">app/controllers/home_controller.rb</span><span class="punct">"</span> <span class="attribute">test</span><span class="punct">="</span><span class="string">test/functional/home_controller_test.rb</span><span class="punct">"/></span>
|
336
|
+
<span class="punct"></</span><span class="tag">params</span><span class="punct">></span>
|
337
|
+
<span class="punct"></</span><span class="tag">task</span><span class="punct">></span>
|
338
|
+
</pre></p>
|
339
|
+
|
340
|
+
|
341
|
+
<p><a href="zentest.png" target="_blank">Sample</a></p>
|
342
|
+
|
343
|
+
|
344
|
+
<h3>Capistrano task</h3>
|
345
|
+
|
346
|
+
|
347
|
+
<p>Generates reports for you Capistrano deployments.</p>
|
348
|
+
|
349
|
+
|
350
|
+
<p><pre class='syntax'><span class="punct"><</span><span class="tag">task</span> <span class="attribute">name</span><span class="punct">="</span><span class="string">capistrano</span><span class="punct">"></span>
|
351
|
+
<span class="comment"><!-- set of runners for your Capistrano deployments --></span>
|
352
|
+
<span class="punct"><</span><span class="tag">params</span><span class="punct">></span>
|
353
|
+
<span class="punct"><</span><span class="tag">runner</span> <span class="attribute">task</span><span class="punct">="</span><span class="string">deploy</span><span class="punct">"/></span><span class="comment"><!-- equivalent to 'cap deploy' --></span>
|
354
|
+
<span class="punct"></</span><span class="tag">params</span><span class="punct">></span>
|
355
|
+
<span class="punct"></</span><span class="tag">task</span><span class="punct">></span>
|
356
|
+
</pre></p>
|
357
|
+
|
358
|
+
|
359
|
+
<p><a href="capistrano.png" target="_blank">Sample</a></p>
|
360
|
+
|
361
|
+
|
362
|
+
<h2>Demonstration of usage</h2>
|
363
|
+
|
364
|
+
|
365
|
+
<p>When the <span class="caps">XML</span> file describing your project is written, you can build the Continuous4R
|
366
|
+
website by typing :</p>
|
367
|
+
|
368
|
+
|
369
|
+
<p><pre class='syntax'>rake continuous4r:build</pre></p>
|
370
|
+
|
371
|
+
|
372
|
+
<p>Now you can view the website generated for your project by lauching <strong>[project_folder]/continuous4r_build/index.html</strong>.</p>
|
373
|
+
|
374
|
+
|
375
|
+
<h2>Integration within CruiseControl.rb</h2>
|
376
|
+
|
377
|
+
|
378
|
+
<p>Integration within CruiseControl.rb is quite simple. You just need to configure your
|
379
|
+
project to build task “rake continuous4r:build”. When the build is done, go to the
|
380
|
+
detail page of the build, and click on the link below “Custom Build Artifacts”.</p>
|
381
|
+
|
382
|
+
|
383
|
+
<h2>Help needed</h2>
|
384
|
+
|
385
|
+
|
386
|
+
<p>This version 0.0.1 is a beta version of Continuous4r. I’m searching for volunteers
|
387
|
+
to work on this tool. With a more substancial amount of quality and work, this tool
|
388
|
+
could be <span class="caps">REALLY GREAT</span>.</p>
|
389
|
+
|
390
|
+
|
391
|
+
<h2>License</h2>
|
392
|
+
|
393
|
+
|
394
|
+
<p>This code is free to use under the terms of the <span class="caps">MIT</span> license.</p>
|
395
|
+
|
396
|
+
|
397
|
+
<h2>Contact</h2>
|
398
|
+
|
399
|
+
|
400
|
+
<p>Comments are welcome. Send an email to <a href="mailto:duboisv@hotmail.com">Vincent Dubois</a>,
|
401
|
+
or post a message on the <a href="http://rubyforge.org/forum/forum.php?forum_id=19721" target="_blank">forum</a>.</p>
|
402
|
+
<p class="coda">
|
403
|
+
<a href="duboisv@hotmail.com">Vincent Dubois</a>, 1st January 2008<br>
|
404
|
+
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
405
|
+
</p>
|
406
|
+
</div>
|
407
|
+
|
408
|
+
<!-- insert site tracking codes here, like Google Urchin -->
|
409
|
+
|
410
|
+
</body>
|
411
|
+
</html>
|