deployments-app 0.0.1 → 0.0.9

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.
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
+