integrity-integrity 0.1.9.3 → 0.1.10
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/AUTHORS +35 -0
- data/CHANGES +21 -3
- data/LICENSE +20 -0
- data/README.md +10 -52
- data/integrity.gemspec +6 -3
- data/lib/integrity.rb +2 -0
- data/lib/integrity/helpers/urls.rb +3 -3
- data/lib/integrity/installer.rb +3 -2
- data/lib/integrity/migrations.rb +23 -2
- data/lib/integrity/notifier.rb +1 -1
- data/lib/integrity/project.rb +2 -0
- data/test/acceptance/build_notifications_test.rb +26 -2
- data/test/acceptance/manual_build_project_test.rb +1 -1
- data/test/acceptance/notifier_test_test.rb +37 -0
- data/test/unit/helpers_test.rb +7 -0
- data/test/unit/migrations_test.rb +6 -4
- data/test/unit/project_test.rb +18 -2
- data/views/project.haml +2 -3
- metadata +6 -3
data/AUTHORS
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
Integrity is maintained by Nicolás Sanguinetti and Simon Rozet.
|
2
|
+
|
3
|
+
Thanks to the following people for their feedbacks, ideas and patches :
|
4
|
+
|
5
|
+
* Bodaniel Jeanes
|
6
|
+
* James Golick
|
7
|
+
* Wilson Bilkovich
|
8
|
+
* Mislav Marohnić
|
9
|
+
* Miles Z. Sterrett
|
10
|
+
* Kyle Hargraves
|
11
|
+
* Josh Nichols
|
12
|
+
* Jeremy Hinegardner
|
13
|
+
* Chris Wanstrath
|
14
|
+
* Will Leinweber
|
15
|
+
* Pier-Hugues Pellerin
|
16
|
+
* Justin Knowlden
|
17
|
+
* Elliott Cable
|
18
|
+
* dbr
|
19
|
+
* Scott Taylor
|
20
|
+
* Jeff Whitmire
|
21
|
+
* Diego Algorta
|
22
|
+
* Eric Mill
|
23
|
+
* Pat Nakajima
|
24
|
+
* Nick Quaranto
|
25
|
+
* Levent Ali
|
26
|
+
* Jeff Schoolcraft
|
27
|
+
* James Adam
|
28
|
+
* Harry Vangberg
|
29
|
+
* Guilherme Chapiewski
|
30
|
+
* David Dollar
|
31
|
+
* Corey Donohoe
|
32
|
+
* Christopher Redinger
|
33
|
+
* Alexander Lang
|
34
|
+
|
35
|
+
NOTE: Please let us know if your name is missing
|
data/CHANGES
CHANGED
@@ -1,8 +1,26 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.10 / 2009-05-14
|
2
2
|
====================
|
3
3
|
|
4
|
-
*
|
5
|
-
|
4
|
+
* Bundle the NULL commit author/message fix as a migration
|
5
|
+
|
6
|
+
* Fix issue with stale notifier. See 693c95e for details
|
7
|
+
|
8
|
+
* Rename the "Build the last commit" button to "Fetch and build"
|
9
|
+
|
10
|
+
* Fix the rebuild button (Eric Mill)
|
11
|
+
|
12
|
+
* Various improvements to the Heroku install (Miles Z. Sterrett)
|
13
|
+
|
14
|
+
* Documentation to the default config.yml for the
|
15
|
+
:build_all_commits option. (Jeff Whitmire)
|
16
|
+
|
17
|
+
* `integrity launch` now saves the database into $HOME/.integrity.sqlite3
|
18
|
+
|
19
|
+
* Changed the Notifier::Test API. Notifiers tests are expected
|
20
|
+
to break. That API is still not defined and might change at
|
21
|
+
any time. See [#130] to discuss this.
|
22
|
+
|
23
|
+
* Send notifications to enabled notifiers only
|
6
24
|
|
7
25
|
0.1.9.3 / 2009-04-06
|
8
26
|
====================
|
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2008, 2009 Nicolás Sanguinetti <http://nicolassanguinetti.info>
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
'Software'), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
17
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
18
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
19
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
20
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -11,9 +11,9 @@ Integrity
|
|
11
11
|
Try it!
|
12
12
|
-------
|
13
13
|
|
14
|
-
$ git clone git://github.com/
|
14
|
+
$ git clone git://github.com/integrity/integrity.git
|
15
15
|
$ rake launch
|
16
|
-
|
16
|
+
$ open http://0.0.0.0:4567/
|
17
17
|
|
18
18
|
Run the test suite
|
19
19
|
------------------
|
@@ -24,59 +24,17 @@ Run the test suite
|
|
24
24
|
`gem build integrity.gemspec && gem install *.gem --development`.
|
25
25
|
3. Run the test suite: `rake test`
|
26
26
|
|
27
|
-
|
28
|
-
|
27
|
+
Why we don't `require "rubygems"`
|
28
|
+
---------------------------------
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
* [Elliott Cable][ec]
|
34
|
-
* [Corey Donohoe][atmos]
|
35
|
-
* [Kyle Hargraves][kyle]
|
36
|
-
* [Pier-Hugues Pellerin][ph]
|
37
|
-
* [Simon Rozet][sr]
|
38
|
-
* [Scott Taylor][scott]
|
39
|
-
|
40
|
-
License
|
41
|
-
-------
|
42
|
-
|
43
|
-
(The MIT License)
|
44
|
-
|
45
|
-
Copyright (c) 2008 [Nicolás Sanguinetti][foca], [entp][]
|
46
|
-
|
47
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
48
|
-
a copy of this software and associated documentation files (the
|
49
|
-
'Software'), to deal in the Software without restriction, including
|
50
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
51
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
52
|
-
permit persons to whom the Software is furnished to do so, subject to
|
53
|
-
the following conditions:
|
54
|
-
|
55
|
-
The above copyright notice and this permission notice shall be
|
56
|
-
included in all copies or substantial portions of the Software.
|
57
|
-
|
58
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
59
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
60
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
61
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
62
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
63
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
64
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
30
|
+
We decided to leave that choice up to the user. For more information, please
|
31
|
+
see [Why "require 'rubygems'" In Your Library/App/Tests Is Wrong][rubygems]
|
32
|
+
by [Ryan Tomayko][rtomayko].
|
65
33
|
|
66
34
|
[website]: http://integrityapp.com
|
67
35
|
[demo]: http://builder.integrityapp.com
|
68
|
-
[repo]: http://github.com/
|
36
|
+
[repo]: http://github.com/integrity/integrity
|
69
37
|
[lighthouse]: http://integrity.lighthouseapp.com/projects/14308-integrity
|
70
38
|
[irc-channel]: irc://irc.freenode.net/integrity
|
71
|
-
|
72
|
-
[
|
73
|
-
[entp]: http://entp.com
|
74
|
-
|
75
|
-
[james]: http://github.com/lazyatom
|
76
|
-
[ec]: http://github.com/elliotcabble
|
77
|
-
[atmos]: http://github.com/atmos
|
78
|
-
[kyle]: http://github.com/pd
|
79
|
-
[ph]: http://github.com/ph
|
80
|
-
[sr]: http://purl.org/net/sr/
|
81
|
-
[scott]: http://github.com/smtlaissezfaire
|
82
|
-
|
39
|
+
[rubygems]: http://gist.github.com/54177
|
40
|
+
[rtomayko]: http://tomayko.com/about
|
data/integrity.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "integrity"
|
3
|
-
s.version = "0.1.
|
4
|
-
s.date = "2009-
|
3
|
+
s.version = "0.1.10"
|
4
|
+
s.date = "2009-05-14"
|
5
5
|
|
6
6
|
s.description = "Your Friendly Continuous Integration server. Easy, fun and painless!"
|
7
7
|
s.summary = "The easy and fun Continuous Integration server"
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.has_rdoc = false
|
19
19
|
s.rubygems_version = "1.3.1"
|
20
20
|
|
21
|
-
s.add_dependency "sinatra", ["
|
21
|
+
s.add_dependency "sinatra", ["= 0.9.1.1"]
|
22
22
|
s.add_dependency "sinatra-authorization"
|
23
23
|
s.add_dependency "haml", [">= 2.0.0"]
|
24
24
|
s.add_dependency "data_mapper", ["= 0.9.11"]
|
@@ -42,7 +42,9 @@ Gem::Specification.new do |s|
|
|
42
42
|
|
43
43
|
s.files = %w[
|
44
44
|
.gitignore
|
45
|
+
AUTHORS
|
45
46
|
CHANGES
|
47
|
+
LICENSE
|
46
48
|
README.md
|
47
49
|
Rakefile
|
48
50
|
bin/integrity
|
@@ -95,6 +97,7 @@ test/acceptance/error_page_test.rb
|
|
95
97
|
test/acceptance/installer_test.rb
|
96
98
|
test/acceptance/manual_build_project_test.rb
|
97
99
|
test/acceptance/not_found_page_test.rb
|
100
|
+
test/acceptance/notifier_test_test.rb
|
98
101
|
test/acceptance/project_syndication_test.rb
|
99
102
|
test/acceptance/stylesheet_test.rb
|
100
103
|
test/acceptance/unauthorized_page_test.rb
|
data/lib/integrity.rb
CHANGED
@@ -17,12 +17,12 @@ module Integrity
|
|
17
17
|
project_url(project, path).path
|
18
18
|
end
|
19
19
|
|
20
|
-
def commit_url(commit)
|
21
|
-
project_url(commit.project, "commits", commit.identifier)
|
20
|
+
def commit_url(commit, *path)
|
21
|
+
project_url(commit.project, ["commits", commit.identifier, *path].flatten)
|
22
22
|
end
|
23
23
|
|
24
24
|
def commit_path(commit, *path)
|
25
|
-
commit_url(commit).path
|
25
|
+
commit_url(commit, *path).path
|
26
26
|
end
|
27
27
|
|
28
28
|
def build_path(build, *path)
|
data/lib/integrity/installer.rb
CHANGED
@@ -47,7 +47,8 @@ module Integrity
|
|
47
47
|
require "thin"
|
48
48
|
require "do_sqlite3"
|
49
49
|
|
50
|
-
options[:port]
|
50
|
+
port = options[:port] || 4567
|
51
|
+
|
51
52
|
config = { :database_uri => "sqlite3://#{ENV["HOME"]}/.integrity.db",
|
52
53
|
:base_uri => "http://0.0.0.0:#{options[:port]}",
|
53
54
|
:export_directory => "/tmp/integrity-exports" }
|
@@ -55,7 +56,7 @@ module Integrity
|
|
55
56
|
|
56
57
|
migrate_db(config)
|
57
58
|
|
58
|
-
Thin::Server.start("0.0.0.0",
|
59
|
+
Thin::Server.start("0.0.0.0", port, Integrity::App)
|
59
60
|
rescue LoadError => boom
|
60
61
|
$stderr << "Make sure thin and do_sqlite3 are insatalled\n\n"
|
61
62
|
raise
|
data/lib/integrity/migrations.rb
CHANGED
@@ -84,8 +84,8 @@ module Integrity
|
|
84
84
|
create_table :integrity_commits do
|
85
85
|
column :id, Integer, :serial => true
|
86
86
|
column :identifier, String, :nullable => false
|
87
|
-
column :message, String, :nullable =>
|
88
|
-
column :author, String, :nullable =>
|
87
|
+
column :message, String, :nullable => false, :length => 255
|
88
|
+
column :author, String, :nullable => false, :length => 255
|
89
89
|
column :committed_at, DateTime, :nullable => false
|
90
90
|
column :created_at, DateTime
|
91
91
|
column :updated_at, DateTime
|
@@ -147,5 +147,26 @@ module Integrity
|
|
147
147
|
# modify_table(:integrity_notifiers) { drop_column :enabled }
|
148
148
|
end
|
149
149
|
end
|
150
|
+
|
151
|
+
migration 4, :nil_commit_metadata do
|
152
|
+
up do
|
153
|
+
all_commits = Commit.all.collect { |c| c.dup }
|
154
|
+
drop_table :integrity_commits
|
155
|
+
|
156
|
+
create_table :integrity_commits do
|
157
|
+
column :id, Integer, :serial => true
|
158
|
+
column :identifier, String, :nullable => false
|
159
|
+
column :message, String, :nullable => true, :length => 255
|
160
|
+
column :author, String, :nullable => true, :length => 255
|
161
|
+
column :committed_at, DateTime, :nullable => false
|
162
|
+
column :created_at, DateTime
|
163
|
+
column :updated_at, DateTime
|
164
|
+
|
165
|
+
column :project_id, Integer
|
166
|
+
end
|
167
|
+
|
168
|
+
all_commits.each { |commit| Commit.create(commit.attributes) }
|
169
|
+
end
|
170
|
+
end
|
150
171
|
end
|
151
172
|
end
|
data/lib/integrity/notifier.rb
CHANGED
data/lib/integrity/project.rb
CHANGED
@@ -17,6 +17,8 @@ module Integrity
|
|
17
17
|
property :created_at, DateTime
|
18
18
|
property :updated_at, DateTime
|
19
19
|
|
20
|
+
default_scope(:default).update(:order => [:name.asc])
|
21
|
+
|
20
22
|
has n, :commits, :class_name => "Integrity::Commit"
|
21
23
|
has n, :notifiers, :class_name => "Integrity::Notifier"
|
22
24
|
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require File.dirname(__FILE__) + "/../helpers/acceptance"
|
2
2
|
require "helpers/acceptance/notifier_helper"
|
3
|
-
require "helpers/acceptance/textfile_notifier"
|
4
3
|
require "helpers/acceptance/email_notifier"
|
5
4
|
|
6
5
|
class BuildNotificationsTest < Test::Unit::AcceptanceTestCase
|
@@ -14,7 +13,11 @@ class BuildNotificationsTest < Test::Unit::AcceptanceTestCase
|
|
14
13
|
|
15
14
|
before(:each) do
|
16
15
|
# This is needed before any available notifier is unset
|
17
|
-
# in the global #before
|
16
|
+
# in the global #before.
|
17
|
+
# But, we need the reload this one because we remove_const
|
18
|
+
# it in a test case. Sigh.
|
19
|
+
load "helpers/acceptance/textfile_notifier.rb"
|
20
|
+
|
18
21
|
Notifier.register(Integrity::Notifier::Textfile)
|
19
22
|
Notifier.register(Integrity::Notifier::Email)
|
20
23
|
end
|
@@ -79,6 +82,27 @@ class BuildNotificationsTest < Test::Unit::AcceptanceTestCase
|
|
79
82
|
assert_have_email_notifier
|
80
83
|
end
|
81
84
|
|
85
|
+
scenario "an admin enables the Textfile notifier and get rid of it later" do
|
86
|
+
git_repo(:my_test_project).add_successful_commit
|
87
|
+
Project.gen(:my_test_project, :uri => git_repo(:my_test_project).path)
|
88
|
+
|
89
|
+
login_as "admin", "test"
|
90
|
+
visit "/my-test-project"
|
91
|
+
|
92
|
+
click_link "Edit Project"
|
93
|
+
check "enabled_notifiers_textfile"
|
94
|
+
fill_in "File", :with => "/tmp/textfile_notifications.txt"
|
95
|
+
click_button "Update Project"
|
96
|
+
|
97
|
+
Notifier.send(:remove_const, :Textfile)
|
98
|
+
Notifier.available.clear
|
99
|
+
rm_f "/tmp/textfile_notifications.txt"
|
100
|
+
|
101
|
+
click_button "manual build"
|
102
|
+
|
103
|
+
assert ! File.file?("/tmp/textfile_notifications.txt")
|
104
|
+
end
|
105
|
+
|
82
106
|
scenario "an admin configures various notifiers accros multiple projects" do
|
83
107
|
Project.first(:permalink => "integrity").should be_nil
|
84
108
|
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../helpers/acceptance"
|
2
|
+
require "helpers/acceptance/email_notifier"
|
3
|
+
require "helpers/acceptance/textfile_notifier"
|
4
|
+
|
5
|
+
require "integrity/notifier/test"
|
6
|
+
|
7
|
+
class NotifierTestTest < Test::Unit::TestCase
|
8
|
+
include Integrity::Notifier::Test
|
9
|
+
|
10
|
+
setup do
|
11
|
+
@notifier = Integrity::Notifier::Textfile
|
12
|
+
@config = {"file" => "/tmp/integrity.txt"}
|
13
|
+
|
14
|
+
FileUtils.rm @config["file"] if File.exists?(@config["file"])
|
15
|
+
end
|
16
|
+
|
17
|
+
def notifier
|
18
|
+
"Textfile"
|
19
|
+
end
|
20
|
+
|
21
|
+
test "it provides a formulary to configure options" do
|
22
|
+
assert provides_option?("file")
|
23
|
+
assert provides_option?("file", @config["file"])
|
24
|
+
end
|
25
|
+
|
26
|
+
test "it sends notification" do
|
27
|
+
build = build(:successful)
|
28
|
+
|
29
|
+
@notifier.notify_of_build(build, @config)
|
30
|
+
|
31
|
+
notification = File.read(@config["file"])
|
32
|
+
|
33
|
+
assert notification.start_with?("===")
|
34
|
+
assert notification.include?(build.commit.identifier)
|
35
|
+
assert notification.include?("successful")
|
36
|
+
end
|
37
|
+
end
|
data/test/unit/helpers_test.rb
CHANGED
@@ -61,6 +61,13 @@ class BrowsePublicProjectsTest < Test::Unit::TestCase
|
|
61
61
|
}
|
62
62
|
end
|
63
63
|
|
64
|
+
test "build commit" do
|
65
|
+
assert_equal "/ci/foo-bar/commits/#{@commit.identifier}/builds",
|
66
|
+
@h.commit_path(@build.commit, :builds)
|
67
|
+
assert_equal "http://example.org/ci/foo-bar/commits/#{@commit.identifier}/builds",
|
68
|
+
@h.commit_url(@build.commit, :builds).to_s
|
69
|
+
end
|
70
|
+
|
64
71
|
test "compat" do
|
65
72
|
silence_warnings {
|
66
73
|
assert_equal @h.build_path(@build), @h.commit_path(@build.commit)
|
@@ -31,18 +31,20 @@ class MigrationsTest < Test::Unit::TestCase
|
|
31
31
|
test "upgrading a pre migration database" do
|
32
32
|
capture_stdout { Integrity.migrate_db }
|
33
33
|
|
34
|
-
current_migrations.should == ["initial", "add_commits",
|
34
|
+
current_migrations.should == ["initial", "add_commits",
|
35
|
+
"add_enabled_column", "nil_commit_metadata"]
|
35
36
|
assert table_exists?("integrity_projects")
|
36
37
|
assert table_exists?("integrity_builds")
|
37
38
|
assert table_exists?("integrity_notifiers")
|
38
39
|
assert table_exists?("integrity_commits")
|
39
40
|
end
|
40
41
|
|
41
|
-
test "migrating data from initial to
|
42
|
+
test "migrating data up from initial to the last migration" do
|
42
43
|
load_initial_migration_fixture
|
43
|
-
|
44
44
|
capture_stdout { Integrity.migrate_db }
|
45
|
-
|
45
|
+
|
46
|
+
current_migrations.should == ["initial", "add_commits",
|
47
|
+
"add_enabled_column", "nil_commit_metadata"]
|
46
48
|
|
47
49
|
sinatra = Project.first(:name => "Sinatra")
|
48
50
|
sinatra.should have(1).commits
|
data/test/unit/project_test.rb
CHANGED
@@ -145,6 +145,20 @@ class ProjectTest < Test::Unit::TestCase
|
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
|
+
describe "Finding any project" do
|
149
|
+
before(:each) do
|
150
|
+
@rails = Project.gen(:name => "rails", :public => true)
|
151
|
+
@merb = Project.gen(:name => "merb", :public => true)
|
152
|
+
@sinatra = Project.gen(:name => "sinatra", :public => true)
|
153
|
+
@camping = Project.gen(:name => "camping", :public => false)
|
154
|
+
end
|
155
|
+
|
156
|
+
it "should always be ordered by name" do
|
157
|
+
Project.all.should == [@camping, @merb, @rails, @sinatra]
|
158
|
+
Project.all(:public => true).should == [@merb, @rails, @sinatra]
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
148
162
|
describe "When finding its previous builds" do
|
149
163
|
before(:each) do
|
150
164
|
@project = Project.generate(:commits => 5.of { Commit.gen })
|
@@ -212,8 +226,10 @@ class ProjectTest < Test::Unit::TestCase
|
|
212
226
|
|
213
227
|
assert_equal 2, Notifier.count
|
214
228
|
assert_equal 2, project.enabled_notifiers.count
|
215
|
-
|
216
|
-
|
229
|
+
|
230
|
+
notifier_names = project.notifiers.map { |n| n.name }
|
231
|
+
assert notifier_names.include?("IRC")
|
232
|
+
assert notifier_names.include?("Twitter")
|
217
233
|
|
218
234
|
project.update_notifiers(["Twitter"],
|
219
235
|
{"IRC" => {"uri" => "irc://irc.freenode.net/integrity"},
|
data/views/project.haml
CHANGED
@@ -14,9 +14,8 @@
|
|
14
14
|
|
15
15
|
%form{ :action => project_path(@project, :builds), :method => :post }
|
16
16
|
%p.submit.manual-build
|
17
|
-
%button{ :type => :submit, :title => "Fetch the last commit and build it" }<
|
18
|
-
|
19
|
-
in the repository (or rebuild the latest)
|
17
|
+
%button{ :type => :submit, :title => "Fetch the last commit from the remote repository and build it" }<
|
18
|
+
Fetch and build
|
20
19
|
|
21
20
|
- unless @project.previous_commits.empty?
|
22
21
|
%h2 Previous builds
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: integrity-integrity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Nicol\xC3\xA1s Sanguinetti"
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2009-
|
13
|
+
date: 2009-05-14 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version_requirement:
|
20
20
|
version_requirements: !ruby/object:Gem::Requirement
|
21
21
|
requirements:
|
22
|
-
- - "
|
22
|
+
- - "="
|
23
23
|
- !ruby/object:Gem::Version
|
24
24
|
version: 0.9.1.1
|
25
25
|
version:
|
@@ -203,7 +203,9 @@ extra_rdoc_files: []
|
|
203
203
|
|
204
204
|
files:
|
205
205
|
- .gitignore
|
206
|
+
- AUTHORS
|
206
207
|
- CHANGES
|
208
|
+
- LICENSE
|
207
209
|
- README.md
|
208
210
|
- Rakefile
|
209
211
|
- bin/integrity
|
@@ -256,6 +258,7 @@ files:
|
|
256
258
|
- test/acceptance/installer_test.rb
|
257
259
|
- test/acceptance/manual_build_project_test.rb
|
258
260
|
- test/acceptance/not_found_page_test.rb
|
261
|
+
- test/acceptance/notifier_test_test.rb
|
259
262
|
- test/acceptance/project_syndication_test.rb
|
260
263
|
- test/acceptance/stylesheet_test.rb
|
261
264
|
- test/acceptance/unauthorized_page_test.rb
|