vagrantup 0.8.7 → 0.8.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +21 -0
- data/CHANGELOG.md +25 -0
- data/README.md +38 -8
- data/Rakefile +13 -6
- data/bin/vagrant +6 -1
- data/config/default.rb +2 -2
- data/lib/vagrant/action/box/download.rb +14 -2
- data/lib/vagrant/action/vm/check_box.rb +8 -1
- data/lib/vagrant/action/vm/check_guest_additions.rb +6 -3
- data/lib/vagrant/action/vm/share_folders.rb +12 -1
- data/lib/vagrant/command/init.rb +1 -1
- data/lib/vagrant/downloaders/http.rb +29 -2
- data/lib/vagrant/hosts.rb +1 -0
- data/lib/vagrant/hosts/bsd.rb +1 -0
- data/lib/vagrant/hosts/freebsd.rb +51 -0
- data/lib/vagrant/provisioners/chef.rb +6 -5
- data/lib/vagrant/provisioners/chef_client.rb +1 -1
- data/lib/vagrant/provisioners/chef_solo.rb +13 -4
- data/lib/vagrant/ssh.rb +24 -49
- data/lib/vagrant/ssh/session.rb +1 -1
- data/lib/vagrant/systems/solaris.rb +57 -11
- data/lib/vagrant/test_helpers.rb +23 -0
- data/lib/vagrant/ui.rb +1 -1
- data/lib/vagrant/util.rb +0 -1
- data/lib/vagrant/util/file_checksum.rb +38 -0
- data/lib/vagrant/util/platform.rb +1 -1
- data/lib/vagrant/util/safe_exec.rb +2 -1
- data/lib/vagrant/version.rb +1 -1
- data/tasks/acceptance.rake +113 -0
- data/tasks/bundler.rake +3 -0
- data/tasks/test.rake +15 -0
- data/templates/commands/init/Vagrantfile.erb +3 -0
- data/templates/locales/en.yml +1 -1
- data/test/acceptance/base.rb +48 -0
- data/test/acceptance/box_test.rb +77 -0
- data/test/acceptance/destroy_test.rb +37 -0
- data/test/acceptance/halt_test.rb +72 -0
- data/test/acceptance/init_test.rb +33 -0
- data/test/acceptance/resume_test.rb +17 -0
- data/test/acceptance/ssh_test.rb +41 -0
- data/test/acceptance/support/config.rb +42 -0
- data/test/acceptance/support/isolated_environment.rb +226 -0
- data/test/acceptance/support/matchers/have_color.rb +9 -0
- data/test/acceptance/support/matchers/match_output.rb +14 -0
- data/test/acceptance/support/output.rb +87 -0
- data/test/acceptance/support/shared/base_context.rb +65 -0
- data/test/acceptance/support/shared/command_examples.rb +33 -0
- data/test/acceptance/support/tempdir.rb +34 -0
- data/test/acceptance/support/virtualbox.rb +36 -0
- data/test/acceptance/suspend_test.rb +56 -0
- data/test/acceptance/up_basic_test.rb +58 -0
- data/test/acceptance/up_with_box_url.rb +40 -0
- data/test/acceptance/vagrant_test.rb +47 -0
- data/test/acceptance/version_test.rb +20 -0
- data/test/buildbot/README.md +72 -0
- data/test/buildbot/buildbot_config/__init__.py +0 -0
- data/test/buildbot/buildbot_config/config/__init__.py +0 -0
- data/test/buildbot/buildbot_config/config/loader.py +24 -0
- data/test/buildbot/buildbot_config/config/master.py +24 -0
- data/test/buildbot/buildbot_config/config/slave.py +22 -0
- data/test/buildbot/buildbot_config/master/__init__.py +6 -0
- data/test/buildbot/buildbot_config/master/builders.py +78 -0
- data/test/buildbot/buildbot_config/master/buildsteps.py +100 -0
- data/test/buildbot/buildbot_config/master/change_sources.py +8 -0
- data/test/buildbot/buildbot_config/master/schedulers.py +32 -0
- data/test/buildbot/buildbot_config/master/slaves.py +60 -0
- data/test/buildbot/buildbot_config/master/status.py +52 -0
- data/test/buildbot/master/Makefile.sample +28 -0
- data/test/buildbot/master/buildbot.tac +36 -0
- data/test/buildbot/master/master.cfg +67 -0
- data/test/buildbot/master/public_html/bg_gradient.jpg +0 -0
- data/test/buildbot/master/public_html/default.css +545 -0
- data/test/buildbot/master/public_html/favicon.ico +0 -0
- data/test/buildbot/master/public_html/robots.txt +10 -0
- data/test/buildbot/master/public_html/static/css/bootstrap-1.4.0.min.css +356 -0
- data/test/buildbot/master/public_html/static/css/prettify.css +97 -0
- data/test/buildbot/master/public_html/static/css/syntax.css +60 -0
- data/test/buildbot/master/public_html/static/css/vagrant.base.css +205 -0
- data/test/buildbot/master/public_html/static/images/base_box_mac.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/getting-started/success.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/icons/error.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_chilling.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_holding.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_looking.png +0 -0
- data/test/buildbot/master/public_html/static/images/windows/alter_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/edit_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/environment_variables_button.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/port_and_ppk_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/ppk_selection.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/putty_first_screen.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/save_result.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/vbox_manage_default_location.jpg +0 -0
- data/test/buildbot/master/public_html/static/js/bootstrap-tabs.js +80 -0
- data/test/buildbot/master/public_html/static/js/jquery-1.7.min.js +4 -0
- data/test/buildbot/master/templates/authfail.html +9 -0
- data/test/buildbot/master/templates/build.html +205 -0
- data/test/buildbot/master/templates/builder.html +118 -0
- data/test/buildbot/master/templates/builders.html +33 -0
- data/test/buildbot/master/templates/buildslave.html +72 -0
- data/test/buildbot/master/templates/buildslaves.html +70 -0
- data/test/buildbot/master/templates/change.html +15 -0
- data/test/buildbot/master/templates/layouts/base.html +58 -0
- data/test/buildbot/master/templates/macros/box.html +37 -0
- data/test/buildbot/master/templates/macros/build_line.html +50 -0
- data/test/buildbot/master/templates/macros/change.html +81 -0
- data/test/buildbot/master/templates/macros/forms.html +300 -0
- data/test/buildbot/master/templates/root.html +42 -0
- data/test/buildbot/master/templates/waterfall.html +53 -0
- data/test/buildbot/requirements.txt +4 -0
- data/test/buildbot/scripts/deploy.sh +38 -0
- data/test/buildbot/scripts/setup.sh +107 -0
- data/test/buildbot/slave/buildbot.tac +43 -0
- data/test/buildbot/slave/info/admin +1 -0
- data/test/buildbot/slave/info/host +1 -0
- data/test/buildbot/tests/__init__.py +0 -0
- data/test/buildbot/tests/master/__init__.py +0 -0
- data/test/buildbot/tests/master/test_slaves.py +41 -0
- data/test/buildbot/vendor/choices-0.4.0.tar.gz +0 -0
- data/test/config/acceptance_boxes.yml +7 -0
- data/test/unit/test_helper.rb +4 -0
- data/test/unit/vagrant/action/box/download_test.rb +2 -2
- data/test/unit/vagrant/action/vm/check_box_test.rb +6 -1
- data/test/unit/vagrant/action/vm/share_folders_test.rb +1 -1
- data/test/unit/vagrant/command/init_test.rb +10 -0
- data/test/unit/vagrant/downloaders/http_test.rb +12 -1
- data/test/unit/vagrant/provisioners/chef_test.rb +7 -0
- data/test/unit/vagrant/ssh/session_test.rb +2 -2
- data/test/unit/vagrant/ssh_test.rb +5 -8
- data/vagrant.gemspec +6 -0
- metadata +177 -1
@@ -0,0 +1,81 @@
|
|
1
|
+
{% macro change(c) %}
|
2
|
+
|
3
|
+
<table class="zebra-striped">
|
4
|
+
<tbody>
|
5
|
+
<tr>
|
6
|
+
<td class="left">Changed by</td>
|
7
|
+
<td><b>{{ c.who|email }}</b></td>
|
8
|
+
</tr>
|
9
|
+
|
10
|
+
<tr>
|
11
|
+
<td class="left">Changed at</td>
|
12
|
+
<td><b>{{ c.at }}</b></td>
|
13
|
+
</tr>
|
14
|
+
|
15
|
+
{% if c.repository %}
|
16
|
+
<tr>
|
17
|
+
<td class="left">Repository</td>
|
18
|
+
<td><b>{{ c.repository|repolink }}</b></td>
|
19
|
+
</tr>
|
20
|
+
{% endif %}
|
21
|
+
|
22
|
+
{% if c.project %}
|
23
|
+
<tr>
|
24
|
+
<td class="left">Project</td>
|
25
|
+
<td><b>{{ c.project|projectlink }}</b></td>
|
26
|
+
</tr>
|
27
|
+
{% endif %}
|
28
|
+
|
29
|
+
{% if c.branch %}
|
30
|
+
<tr>
|
31
|
+
<td class="left">Branch</td>
|
32
|
+
<td><b>{{ c.branch|e }}</b></td>
|
33
|
+
</tr>
|
34
|
+
{% endif %}
|
35
|
+
|
36
|
+
{% if c.rev %}
|
37
|
+
<tr>
|
38
|
+
<td class="left">Revision</td>
|
39
|
+
<td>{%- if c.revlink -%}<a href="{{ c.revlink }}">{{ c.rev|e }}</a>
|
40
|
+
{%- else -%}{{ c.rev|revlink(c.repository) }} {%- endif -%}</td>
|
41
|
+
</tr>
|
42
|
+
{% endif %}
|
43
|
+
</tbody>
|
44
|
+
</table>
|
45
|
+
|
46
|
+
{% if c.comments %}
|
47
|
+
<h3>Comments</h3>
|
48
|
+
<pre>{{ c.comments|changecomment(c.project) }}</pre>
|
49
|
+
{% endif %}
|
50
|
+
|
51
|
+
<h3>Changed files</h3>
|
52
|
+
<ul>
|
53
|
+
{% for f in c.files -%}
|
54
|
+
<li>
|
55
|
+
{%- if f.url %}
|
56
|
+
<a href="{{ f.url }}">{{ f.name|e }}</a>
|
57
|
+
{%- else %}
|
58
|
+
{{ f.name|e }}
|
59
|
+
{%- endif -%}
|
60
|
+
</li>
|
61
|
+
{% else %}
|
62
|
+
<li>no files</li>
|
63
|
+
{% endfor %}
|
64
|
+
</ul>
|
65
|
+
|
66
|
+
{% if c.properties %}
|
67
|
+
<h3>Properties</h3>
|
68
|
+
<table class="zebra-striped">
|
69
|
+
{% for p in c.properties %}
|
70
|
+
<tr>
|
71
|
+
<td class="left">{{ p[0]|capitalize|e }}</td>
|
72
|
+
<td>{{ p[1]|e }}</td>
|
73
|
+
</tr>
|
74
|
+
{% endfor %}
|
75
|
+
</table>
|
76
|
+
{% endif %}
|
77
|
+
{%- endmacro %}
|
78
|
+
|
79
|
+
{% macro box_contents(who, url, pageTitle) -%}
|
80
|
+
<a href="{{ url }}" title="{{ pageTitle|e }}">{{ who|user }}</a>
|
81
|
+
{%- endmacro %}
|
@@ -0,0 +1,300 @@
|
|
1
|
+
{% macro auth() %}
|
2
|
+
<div class="clearfix">
|
3
|
+
<label for="username">Your username:</label>
|
4
|
+
<div class="input">
|
5
|
+
<input type="text" name="username"/>
|
6
|
+
</div>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="clearfix">
|
10
|
+
<label for="password">Your password:</label>
|
11
|
+
<div class="input">
|
12
|
+
<input type="password" name="passwd"/>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
{% endmacro %}
|
16
|
+
|
17
|
+
{% macro cancel_pending_build(cancel_url, authz, short=False, id='all') %}
|
18
|
+
{% if not short or not authz.needAuthForm('cancelPendingBuild') %}
|
19
|
+
<form method="post" name="cancel" action="{{ cancel_url }}" class='command cancelbuild'
|
20
|
+
{{ 'style="display:inline"' if short else '' }}>
|
21
|
+
{% if not short %}
|
22
|
+
{% if on_all %}
|
23
|
+
<p>To cancel all builds, fill out the following fields and
|
24
|
+
push the 'Cancel' button</p>
|
25
|
+
{% else %}
|
26
|
+
<p>To cancel this build, fill out the following fields and
|
27
|
+
push the 'Cancel' button</p>
|
28
|
+
{% endif %}
|
29
|
+
{% endif %}
|
30
|
+
|
31
|
+
{% if authz.needAuthForm('cancelPendingBuild') %}
|
32
|
+
{{ auth() }}
|
33
|
+
{% elif not short %}
|
34
|
+
<p>To cancel individual builds, click the 'Cancel' buttons above.</p>
|
35
|
+
{% endif %}
|
36
|
+
|
37
|
+
<input type="hidden" name="id" value="{{ id }}" />
|
38
|
+
|
39
|
+
<div class="actions">
|
40
|
+
<input type="submit" class="btn" value="Cancel" />
|
41
|
+
</div>
|
42
|
+
</form>
|
43
|
+
{% endif %}
|
44
|
+
{% endmacro %}
|
45
|
+
|
46
|
+
{% macro stop_change_builds(stopchange_url, changenum, authz) %}
|
47
|
+
{% if not changenum or not authz.needAuthForm('stopChange') %}
|
48
|
+
<form method="post" action="{{ stopchange_url }}" class='command stopchange'>
|
49
|
+
{% if changenum %}
|
50
|
+
<p>To cancel all builds for this change, push the 'Cancel' button</p>
|
51
|
+
{% else %}
|
52
|
+
<p>To cancel builds for this builder for a given change, fill out all
|
53
|
+
fields and push the 'Cancel' button</p>
|
54
|
+
{% endif %}
|
55
|
+
|
56
|
+
{% if authz.needAuthForm('cancelPendingBuild') %}
|
57
|
+
{{ auth() }}
|
58
|
+
{% endif %}
|
59
|
+
|
60
|
+
{% if changenum %}
|
61
|
+
<input type="hidden" name="change" value="{{ changenum }}" />
|
62
|
+
{% else %}
|
63
|
+
<div class="row">
|
64
|
+
<span class="label">Change #:</span>
|
65
|
+
<input type="text" name="change"/>
|
66
|
+
</div>
|
67
|
+
{% endif %}
|
68
|
+
<input type="submit" value="Cancel" />
|
69
|
+
</form>
|
70
|
+
{% endif %}
|
71
|
+
{% endmacro %}
|
72
|
+
|
73
|
+
{% macro stop_build(stop_url, authz, on_all=False, on_selected=False, builders=[], short=False, label="Build") %}
|
74
|
+
{% if not short or not authz.needAuthForm('stopBuild') %}
|
75
|
+
<form method="post" name="stop_build" action="{{ stop_url }}" class='command stopbuild'
|
76
|
+
{{ 'style="display:inline"' if short else '' }}>
|
77
|
+
{% if not short %}
|
78
|
+
{% if on_all %}
|
79
|
+
<p>To stop all builds, fill out the following field and
|
80
|
+
push the <i>Stop {{ label }}</i> button</p>
|
81
|
+
{% elif on_selected %}
|
82
|
+
<p>To stop selected builds, select the builders, fill out the
|
83
|
+
following field and push the <i>Stop {{ label }}</i> button</p>
|
84
|
+
<table>
|
85
|
+
{% for b in builders %}
|
86
|
+
<tr>
|
87
|
+
<td align="center"><input type="checkbox" name="selected" value="{{ b.name }}"></td>
|
88
|
+
<td class="box"><a href="{{ b.link }}">{{ b.name|e }}</a></td>
|
89
|
+
</tr>
|
90
|
+
{% endfor %}
|
91
|
+
</table>
|
92
|
+
|
93
|
+
{% else %}
|
94
|
+
<p>To stop this build, fill out the following field and
|
95
|
+
push the <i>Stop {{ label }}</i> button</p>
|
96
|
+
{% endif %}
|
97
|
+
{% endif %}
|
98
|
+
|
99
|
+
{% if authz.needAuthForm('stopBuild') %}
|
100
|
+
{{ auth() }}
|
101
|
+
{% endif %}
|
102
|
+
|
103
|
+
{% if not short %}
|
104
|
+
<div class="clearfix">
|
105
|
+
<label for="comments">Reason</label>
|
106
|
+
<div class="input">
|
107
|
+
<input type="text" name="comments" />
|
108
|
+
</div>
|
109
|
+
</div>
|
110
|
+
{% endif %}
|
111
|
+
|
112
|
+
<div class="actions">
|
113
|
+
<input type="submit" class="btn primary" value="Stop" />
|
114
|
+
</div>
|
115
|
+
</form>
|
116
|
+
{% endif %}
|
117
|
+
{% endmacro %}
|
118
|
+
|
119
|
+
{% macro force_build(force_url, authz, on_all=False, on_selected=False, builders=[]) %}
|
120
|
+
<form method="post" name="force_build" action="{{ force_url }}" class="command forcebuild">
|
121
|
+
|
122
|
+
{% if on_all %}
|
123
|
+
<p>To force a build on <strong>all Builders</strong>, fill out the following fields
|
124
|
+
and push the 'Force Build' button</p>
|
125
|
+
{% elif on_selected %}
|
126
|
+
<p>To force a build on <strong>certain Builders</strong>, select the
|
127
|
+
builders, fill out the following fields and push the
|
128
|
+
'Force Build' button</p>
|
129
|
+
|
130
|
+
<table>
|
131
|
+
{% for b in builders %}
|
132
|
+
<tr>
|
133
|
+
<td align="center"><input type="checkbox" name="selected" value="{{ b.name }}"></td>
|
134
|
+
<td class="box"><a href="{{ b.link }}">{{ b.name|e }}</a></td>
|
135
|
+
</tr>
|
136
|
+
{% endfor %}
|
137
|
+
</table>
|
138
|
+
|
139
|
+
{% else %}
|
140
|
+
<p>To force a build, fill out the following fields and
|
141
|
+
push the 'Force Build' button</p>
|
142
|
+
{% endif %}
|
143
|
+
|
144
|
+
{% if authz.needAuthForm('forceBuild') %}
|
145
|
+
{{ auth() }}
|
146
|
+
{% else %}
|
147
|
+
<div class="clearfix">
|
148
|
+
<label for="username">Your name</label>
|
149
|
+
<div class="input">
|
150
|
+
<input type="text" name="username" />
|
151
|
+
</div>
|
152
|
+
</div>
|
153
|
+
{% endif %}
|
154
|
+
|
155
|
+
<div class="clearfix">
|
156
|
+
<label for="comments">Reason for build</label>
|
157
|
+
<div class="input">
|
158
|
+
<input type="text" name="comments" />
|
159
|
+
</div>
|
160
|
+
</div>
|
161
|
+
|
162
|
+
<div class="clearfix">
|
163
|
+
<label for="branch">Branch to build</label>
|
164
|
+
<div class="input">
|
165
|
+
<input type="text" name="branch" />
|
166
|
+
</div>
|
167
|
+
</div>
|
168
|
+
|
169
|
+
<div class="clearfix">
|
170
|
+
<label for="revision">Revision to build</label>
|
171
|
+
<div class="input">
|
172
|
+
<input type="text" name="revision" />
|
173
|
+
</div>
|
174
|
+
</div>
|
175
|
+
|
176
|
+
<div class="clearfix">
|
177
|
+
<label for="repository">Repository to build</label>
|
178
|
+
<div class="input">
|
179
|
+
<input type="text" name="repository" />
|
180
|
+
</div>
|
181
|
+
</div>
|
182
|
+
|
183
|
+
<div class="clearfix">
|
184
|
+
<label for="project">Project to build</label>
|
185
|
+
<div class="input">
|
186
|
+
<input type="text" name="project" />
|
187
|
+
</div>
|
188
|
+
</div>
|
189
|
+
|
190
|
+
<div class="actions">
|
191
|
+
<input type="submit" class="btn" value="Force Build" />
|
192
|
+
</div>
|
193
|
+
</form>
|
194
|
+
{% endmacro %}
|
195
|
+
|
196
|
+
{% macro graceful_shutdown(shutdown_url, authz) %}
|
197
|
+
<form method="post" action="{{ shutdown_url }}" class='command graceful_shutdown'>
|
198
|
+
|
199
|
+
<p>To cause this slave to shut down gracefully when it is idle,
|
200
|
+
push the 'Graceful Shutdown' button</p>
|
201
|
+
|
202
|
+
{% if authz.needAuthForm('gracefulShutdown') %}
|
203
|
+
{{ auth() }}
|
204
|
+
{% endif %}
|
205
|
+
|
206
|
+
<input type="submit" value="Graceful Shutdown" />
|
207
|
+
</form>
|
208
|
+
{% endmacro %}
|
209
|
+
|
210
|
+
{% macro clean_shutdown(shutdown_url, authz) %}
|
211
|
+
<form method="post" action="{{ shutdown_url }}" class='command clean_shutdown'>
|
212
|
+
<p>To cause this master to shut down cleanly, push the 'Clean Shutdown' button.</p>
|
213
|
+
<p>No other builds will be started on this master, and the master will
|
214
|
+
stop once all current builds are finished.</p>
|
215
|
+
|
216
|
+
{% if authz.needAuthForm('gracefulShutdown') %}
|
217
|
+
{{ auth() }}
|
218
|
+
{% endif %}
|
219
|
+
|
220
|
+
<input type="submit" value="Clean Shutdown" />
|
221
|
+
</form>
|
222
|
+
{% endmacro %}
|
223
|
+
|
224
|
+
{% macro cancel_clean_shutdown(cancel_shutdown_url, authz) %}
|
225
|
+
<form method="post" action="{{ cancel_shutdown_url }}" class='command cancel_clean_shutdown'>
|
226
|
+
<p>To cancel a previously initiated shutdown, push the 'Cancel Shutdown' button.</p>
|
227
|
+
|
228
|
+
{% if authz.needAuthForm('gracefulShutdown') %}
|
229
|
+
{{ auth() }}
|
230
|
+
{% endif %}
|
231
|
+
|
232
|
+
<input type="submit" value="Cancel Shutdown" />
|
233
|
+
</form>
|
234
|
+
{% endmacro %}
|
235
|
+
|
236
|
+
{% macro ping_builder(ping_url, authz) %}
|
237
|
+
<form method="post" action="{{ ping_url }}" class='command ping_builder'>
|
238
|
+
<p>To ping the buildslave(s), push the 'Ping' button</p>
|
239
|
+
|
240
|
+
{% if authz.needAuthForm('gracefulShutdown') %}
|
241
|
+
{{ auth() }}
|
242
|
+
{% endif %}
|
243
|
+
|
244
|
+
<input type="submit" class="btn" value="Ping Builder" />
|
245
|
+
</form>
|
246
|
+
{% endmacro %}
|
247
|
+
|
248
|
+
{% macro rebuild_build(rebuild_url, authz, exactly, ss) %}
|
249
|
+
<form method="post" action="{{ rebuild_url }}" class="command rebuild">
|
250
|
+
|
251
|
+
{% if exactly %}
|
252
|
+
<p>This tree was built from a specific set of
|
253
|
+
source files, and can be rebuilt exactly</p>
|
254
|
+
{% else %}
|
255
|
+
<p>This tree was built from the most recent revision
|
256
|
+
{% if ss.branch %}
|
257
|
+
(along branch {{ ss.branch }})
|
258
|
+
{% endif %}
|
259
|
+
and thus it might not be possible to rebuild it
|
260
|
+
exactly. <br/>Any changes that have been committed
|
261
|
+
after this build was started <b>will</b> be
|
262
|
+
included in a rebuild.</p>
|
263
|
+
{% endif %}
|
264
|
+
|
265
|
+
|
266
|
+
{% if on_all %}
|
267
|
+
<p>To force a build on <strong>all Builders</strong>, fill out the following fields
|
268
|
+
and push the 'Force Build' button</p>
|
269
|
+
{% else %}
|
270
|
+
<p>To force a build, fill out the following fields and
|
271
|
+
push the 'Force Build' button</p>
|
272
|
+
{% endif %}
|
273
|
+
|
274
|
+
{% if authz.needAuthForm('forceBuild') %}
|
275
|
+
{{ auth() }}
|
276
|
+
{% endif %}
|
277
|
+
<div class="clearfix">
|
278
|
+
<label for="comments">Reason for build</label>
|
279
|
+
<div class="input">
|
280
|
+
<input type="text" name="comments" />
|
281
|
+
</div>
|
282
|
+
</div>
|
283
|
+
|
284
|
+
<div class="actions">
|
285
|
+
<input type="submit" class="btn primary" value="Rebuild" />
|
286
|
+
</div>
|
287
|
+
</form>
|
288
|
+
{% endmacro %}
|
289
|
+
|
290
|
+
{% macro show_users(users_url, authz) %}
|
291
|
+
<form method="post" action="{{ users_url }}" class='command show_users'>
|
292
|
+
<p>To show users, press the 'Show Users' button</p>
|
293
|
+
|
294
|
+
{% if authz.needAuthForm('showUsersPage') %}
|
295
|
+
{{ auth() }}
|
296
|
+
{% endif %}
|
297
|
+
|
298
|
+
<input type="submit" value="Show Users" />
|
299
|
+
</form>
|
300
|
+
{% endmacro %}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
{% extends "layouts/base.html" %}
|
2
|
+
|
3
|
+
{% block content %}
|
4
|
+
<div class="alert-message warning">
|
5
|
+
<strong>Vagrant CI is under construction!</strong> This site is still
|
6
|
+
brand new and the exact builders, build slaves, and stability of the CI
|
7
|
+
will be in flux for the next few weeks.
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<img src="/static/images/vagrant_looking.png" class="right" />
|
11
|
+
|
12
|
+
<p>
|
13
|
+
<strong>Vagrant CI, keeping Vagrant stable every step of the way.</strong>
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<p>
|
17
|
+
Welcome to the CI for <a href="http://vagrantup.com">Vagrant</a>, a tool
|
18
|
+
for building and distributing virtualized environments. In order to maintain
|
19
|
+
the level of stability that users of Vagrant have come to expect, this
|
20
|
+
CI system will run a wide range of tests against all commits to the
|
21
|
+
<a href="https://github.com/mitchellh/vagrant">Vagrant project</a>.
|
22
|
+
</p>
|
23
|
+
|
24
|
+
<p>
|
25
|
+
Here is a brief overview of the pages you may be interested in:
|
26
|
+
</p>
|
27
|
+
|
28
|
+
<ul>
|
29
|
+
<li>
|
30
|
+
<a href="/waterfall">Waterfall</a> - This page will show you the status
|
31
|
+
of all the builders in reverse chronological order so you can see what
|
32
|
+
the CI is up to at this moment.
|
33
|
+
</li>
|
34
|
+
<li>
|
35
|
+
<a href="/builders">Builders</a> - This page will show you the various
|
36
|
+
builders. Builders are the things which know how to perform one kind of
|
37
|
+
build (unit tests, acceptance tests, etc.). From here you can also see the
|
38
|
+
status of the last build for each builder as well as the current status
|
39
|
+
of the builder.
|
40
|
+
</li>
|
41
|
+
</ul>
|
42
|
+
{% endblock %}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
{% extends "layouts/base.html" %}
|
2
|
+
{% from "macros/box.html" import box %}
|
3
|
+
|
4
|
+
{% block content %}
|
5
|
+
<p>
|
6
|
+
This is the Waterfall page. It shows the status of various builders in
|
7
|
+
reverse chronological order. This allows you to see the most recent builds
|
8
|
+
and their current status. You can additionally see the commits as they come
|
9
|
+
in to the project.
|
10
|
+
</p>
|
11
|
+
|
12
|
+
<table class="bordered-table Module waterfall">
|
13
|
+
<thead>
|
14
|
+
<tr>
|
15
|
+
<th colspan="2">Builder</th>
|
16
|
+
{% for b in builders %}
|
17
|
+
<th class="{{ b.top_class }}">
|
18
|
+
<a href="{{ b.url }}">{{ b.name }}</a><br />
|
19
|
+
{{ " ".join(b.top) }}
|
20
|
+
</th>
|
21
|
+
{% endfor %}
|
22
|
+
</tr>
|
23
|
+
</thead>
|
24
|
+
<tbody>
|
25
|
+
<tr>
|
26
|
+
<th colspan="2">Current Activity</th>
|
27
|
+
{% for b in builders %}
|
28
|
+
<td class="{{ b.status_class }}">
|
29
|
+
{{ "<br />".join(b.status) }}
|
30
|
+
</td>
|
31
|
+
{% endfor %}
|
32
|
+
</tr>
|
33
|
+
|
34
|
+
<tr>
|
35
|
+
<th>Time ({{ tz }})</th>
|
36
|
+
<th>Changes</th>
|
37
|
+
{% for b in builders %}
|
38
|
+
<td> </td>
|
39
|
+
{% endfor %}
|
40
|
+
</tr>
|
41
|
+
|
42
|
+
{% for i in range(gridlen) -%}
|
43
|
+
<tr>
|
44
|
+
{% for strip in grid -%}
|
45
|
+
{%- if strip[i] -%}{{ box(**strip[i]) }}
|
46
|
+
{%- elif no_bubble -%}{{ box() }}
|
47
|
+
{%- endif -%}
|
48
|
+
{%- endfor -%}
|
49
|
+
</tr>
|
50
|
+
{% endfor %}
|
51
|
+
</tbody>
|
52
|
+
</table>
|
53
|
+
{% endblock %}
|