deployments-app 0.0.1 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/.gitignore +2 -1
  2. data/Gemfile +21 -4
  3. data/Gemfile.lock +266 -0
  4. data/Guardfile +3 -0
  5. data/Rakefile +2 -0
  6. data/config.ru +5 -0
  7. data/config/deployments.yml.example +6 -0
  8. data/deployments-app.gemspec +3 -0
  9. data/features/deployments/view_deployments.feature +3 -0
  10. data/features/home/view_home.feature +22 -0
  11. data/features/pivotal_tracker/view_pivotal_tracker_story.feature +14 -0
  12. data/features/projects/new_project.feature +20 -0
  13. data/features/projects/view_deployments_by_project.feature +15 -0
  14. data/features/projects/view_projects.feature +12 -0
  15. data/features/step_definitions/common_steps.rb +4 -0
  16. data/features/step_definitions/deployments/view_deployments_by_project_steps.rb +11 -0
  17. data/features/step_definitions/deployments/view_deployments_steps.rb +17 -8
  18. data/features/step_definitions/home/view_home_steps.rb +16 -0
  19. data/features/step_definitions/pivotal_tracker/view_pivotal_tracker_steps.rb +16 -0
  20. data/features/step_definitions/projects/new_project_steps.rb +35 -0
  21. data/features/step_definitions/projects/view_projects_steps.rb +18 -0
  22. data/features/support/env.rb +8 -0
  23. data/lib/deployments-app.rb +19 -6
  24. data/lib/deployments-app/models/commit.rb +14 -16
  25. data/lib/deployments-app/models/deployment.rb +18 -21
  26. data/lib/deployments-app/models/project.rb +9 -13
  27. data/lib/deployments-app/routes/authentication.rb +1 -3
  28. data/lib/deployments-app/routes/extensions.rb +1 -3
  29. data/lib/deployments-app/routes/projects.rb +28 -0
  30. data/lib/deployments-app/routes/root.rb +7 -2
  31. data/lib/deployments-app/server.rb +13 -0
  32. data/lib/deployments-app/version.rb +1 -1
  33. data/lib/deployments-app/views/deployments/index.haml +13 -5
  34. data/lib/deployments-app/views/layouts/application.haml +39 -0
  35. data/lib/deployments-app/views/projects/index.haml +10 -0
  36. data/lib/deployments-app/views/projects/new.haml +7 -0
  37. data/public/css/bootstrap-responsive.min.css +9 -0
  38. data/public/css/bootstrap.min.css +622 -0
  39. data/public/img/glyphicons-halflings-white.png +0 -0
  40. data/public/img/glyphicons-halflings.png +0 -0
  41. data/public/js/bootstrap.min.js +6 -0
  42. data/public/js/jquery.min.js +4 -0
  43. data/spec/factories/commits.rb +1 -1
  44. data/spec/factories/deployments.rb +14 -2
  45. data/spec/factories/projects.rb +3 -2
  46. data/spec/models/commit_spec.rb +1 -3
  47. data/spec/models/deployment_spec.rb +13 -27
  48. data/spec/models/project_spec.rb +16 -7
  49. data/spec/routes/projects_spec.rb +31 -0
  50. data/spec/routes/root_spec.rb +50 -0
  51. data/spec/spec_helper.rb +15 -2
  52. data/spec/support/data_mapper.rb +1 -4
  53. data/spec/support/factory_girl.rb +18 -0
  54. metadata +91 -5
  55. data/config/database.yml.example +0 -6
  56. data/spec/routes/deployments_spec.rb +0 -20
data/.gitignore CHANGED
@@ -3,7 +3,6 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
- Gemfile.lock
7
6
  InstalledFiles
8
7
  _yardoc
9
8
  coverage
@@ -17,4 +16,6 @@ test/version_tmp
17
16
  tmp
18
17
  config/database.yml
19
18
  *.html
19
+ config/*.yml
20
+ public/version.txt
20
21
 
data/Gemfile CHANGED
@@ -3,11 +3,20 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'sinatra'
6
- gem 'heroku'
7
6
  gem 'datamapper'
8
- gem 'uniquify', :git => "git@github.com:oivoodoo/uniquify.git"
9
- gem 'data_mapper'
7
+ gem 'uniquify', :git => "https://github.com/oivoodoo/uniquify.git"
8
+ gem 'dm-core'
9
+ gem 'dm-aggregates'
10
+ gem 'dm-constraints'
11
+ gem 'dm-migrations'
12
+ gem 'dm-transactions'
13
+ gem 'dm-serializer'
14
+ gem 'dm-timestamps'
15
+ gem 'dm-validations'
16
+ gem 'dm-types'
10
17
  gem 'haml'
18
+ gem 'deployments'
19
+ gem 'rake'
11
20
 
12
21
  group :test do
13
22
  gem 'rspec'
@@ -21,10 +30,18 @@ group :test do
21
30
  gem 'guard-cucumber'
22
31
  gem 'rack-test'
23
32
  gem 'dm-rspec'
24
- gem 'dm-mysql-adapter'
33
+ gem 'dm-sqlite-adapter'
34
+ gem 'database_cleaner'
25
35
  end
26
36
 
27
37
  group :development do
28
38
  gem 'debugger'
39
+ gem 'heroku'
40
+ gem 'dm-mysql-adapter'
41
+ end
42
+
43
+ group :production do
44
+ gem 'pg'
45
+ gem 'dm-postgres-adapter'
29
46
  end
30
47
 
data/Gemfile.lock ADDED
@@ -0,0 +1,266 @@
1
+ GIT
2
+ remote: https://github.com/oivoodoo/uniquify.git
3
+ revision: 5e5a91e2137ced5d0bfbe8a3b9dcaff606e1dd39
4
+ specs:
5
+ uniquify (0.1.0)
6
+
7
+ PATH
8
+ remote: .
9
+ specs:
10
+ deployments-app (0.0.5)
11
+ datamapper
12
+ haml
13
+ rake
14
+ sinatra
15
+
16
+ GEM
17
+ remote: https://rubygems.org/
18
+ specs:
19
+ activesupport (3.2.7)
20
+ i18n (~> 0.6)
21
+ multi_json (~> 1.0)
22
+ addressable (2.2.8)
23
+ bcrypt-ruby (3.0.1)
24
+ blockenspiel (0.4.5)
25
+ builder (3.0.0)
26
+ capistrano (2.12.0)
27
+ highline
28
+ net-scp (>= 1.0.0)
29
+ net-sftp (>= 2.0.0)
30
+ net-ssh (>= 2.0.14)
31
+ net-ssh-gateway (>= 1.1.0)
32
+ capybara (1.1.2)
33
+ mime-types (>= 1.16)
34
+ nokogiri (>= 1.3.3)
35
+ rack (>= 1.0.0)
36
+ rack-test (>= 0.5.4)
37
+ selenium-webdriver (~> 2.0)
38
+ xpath (~> 0.1.4)
39
+ capybara-webkit (0.12.1)
40
+ capybara (>= 1.0.0, < 1.2)
41
+ json
42
+ childprocess (0.3.4)
43
+ ffi (~> 1.0, >= 1.0.6)
44
+ columnize (0.3.6)
45
+ cucumber (1.2.1)
46
+ builder (>= 2.1.2)
47
+ diff-lcs (>= 1.1.3)
48
+ gherkin (~> 2.11.0)
49
+ json (>= 1.4.6)
50
+ curb (0.8.1)
51
+ data_objects (0.10.8)
52
+ addressable (~> 2.1)
53
+ database_cleaner (0.8.0)
54
+ datamapper (1.2.0)
55
+ dm-aggregates (~> 1.2.0)
56
+ dm-constraints (~> 1.2.0)
57
+ dm-core (~> 1.2.0)
58
+ dm-migrations (~> 1.2.0)
59
+ dm-serializer (~> 1.2.0)
60
+ dm-timestamps (~> 1.2.0)
61
+ dm-transactions (~> 1.2.0)
62
+ dm-types (~> 1.2.0)
63
+ dm-validations (~> 1.2.0)
64
+ debugger (1.2.0)
65
+ columnize (>= 0.3.1)
66
+ debugger-linecache (~> 1.1.1)
67
+ debugger-ruby_core_source (~> 1.1.3)
68
+ debugger-linecache (1.1.2)
69
+ debugger-ruby_core_source (>= 1.1.1)
70
+ debugger-ruby_core_source (1.1.3)
71
+ deployments (0.1.11)
72
+ capistrano
73
+ curb
74
+ grit
75
+ simple-conf
76
+ versionomy
77
+ diff-lcs (1.1.3)
78
+ dm-aggregates (1.2.0)
79
+ dm-core (~> 1.2.0)
80
+ dm-constraints (1.2.0)
81
+ dm-core (~> 1.2.0)
82
+ dm-core (1.2.0)
83
+ addressable (~> 2.2.6)
84
+ dm-do-adapter (1.2.0)
85
+ data_objects (~> 0.10.6)
86
+ dm-core (~> 1.2.0)
87
+ dm-migrations (1.2.0)
88
+ dm-core (~> 1.2.0)
89
+ dm-mysql-adapter (1.2.0)
90
+ dm-do-adapter (~> 1.2.0)
91
+ do_mysql (~> 0.10.6)
92
+ dm-postgres-adapter (1.2.0)
93
+ dm-do-adapter (~> 1.2.0)
94
+ do_postgres (~> 0.10.6)
95
+ dm-rspec (0.2.3)
96
+ dm-core
97
+ dm-validations
98
+ dm-serializer (1.2.1)
99
+ dm-core (~> 1.2.0)
100
+ fastercsv (~> 1.5.4)
101
+ json (~> 1.6.1)
102
+ json_pure (~> 1.6.1)
103
+ multi_json (~> 1.0.3)
104
+ dm-sqlite-adapter (1.2.0)
105
+ dm-do-adapter (~> 1.2.0)
106
+ do_sqlite3 (~> 0.10.6)
107
+ dm-timestamps (1.2.0)
108
+ dm-core (~> 1.2.0)
109
+ dm-transactions (1.2.0)
110
+ dm-core (~> 1.2.0)
111
+ dm-types (1.2.1)
112
+ bcrypt-ruby (~> 3.0.0)
113
+ dm-core (~> 1.2.0)
114
+ fastercsv (~> 1.5.4)
115
+ json (~> 1.6.1)
116
+ multi_json (~> 1.0.3)
117
+ stringex (~> 1.3.0)
118
+ uuidtools (~> 2.1.2)
119
+ dm-validations (1.2.0)
120
+ dm-core (~> 1.2.0)
121
+ do_mysql (0.10.8)
122
+ data_objects (= 0.10.8)
123
+ do_postgres (0.10.8)
124
+ data_objects (= 0.10.8)
125
+ do_sqlite3 (0.10.8)
126
+ data_objects (= 0.10.8)
127
+ excon (0.15.4)
128
+ factory_girl (3.5.0)
129
+ activesupport (>= 3.0.0)
130
+ fastercsv (1.5.5)
131
+ ffi (1.1.0)
132
+ gherkin (2.11.1)
133
+ json (>= 1.4.6)
134
+ grit (2.5.0)
135
+ diff-lcs (~> 1.1)
136
+ mime-types (~> 1.15)
137
+ posix-spawn (~> 0.3.6)
138
+ guard (1.2.3)
139
+ listen (>= 0.4.2)
140
+ thor (>= 0.14.6)
141
+ guard-cucumber (1.2.0)
142
+ cucumber (>= 1.2.0)
143
+ guard (>= 1.1.0)
144
+ guard-rspec (1.2.0)
145
+ guard (>= 1.1)
146
+ haml (3.1.6)
147
+ heroku (2.30.1)
148
+ heroku-api (~> 0.3.1)
149
+ launchy (>= 0.3.2)
150
+ netrc (~> 0.7.5)
151
+ rest-client (~> 1.6.1)
152
+ rubyzip
153
+ heroku-api (0.3.1)
154
+ excon (~> 0.15.4)
155
+ highline (1.6.13)
156
+ i18n (0.6.0)
157
+ json (1.6.7)
158
+ json_pure (1.6.7)
159
+ launchy (2.1.0)
160
+ addressable (~> 2.2.6)
161
+ libwebsocket (0.1.5)
162
+ addressable
163
+ listen (0.4.7)
164
+ rb-fchange (~> 0.0.5)
165
+ rb-fsevent (~> 0.9.1)
166
+ rb-inotify (~> 0.8.8)
167
+ mime-types (1.19)
168
+ multi_json (1.0.4)
169
+ net-scp (1.0.4)
170
+ net-ssh (>= 1.99.1)
171
+ net-sftp (2.0.5)
172
+ net-ssh (>= 2.0.9)
173
+ net-ssh (2.5.2)
174
+ net-ssh-gateway (1.1.0)
175
+ net-ssh (>= 1.99.1)
176
+ netrc (0.7.5)
177
+ nokogiri (1.5.5)
178
+ pg (0.14.0)
179
+ posix-spawn (0.3.6)
180
+ rack (1.4.1)
181
+ rack-protection (1.2.0)
182
+ rack
183
+ rack-test (0.6.1)
184
+ rack (>= 1.0)
185
+ rake (0.9.2.2)
186
+ rb-fchange (0.0.5)
187
+ ffi
188
+ rb-fsevent (0.9.1)
189
+ rb-inotify (0.8.8)
190
+ ffi (>= 0.5.0)
191
+ rest-client (1.6.7)
192
+ mime-types (>= 1.16)
193
+ rspec (2.11.0)
194
+ rspec-core (~> 2.11.0)
195
+ rspec-expectations (~> 2.11.0)
196
+ rspec-mocks (~> 2.11.0)
197
+ rspec-core (2.11.1)
198
+ rspec-expectations (2.11.2)
199
+ diff-lcs (~> 1.1.3)
200
+ rspec-mocks (2.11.1)
201
+ ruby_gntp (0.3.4)
202
+ rubyzip (0.9.9)
203
+ selenium-webdriver (2.25.0)
204
+ childprocess (>= 0.2.5)
205
+ libwebsocket (~> 0.1.3)
206
+ multi_json (~> 1.0)
207
+ rubyzip
208
+ shoulda (3.1.1)
209
+ shoulda-context (~> 1.0)
210
+ shoulda-matchers (~> 1.2)
211
+ shoulda-context (1.0.0)
212
+ shoulda-matchers (1.2.0)
213
+ activesupport (>= 3.0.0)
214
+ simple-conf (0.0.5)
215
+ rake
216
+ sinatra (1.3.2)
217
+ rack (~> 1.3, >= 1.3.6)
218
+ rack-protection (~> 1.2)
219
+ tilt (~> 1.3, >= 1.3.3)
220
+ stringex (1.3.3)
221
+ thor (0.15.4)
222
+ tilt (1.3.3)
223
+ uuidtools (2.1.3)
224
+ versionomy (0.4.4)
225
+ blockenspiel (>= 0.4.5)
226
+ xpath (0.1.4)
227
+ nokogiri (~> 1.3)
228
+
229
+ PLATFORMS
230
+ ruby
231
+
232
+ DEPENDENCIES
233
+ capybara
234
+ capybara-webkit
235
+ cucumber
236
+ database_cleaner
237
+ datamapper
238
+ debugger
239
+ deployments
240
+ deployments-app!
241
+ dm-aggregates
242
+ dm-constraints
243
+ dm-core
244
+ dm-migrations
245
+ dm-mysql-adapter
246
+ dm-postgres-adapter
247
+ dm-rspec
248
+ dm-serializer
249
+ dm-sqlite-adapter
250
+ dm-timestamps
251
+ dm-transactions
252
+ dm-types
253
+ dm-validations
254
+ factory_girl
255
+ guard-cucumber
256
+ guard-rspec
257
+ haml
258
+ heroku
259
+ pg
260
+ rack-test
261
+ rake
262
+ rspec
263
+ ruby_gntp
264
+ shoulda
265
+ sinatra
266
+ uniquify!
data/Guardfile CHANGED
@@ -1,7 +1,9 @@
1
1
  guard 'rspec', :cli => '--format documentation', :version => 2, :all_after_pass => false, :keep_failed => false do
2
2
  watch(%r{^spec/.+_spec\.rb$})
3
3
  watch(%r{^spec/.+\.rb$})
4
+ watch(%r{^spec/factories/.+\.rb$})
4
5
  watch(%r{^lib/(.+)\.rb$}) { "spec" }
6
+ watch(%r{^lib/deployments-app/routes/(.+)\.rb$}) { |m| Dir[File.join("spec/routes/#{m[1]}_spec.rb")][0] || 'spec' }
5
7
  watch(%r{^lib/deployments-app/models/(.+)\.rb$}) { "spec/models/" }
6
8
  watch(%r{^lib/deployments-app/(.+)\.rb$}) { "spec" }
7
9
  watch('spec/spec_helper.rb') { "spec" }
@@ -10,6 +12,7 @@ end
10
12
  guard 'cucumber',:all_after_pass => false do
11
13
  watch(%r{^views/.+\.haml$}) { 'features' }
12
14
  watch(%r{^lib/deployments-app/views/.+\.haml$}) { 'features' }
15
+ watch(%r{^lib/deployments-app/routes/(.+)\.rb$}) { |m| Dir[File.join("features/#{m[1]}/")][0] || 'features' }
13
16
  watch(%r{^features/.+\.feature$})
14
17
  watch(%r{^features/support/.+$}) { 'features' }
15
18
  watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
data/Rakefile CHANGED
@@ -1,2 +1,4 @@
1
1
  #!/usr/bin/env rake
2
2
  require "bundler/gem_tasks"
3
+ require 'deployments/gem_tasks'
4
+
data/config.ru ADDED
@@ -0,0 +1,5 @@
1
+ require 'deployments-app'
2
+ require 'sinatra'
3
+
4
+ run Deployments::App::Server
5
+
@@ -0,0 +1,6 @@
1
+ options:
2
+ server: "http://deployments-app.herokuapp.com/deployments"
3
+ production:
4
+ domain: "deployments-app.herokuapp.com"
5
+ api_key: ""
6
+
@@ -16,5 +16,8 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Deployments::App::VERSION
17
17
 
18
18
  gem.add_dependency('sinatra')
19
+ gem.add_dependency('datamapper')
20
+ gem.add_dependency('haml')
21
+ gem.add_dependency('rake')
19
22
  end
20
23
 
@@ -11,6 +11,7 @@ Feature: View deployments
11
11
 
12
12
  When I am on the deployments page
13
13
  Then I should see deployments of staging
14
+ And I should see commits that was deployed to the staging
14
15
 
15
16
  Scenario: View deployments information of production env
16
17
  Given I have already deployed project to the staging
@@ -18,5 +19,7 @@ Feature: View deployments
18
19
 
19
20
  When I am on the deployments page
20
21
  Then I should see deployments of production
22
+ And I should see commits that was deployed to the production
21
23
  And I should see deployments of staging
24
+ And I should see commits that was deployed to the staging
22
25
 
@@ -0,0 +1,22 @@
1
+ Feature: View home page
2
+ In order to view home page
3
+ As an user
4
+ I want to open home page and use navigation
5
+
6
+ Background:
7
+ Given I have project with deployments
8
+
9
+ When I am on the home page
10
+
11
+ Scenario: View home page clicking by logo
12
+ Given I follow by name of the project
13
+
14
+ When I click on the logo of the website
15
+ Then I should be on the home page
16
+
17
+ Scenario: View home page clicking by home tab
18
+ Given I follow by name of the project
19
+
20
+ When I click on the home tab
21
+ Then I should be on the home page
22
+
@@ -0,0 +1,14 @@
1
+ Feature: View pivotal tracker story using on an id in commit
2
+ In order to get details of pushed story
3
+ As an user
4
+ I want to be able to read pivotal tracker story using an id in commit message
5
+
6
+ Background:
7
+ Given I have a project
8
+ And I have a deployments with pivotal tracker stories
9
+
10
+ Scenario: View pivotal tracker story
11
+ When I am on the project page
12
+ Then I should see ids of pivotal tracker stories
13
+ And I should be abe to navigate following id
14
+
@@ -0,0 +1,20 @@
1
+ Feature: New project
2
+ In order to create new project in the app for registering deployments
3
+ As an user
4
+ I want to be able to create new project
5
+
6
+ Background:
7
+ Given I am on the projects page
8
+
9
+ When I click on the new project button
10
+
11
+ Scenario: New project
12
+ When I fill all required fields
13
+ And I save changes
14
+ Then I should see new project in the list
15
+
16
+ Scenario: Don't create with invalid fields
17
+ When I don't fill one required field
18
+ And I save changes
19
+ Then I should see error notification
20
+