shipit-engine 0.5.2 → 0.6.0

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 (274) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/shipit/api/cacheable.rb +13 -0
  3. data/app/controllers/concerns/shipit/api/paginable.rb +37 -0
  4. data/app/controllers/concerns/shipit/api/rendering.rb +25 -0
  5. data/app/controllers/concerns/{api/paginable.rb → shipit/pagination.rb} +5 -13
  6. data/app/controllers/shipit/api/base_controller.rb +68 -0
  7. data/app/controllers/shipit/api/deploys_controller.rb +17 -0
  8. data/app/controllers/shipit/api/hooks_controller.rb +53 -0
  9. data/app/controllers/shipit/api/locks_controller.rb +32 -0
  10. data/app/controllers/shipit/api/outputs_controller.rb +17 -0
  11. data/app/controllers/shipit/api/stacks_controller.rb +21 -0
  12. data/app/controllers/shipit/api/tasks_controller.rb +20 -0
  13. data/app/controllers/shipit/commit_checks_controller.rb +26 -0
  14. data/app/controllers/shipit/deploys_controller.rb +47 -0
  15. data/app/controllers/shipit/github_authentication_controller.rb +27 -0
  16. data/app/controllers/shipit/rollbacks_controller.rb +26 -0
  17. data/app/controllers/shipit/shipit_controller.rb +62 -0
  18. data/app/controllers/shipit/stacks_controller.rb +81 -0
  19. data/app/controllers/shipit/status_controller.rb +7 -0
  20. data/app/controllers/shipit/tasks_controller.rb +48 -0
  21. data/app/controllers/shipit/webhooks_controller.rb +101 -0
  22. data/app/helpers/shipit/chunks_helper.rb +8 -0
  23. data/app/helpers/shipit/deploys_helper.rb +28 -0
  24. data/app/helpers/shipit/github_url_helper.rb +48 -0
  25. data/app/helpers/shipit/shipit_helper.rb +64 -0
  26. data/app/helpers/shipit/stacks_helper.rb +78 -0
  27. data/app/helpers/shipit/tasks_helper.rb +11 -0
  28. data/app/jobs/shipit/background_job.rb +24 -0
  29. data/app/jobs/shipit/background_job/unique.rb +28 -0
  30. data/app/jobs/shipit/cache_deploy_spec_job.rb +12 -0
  31. data/app/jobs/shipit/chunk_rollup_job.rb +21 -0
  32. data/app/jobs/shipit/clear_git_cache_job.rb +9 -0
  33. data/app/jobs/shipit/deliver_hook_job.rb +9 -0
  34. data/app/jobs/shipit/destroy_stack_job.rb +9 -0
  35. data/app/jobs/shipit/emit_event_job.rb +10 -0
  36. data/app/jobs/shipit/fetch_commit_stats_job.rb +9 -0
  37. data/app/jobs/shipit/fetch_deployed_revision_job.rb +23 -0
  38. data/app/jobs/shipit/git_mirror_update_job.rb +12 -0
  39. data/app/jobs/shipit/github_sync_job.rb +55 -0
  40. data/app/jobs/shipit/perform_commit_checks_job.rb +7 -0
  41. data/app/jobs/shipit/perform_task_job.rb +57 -0
  42. data/app/jobs/shipit/refresh_github_user_job.rb +9 -0
  43. data/app/jobs/shipit/refresh_statuses_job.rb +14 -0
  44. data/app/jobs/shipit/setup_github_hook_job.rb +11 -0
  45. data/app/models/shipit/anonymous_user.rb +43 -0
  46. data/app/models/shipit/api_client.rb +44 -0
  47. data/app/models/shipit/commit.rb +209 -0
  48. data/app/models/shipit/commit_checks.rb +90 -0
  49. data/app/models/shipit/delivery.rb +47 -0
  50. data/app/models/shipit/deploy.rb +153 -0
  51. data/app/models/shipit/deploy_spec.rb +150 -0
  52. data/app/models/shipit/deploy_spec/bundler_discovery.rb +61 -0
  53. data/app/models/shipit/deploy_spec/capistrano_discovery.rb +29 -0
  54. data/app/models/shipit/deploy_spec/file_system.rb +64 -0
  55. data/app/models/shipit/deploy_spec/pypi_discovery.rb +34 -0
  56. data/app/models/shipit/deploy_spec/rubygems_discovery.rb +34 -0
  57. data/app/models/shipit/github_hook.rb +148 -0
  58. data/app/models/shipit/hook.rb +86 -0
  59. data/app/models/shipit/membership.rb +8 -0
  60. data/app/models/shipit/missing_status.rb +21 -0
  61. data/app/models/shipit/output_chunk.rb +11 -0
  62. data/app/models/shipit/rollback.rb +31 -0
  63. data/app/models/shipit/stack.rb +308 -0
  64. data/app/models/shipit/status.rb +44 -0
  65. data/app/models/shipit/status_group.rb +35 -0
  66. data/app/models/shipit/task.rb +201 -0
  67. data/app/models/shipit/task_definition.rb +38 -0
  68. data/app/models/shipit/team.rb +69 -0
  69. data/app/models/shipit/unknown_status.rb +43 -0
  70. data/app/models/shipit/user.rb +83 -0
  71. data/app/models/shipit/variable_definition.rb +21 -0
  72. data/app/serializers/concerns/shipit/conditional_attributes.rb +22 -0
  73. data/app/serializers/shipit/anonymous_user_serializer.rb +4 -0
  74. data/app/serializers/shipit/commit_serializer.rb +8 -0
  75. data/app/serializers/shipit/deploy_serializer.rb +15 -0
  76. data/app/serializers/shipit/hook_serializer.rb +12 -0
  77. data/app/serializers/shipit/rollback_serializer.rb +7 -0
  78. data/app/serializers/shipit/short_commit_serializer.rb +9 -0
  79. data/app/serializers/shipit/stack_serializer.rb +33 -0
  80. data/app/serializers/shipit/tail_task_serializer.rb +39 -0
  81. data/app/serializers/shipit/task_serializer.rb +30 -0
  82. data/app/serializers/shipit/user_serializer.rb +5 -0
  83. data/app/views/{commits → shipit/commits}/_commit.html.erb +1 -1
  84. data/app/views/{commits → shipit/commits}/_commit_author.html.erb +0 -0
  85. data/app/views/{deploys → shipit/deploys}/_checklist.html.erb +0 -0
  86. data/app/views/{deploys → shipit/deploys}/_checks.html.erb +0 -0
  87. data/app/views/{deploys → shipit/deploys}/_concurrent_deploy_warning.html.erb +0 -0
  88. data/app/views/{deploys → shipit/deploys}/_deploy.html.erb +1 -1
  89. data/app/views/{deploys → shipit/deploys}/_monitoring.html.erb +0 -0
  90. data/app/views/{deploys → shipit/deploys}/_summary.html.erb +0 -0
  91. data/app/views/{deploys → shipit/deploys}/new.html.erb +3 -3
  92. data/app/views/{deploys → shipit/deploys}/rollback.html.erb +2 -2
  93. data/app/views/{deploys → shipit/deploys}/show.html.erb +1 -1
  94. data/app/views/{github_authentication → shipit/github_authentication}/failed.html.erb +0 -0
  95. data/app/views/{stacks → shipit/stacks}/_header.html.erb +0 -0
  96. data/app/views/{stacks → shipit/stacks}/index.html.erb +0 -0
  97. data/app/views/{stacks → shipit/stacks}/new.html.erb +0 -0
  98. data/app/views/{stacks → shipit/stacks}/settings.html.erb +1 -1
  99. data/app/views/{stacks → shipit/stacks}/show.html.erb +2 -2
  100. data/app/views/{statuses → shipit/statuses}/_group.html.erb +1 -1
  101. data/app/views/{statuses → shipit/statuses}/_status.html.erb +0 -0
  102. data/app/views/{tasks → shipit/tasks}/_task.html.erb +1 -1
  103. data/app/views/{tasks → shipit/tasks}/_task_output.html.erb +1 -1
  104. data/app/views/{tasks → shipit/tasks}/index.html.erb +1 -1
  105. data/app/views/{tasks → shipit/tasks}/new.html.erb +1 -1
  106. data/app/views/{tasks → shipit/tasks}/show.html.erb +1 -1
  107. data/db/migrate/20160104151742_increase_tasks_type_size_back.rb +5 -0
  108. data/db/migrate/20160104151833_convert_sti_columns.rb +10 -0
  109. data/lib/shipit.rb +11 -10
  110. data/lib/shipit/command.rb +171 -0
  111. data/lib/shipit/commands.rb +25 -0
  112. data/lib/shipit/deploy_commands.rb +21 -0
  113. data/lib/shipit/engine.rb +3 -0
  114. data/lib/shipit/rollback_commands.rb +7 -0
  115. data/lib/shipit/stack_commands.rb +60 -0
  116. data/lib/shipit/task_commands.rb +68 -0
  117. data/lib/shipit/version.rb +1 -1
  118. data/lib/tasks/cron.rake +3 -3
  119. data/test/controllers/api/base_controller_test.rb +18 -14
  120. data/test/controllers/api/deploys_controller_test.rb +56 -52
  121. data/test/controllers/api/hooks_controller_test.rb +62 -58
  122. data/test/controllers/api/locks_controller_test.rb +38 -34
  123. data/test/controllers/api/outputs_controller_test.rb +15 -11
  124. data/test/controllers/api/stacks_controller_test.rb +56 -52
  125. data/test/controllers/api/tasks_controller_test.rb +30 -26
  126. data/test/controllers/commit_checks_controller_test.rb +29 -27
  127. data/test/controllers/deploys_controller_test.rb +68 -66
  128. data/test/controllers/github_authentication_controller_test.rb +9 -7
  129. data/test/controllers/rollbacks_controller_test.rb +43 -41
  130. data/test/controllers/stacks_controller_test.rb +131 -128
  131. data/test/controllers/status_controller_test.rb +8 -6
  132. data/test/controllers/tasks_controller_test.rb +70 -68
  133. data/test/controllers/webhooks_controller_test.rb +127 -125
  134. data/test/dummy/db/development.sqlite3 +0 -0
  135. data/test/dummy/db/schema.rb +2 -2
  136. data/test/dummy/db/seeds.rb +133 -131
  137. data/test/dummy/db/test.sqlite3 +0 -0
  138. data/test/fixtures/{api_clients.yml → shipit/api_clients.yml} +0 -0
  139. data/test/fixtures/{commits.yml → shipit/commits.yml} +0 -0
  140. data/test/fixtures/{deliveries.yml → shipit/deliveries.yml} +0 -0
  141. data/test/fixtures/{github_hooks.yml → shipit/github_hooks.yml} +4 -4
  142. data/test/fixtures/{hooks.yml → shipit/hooks.yml} +0 -0
  143. data/test/fixtures/{memberships.yml → shipit/memberships.yml} +0 -0
  144. data/test/fixtures/{output_chunks.yml → shipit/output_chunks.yml} +0 -0
  145. data/test/fixtures/{stacks.yml → shipit/stacks.yml} +0 -0
  146. data/test/fixtures/{statuses.yml → shipit/statuses.yml} +0 -0
  147. data/test/fixtures/{tasks.yml → shipit/tasks.yml} +8 -8
  148. data/test/fixtures/{teams.yml → shipit/teams.yml} +0 -0
  149. data/test/fixtures/{users.yml → shipit/users.yml} +0 -0
  150. data/test/helpers/api_helper.rb +1 -1
  151. data/test/helpers/fixture_aliases_helper.rb +4 -4
  152. data/test/jobs/cache_deploy_spec_job_test.rb +15 -13
  153. data/test/jobs/chunk_rollup_job_test.rb +30 -28
  154. data/test/jobs/deliver_hook_job_test.rb +11 -9
  155. data/test/jobs/destroy_stack_job_test.rb +11 -9
  156. data/test/jobs/emit_event_job_test.rb +10 -8
  157. data/test/jobs/fetch_commit_stats_job_test.rb +10 -8
  158. data/test/jobs/fetch_deployed_revision_job_test.rb +24 -22
  159. data/test/jobs/github_sync_job_test.rb +51 -49
  160. data/test/jobs/perform_task_job_test.rb +78 -76
  161. data/test/jobs/refresh_github_user_job_test.rb +10 -8
  162. data/test/jobs/refresh_status_job_test.rb +14 -12
  163. data/test/jobs/unique_job_test.rb +18 -15
  164. data/test/models/api_client_test.rb +20 -18
  165. data/test/models/commit_checks_test.rb +63 -61
  166. data/test/models/commits_test.rb +317 -314
  167. data/test/models/delivery_test.rb +29 -27
  168. data/test/models/deploys_test.rb +289 -287
  169. data/test/models/github_hook_test.rb +45 -43
  170. data/test/models/hook_test.rb +44 -42
  171. data/test/models/membership_test.rb +9 -7
  172. data/test/models/missing_status_test.rb +16 -14
  173. data/test/models/output_chunk_test.rb +14 -12
  174. data/test/models/rollbacks_test.rb +14 -12
  175. data/test/models/stacks_test.rb +272 -270
  176. data/test/models/status_group_test.rb +18 -16
  177. data/test/models/status_test.rb +42 -40
  178. data/test/models/task_definitions_test.rb +27 -25
  179. data/test/models/team_test.rb +39 -37
  180. data/test/models/users_test.rb +61 -59
  181. data/test/unit/command_test.rb +43 -41
  182. data/test/unit/commands_test.rb +8 -6
  183. data/test/unit/csv_serializer_test.rb +28 -26
  184. data/test/unit/deploy_commands_test.rb +179 -176
  185. data/test/unit/deploy_spec_test.rb +237 -235
  186. data/test/unit/github_url_helper_test.rb +19 -17
  187. data/test/unit/shipit_test.rb +44 -42
  188. metadata +139 -137
  189. data/app/controllers/api/base_controller.rb +0 -66
  190. data/app/controllers/api/deploys_controller.rb +0 -15
  191. data/app/controllers/api/hooks_controller.rb +0 -51
  192. data/app/controllers/api/locks_controller.rb +0 -30
  193. data/app/controllers/api/outputs_controller.rb +0 -15
  194. data/app/controllers/api/stacks_controller.rb +0 -19
  195. data/app/controllers/api/tasks_controller.rb +0 -18
  196. data/app/controllers/commit_checks_controller.rb +0 -24
  197. data/app/controllers/concerns/api/cacheable.rb +0 -11
  198. data/app/controllers/concerns/api/rendering.rb +0 -23
  199. data/app/controllers/concerns/pagination.rb +0 -25
  200. data/app/controllers/deploys_controller.rb +0 -45
  201. data/app/controllers/github_authentication_controller.rb +0 -25
  202. data/app/controllers/rollbacks_controller.rb +0 -24
  203. data/app/controllers/shipit_controller.rb +0 -54
  204. data/app/controllers/stacks_controller.rb +0 -79
  205. data/app/controllers/status_controller.rb +0 -5
  206. data/app/controllers/tasks_controller.rb +0 -46
  207. data/app/controllers/webhooks_controller.rb +0 -99
  208. data/app/helpers/chunks_helper.rb +0 -6
  209. data/app/helpers/deploys_helper.rb +0 -26
  210. data/app/helpers/github_url_helper.rb +0 -46
  211. data/app/helpers/shipit_helper.rb +0 -62
  212. data/app/helpers/stacks_helper.rb +0 -76
  213. data/app/helpers/tasks_helper.rb +0 -9
  214. data/app/jobs/background_job.rb +0 -22
  215. data/app/jobs/background_job/unique.rb +0 -26
  216. data/app/jobs/cache_deploy_spec_job.rb +0 -10
  217. data/app/jobs/chunk_rollup_job.rb +0 -19
  218. data/app/jobs/clear_git_cache_job.rb +0 -7
  219. data/app/jobs/deliver_hook_job.rb +0 -7
  220. data/app/jobs/destroy_stack_job.rb +0 -7
  221. data/app/jobs/emit_event_job.rb +0 -8
  222. data/app/jobs/fetch_commit_stats_job.rb +0 -7
  223. data/app/jobs/fetch_deployed_revision_job.rb +0 -21
  224. data/app/jobs/git_mirror_update_job.rb +0 -10
  225. data/app/jobs/github_sync_job.rb +0 -53
  226. data/app/jobs/perform_commit_checks_job.rb +0 -5
  227. data/app/jobs/perform_task_job.rb +0 -55
  228. data/app/jobs/refresh_github_user_job.rb +0 -7
  229. data/app/jobs/refresh_statuses_job.rb +0 -12
  230. data/app/jobs/setup_github_hook_job.rb +0 -9
  231. data/app/models/anonymous_user.rb +0 -41
  232. data/app/models/api_client.rb +0 -42
  233. data/app/models/commit.rb +0 -207
  234. data/app/models/commit_checks.rb +0 -88
  235. data/app/models/delivery.rb +0 -45
  236. data/app/models/deploy.rb +0 -151
  237. data/app/models/deploy_spec.rb +0 -148
  238. data/app/models/deploy_spec/bundler_discovery.rb +0 -59
  239. data/app/models/deploy_spec/capistrano_discovery.rb +0 -27
  240. data/app/models/deploy_spec/file_system.rb +0 -62
  241. data/app/models/deploy_spec/pypi_discovery.rb +0 -32
  242. data/app/models/deploy_spec/rubygems_discovery.rb +0 -32
  243. data/app/models/github_hook.rb +0 -144
  244. data/app/models/hook.rb +0 -84
  245. data/app/models/membership.rb +0 -6
  246. data/app/models/missing_status.rb +0 -18
  247. data/app/models/output_chunk.rb +0 -9
  248. data/app/models/rollback.rb +0 -29
  249. data/app/models/stack.rb +0 -306
  250. data/app/models/status.rb +0 -42
  251. data/app/models/status_group.rb +0 -33
  252. data/app/models/task.rb +0 -197
  253. data/app/models/task_definition.rb +0 -36
  254. data/app/models/team.rb +0 -67
  255. data/app/models/unknown_status.rb +0 -41
  256. data/app/models/user.rb +0 -81
  257. data/app/models/variable_definition.rb +0 -19
  258. data/app/serializers/anonymous_user_serializer.rb +0 -2
  259. data/app/serializers/commit_serializer.rb +0 -6
  260. data/app/serializers/concerns/conditional_attributes.rb +0 -20
  261. data/app/serializers/deploy_serializer.rb +0 -13
  262. data/app/serializers/hook_serializer.rb +0 -10
  263. data/app/serializers/rollback_serializer.rb +0 -5
  264. data/app/serializers/short_commit_serializer.rb +0 -7
  265. data/app/serializers/stack_serializer.rb +0 -31
  266. data/app/serializers/tail_task_serializer.rb +0 -37
  267. data/app/serializers/task_serializer.rb +0 -28
  268. data/app/serializers/user_serializer.rb +0 -3
  269. data/lib/command.rb +0 -169
  270. data/lib/commands.rb +0 -23
  271. data/lib/deploy_commands.rb +0 -19
  272. data/lib/rollback_commands.rb +0 -5
  273. data/lib/stack_commands.rb +0 -58
  274. data/lib/task_commands.rb +0 -66
@@ -0,0 +1,21 @@
1
+ module Shipit
2
+ class VariableDefinition
3
+ attr_reader :name, :title, :value, :default
4
+
5
+ def initialize(attributes)
6
+ @name = attributes.fetch('name')
7
+ @title = attributes['title']
8
+ @value = attributes['value']
9
+ @default = attributes['default']
10
+ end
11
+
12
+ def to_h
13
+ {
14
+ 'name' => @name,
15
+ 'title' => @title,
16
+ 'value' => @value,
17
+ 'default' => @default,
18
+ }
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,22 @@
1
+ module Shipit
2
+ module ConditionalAttributes
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def inclusion_method_for(attribute)
7
+ @inclusion_cache ||= {}
8
+ @inclusion_cache.fetch(attribute) do
9
+ method = "include_#{attribute}?"
10
+ method_defined?(method) && method
11
+ end
12
+ end
13
+ end
14
+
15
+ def filter(*)
16
+ super.reject do |attribute|
17
+ method = self.class.inclusion_method_for(attribute)
18
+ method && !send(method)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,4 @@
1
+ module Shipit
2
+ class AnonymousUserSerializer < UserSerializer
3
+ end
4
+ end
@@ -0,0 +1,8 @@
1
+ module Shipit
2
+ class CommitSerializer < ShortCommitSerializer
3
+ has_one :author
4
+ has_one :committer
5
+
6
+ attributes :additions, :deletions, :authored_at, :committed_at
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ module Shipit
2
+ class DeploySerializer < TaskSerializer
3
+ has_many :commits
4
+
5
+ attributes :additions, :deletions
6
+
7
+ def html_url
8
+ stack_deploy_url(object.stack, object)
9
+ end
10
+
11
+ def type
12
+ :deploy
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module Shipit
2
+ class HookSerializer < ActiveModel::Serializer
3
+ include ConditionalAttributes
4
+
5
+ has_one :stack
6
+ attributes :id, :url, :content_type, :events, :insecure_ssl, :created_at, :updated_at
7
+
8
+ def include_stack?
9
+ object.scoped?
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ module Shipit
2
+ class RollbackSerializer < DeploySerializer
3
+ def type
4
+ :rollback
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ module Shipit
2
+ class ShortCommitSerializer < ActiveModel::Serializer
3
+ attributes :sha, :message
4
+
5
+ def message
6
+ object.pull_request? ? "#{object.pull_request_title} (##{object.pull_request_id})" : object.message
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,33 @@
1
+ module Shipit
2
+ class StackSerializer < ActiveModel::Serializer
3
+ include ConditionalAttributes
4
+
5
+ has_one :lock_author
6
+ attributes :id, :repo_owner, :repo_name, :environment, :html_url, :url, :tasks_url,
7
+ :undeployed_commits_count, :is_locked, :lock_reason, :continuous_deployment, :created_at, :updated_at
8
+
9
+ def url
10
+ api_stack_url(object)
11
+ end
12
+
13
+ def html_url
14
+ stack_url(object)
15
+ end
16
+
17
+ def tasks_url
18
+ api_stack_tasks_url(object)
19
+ end
20
+
21
+ def is_locked
22
+ object.locked?
23
+ end
24
+
25
+ def include_lock_reason?
26
+ object.locked?
27
+ end
28
+
29
+ def include_lock_author?
30
+ object.locked?
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,39 @@
1
+ module Shipit
2
+ class TailTaskSerializer < ActiveModel::Serializer
3
+ include ChunksHelper
4
+ include ConditionalAttributes
5
+
6
+ attributes :url, :status, :output, :rollback_url
7
+
8
+ def url
9
+ return @url if defined? @url
10
+ @url = next_chunks_url(task)
11
+ end
12
+
13
+ def include_url?
14
+ !url.blank?
15
+ end
16
+
17
+ def output
18
+ task.chunks.tail(context[:last_id]).pluck(:text).join
19
+ end
20
+
21
+ def rollback_url
22
+ stack_deploy_path(stack, rollback)
23
+ end
24
+
25
+ def include_rollback_url?
26
+ !rollback.nil?
27
+ end
28
+
29
+ private
30
+
31
+ alias_method :task, :object
32
+ delegate :stack, to: :object
33
+
34
+ def rollback
35
+ return @rollback if defined? @rollback
36
+ @rollback = stack.rollbacks.where(parent_id: task.id).last
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,30 @@
1
+ module Shipit
2
+ class TaskSerializer < ActiveModel::Serializer
3
+ include ConditionalAttributes
4
+
5
+ has_one :author
6
+ has_one :revision, serializer: ShortCommitSerializer
7
+
8
+ attributes :id, :url, :html_url, :output_url, :type, :status, :updated_at, :created_at
9
+
10
+ def revision
11
+ object.until_commit
12
+ end
13
+
14
+ def url
15
+ api_stack_task_url(object.stack, object)
16
+ end
17
+
18
+ def html_url
19
+ stack_task_url(object.stack, object)
20
+ end
21
+
22
+ def output_url
23
+ api_stack_task_output_url(object.stack, object)
24
+ end
25
+
26
+ def type
27
+ :task
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,5 @@
1
+ module Shipit
2
+ class UserSerializer < ActiveModel::Serializer
3
+ attributes :id, :name, :email, :login, :avatar_url, :created_at, :updated_at
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  <li class="commit" id="commit-<%= commit.id %>">
2
- <%= render 'commits/commit_author', commit: commit %>
2
+ <%= render 'shipit/commits/commit_author', commit: commit %>
3
3
  <%= render commit.status %>
4
4
  <div class="commit-details">
5
5
  <span class="commit-title"><%= render_commit_message_with_link commit %></span>
@@ -1,7 +1,7 @@
1
1
  <%- read_only ||= false -%>
2
2
 
3
3
  <li class="task deploy" id="task-<%= deploy.id %>" data-status="<%= deploy.status %>">
4
- <%= render 'commits/commit_author', commit: deploy %>
4
+ <%= render 'shipit/commits/commit_author', commit: deploy %>
5
5
  <a href="<%= stack_deploy_path(@stack, deploy) %>" class="status status--<%= deploy.status %>" data-tooltip="<%= deploy.status.capitalize %>">
6
6
  <i class="status__icon"></i>
7
7
  <span class="visually-hidden"><%= deploy.status %></span>
@@ -1,4 +1,4 @@
1
- <%= render partial: "stacks/header", locals: { stack: @stack } %>
1
+ <%= render partial: 'shipit/stacks/header', locals: { stack: @stack } %>
2
2
 
3
3
  <div class="wrapper">
4
4
  <%= render 'concurrent_deploy_warning' if @stack.deploying? %>
@@ -8,7 +8,7 @@
8
8
  <h2>Commits included in this deploy (<%= link_to_github_deploy(@deploy) %>)</h2>
9
9
  </header>
10
10
 
11
- <%= render 'deploys/summary', commits: @deploy.commits %>
11
+ <%= render 'shipit/deploys/summary', commits: @deploy.commits %>
12
12
  </section>
13
13
 
14
14
  <% unless @deploy.commits_since.empty? %>
@@ -19,7 +19,7 @@
19
19
  <strong>is</strong> being deployed (for example, if they contain the revert
20
20
  of a broken change).</p>
21
21
 
22
- <%= render 'deploys/summary', commits: @deploy.commits_since %>
22
+ <%= render 'shipit/deploys/summary', commits: @deploy.commits_since %>
23
23
  </section>
24
24
  <% end %>
25
25
 
@@ -1,4 +1,4 @@
1
- <%= render partial: "stacks/header", locals: { stack: @stack } %>
1
+ <%= render partial: 'shipit/stacks/header', locals: { stack: @stack } %>
2
2
 
3
3
  <div class="wrapper">
4
4
  <section class="warning">
@@ -18,7 +18,7 @@
18
18
 
19
19
  <p><%= link_to_github_deploy(@rollback) %></p>
20
20
 
21
- <%= render 'deploys/summary', commits: @rollback.commits %>
21
+ <%= render 'shipit/deploys/summary', commits: @rollback.commits %>
22
22
  </section>
23
23
 
24
24
  <%= render_monitoring @stack %>
@@ -8,4 +8,4 @@
8
8
  <%= timeago_tag(@deploy.created_at, force: true) %> at <%= @deploy.created_at %>
9
9
  <% end %>
10
10
 
11
- <%= render partial: 'tasks/task_output', locals: {task: @deploy} %>
11
+ <%= render partial: 'shipit/tasks/task_output', locals: {task: @deploy} %>
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- <%= render partial: "stacks/header", locals: { stack: @stack } %>
1
+ <%= render partial: 'shipit/stacks/header', locals: { stack: @stack } %>
2
2
 
3
3
  <div class="wrapper">
4
4
  <section>
@@ -1,4 +1,4 @@
1
- <%= render partial: "stacks/header", locals: { stack: @stack } %>
1
+ <%= render partial: 'shipit/stacks/header', locals: { stack: @stack } %>
2
2
 
3
3
  <% if !@stack.ignore_ci && !@stack.ci_enabled? %>
4
4
  <div class="banner">
@@ -64,7 +64,7 @@
64
64
  </div>
65
65
  </header>
66
66
  <ul class="commit-list">
67
- <%= render partial: "commits/commit", collection: @commits.to_a %>
67
+ <%= render partial: 'shipit/commits/commit', collection: @commits.to_a %>
68
68
  </ul>
69
69
  </section>
70
70
 
@@ -1,5 +1,5 @@
1
1
  <div class="status-group">
2
- <%= render 'statuses/status', status: group %>
2
+ <%= render 'shipit/statuses/status', status: group %>
3
3
 
4
4
  <div class="status-list">
5
5
  <div class="status-item status-item--summary status-item--<%= group.state %>">
@@ -1,5 +1,5 @@
1
1
  <li class="task" id="task-<%= task.id %>" data-status="<%= task.status %>">
2
- <%= render 'commits/commit_author', commit: task %>
2
+ <%= render 'shipit/commits/commit_author', commit: task %>
3
3
  <a href="<%= stack_task_path(@stack, task) %>" class="status status--<%= task.status %>" data-tooltip="<%= task.status.capitalize %>">
4
4
  <i class="status__icon"></i>
5
5
  <span class="visually-hidden"><%= task.status %></span>
@@ -1,6 +1,6 @@
1
1
  <%= javascript_include_tag 'task' %>
2
2
  <%= include_plugins(@stack) %>
3
- <%= render partial: 'stacks/header', locals: { stack: @stack } %>
3
+ <%= render partial: 'shipit/stacks/header', locals: { stack: @stack } %>
4
4
 
5
5
  <div class="sidebar">
6
6
  <div class="sidebar-plugins"></div>
@@ -1,4 +1,4 @@
1
- <%= render partial: "stacks/header", locals: { stack: @stack } %>
1
+ <%= render partial: 'shipit/stacks/header', locals: { stack: @stack } %>
2
2
 
3
3
  <div class="wrapper">
4
4
  <section>
@@ -1,4 +1,4 @@
1
- <%= render partial: "stacks/header", locals: { stack: @stack } %>
1
+ <%= render partial: 'shipit/stacks/header', locals: { stack: @stack } %>
2
2
 
3
3
  <div class="wrapper">
4
4
  <section>
@@ -3,4 +3,4 @@
3
3
  <%= timeago_tag(@task.created_at, force: true) %> at <%= @task.created_at %>
4
4
  <% end %>
5
5
 
6
- <%= render partial: 'tasks/task_output', locals: {task: @task} %>
6
+ <%= render partial: 'shipit/tasks/task_output', locals: {task: @task} %>
@@ -0,0 +1,5 @@
1
+ class IncreaseTasksTypeSizeBack < ActiveRecord::Migration
2
+ def change
3
+ change_column :tasks, :type, :string, limit: 20, null: true
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ class ConvertStiColumns < ActiveRecord::Migration
2
+ def up
3
+ Shipit::Task.where(type: 'Task').update_all(type: 'Shipit::Task')
4
+ Shipit::Task.where(type: 'Deploy').update_all(type: 'Shipit::Deploy')
5
+ Shipit::Task.where(type: 'Rollback').update_all(type: 'Shipit::Rollback')
6
+
7
+ Shipit::GithubHook.where(type: 'GithubHook::Repo').update_all(type: 'Shipit::GithubHook::Repo')
8
+ Shipit::GithubHook.where(type: 'GithubHook::Organization').update_all(type: 'Shipit::GithubHook::Organization')
9
+ end
10
+ end
data/lib/shipit.rb CHANGED
@@ -31,15 +31,12 @@ require 'shipit/csv_serializer'
31
31
  require 'shipit/octokit_iterator'
32
32
  require 'shipit/first_parent_commits_iterator'
33
33
  require 'shipit/simple_message_verifier'
34
-
35
- require 'command'
36
- require 'commands'
37
- require 'stack_commands'
38
- require 'task_commands'
39
- require 'deploy_commands'
40
- require 'rollback_commands'
41
-
42
- require 'shipit/engine'
34
+ require 'shipit/command'
35
+ require 'shipit/commands'
36
+ require 'shipit/stack_commands'
37
+ require 'shipit/task_commands'
38
+ require 'shipit/deploy_commands'
39
+ require 'shipit/rollback_commands'
43
40
 
44
41
  SafeYAML::OPTIONS[:default_mode] = :safe
45
42
  SafeYAML::OPTIONS[:deserialize_symbols] = false
@@ -47,6 +44,8 @@ SafeYAML::OPTIONS[:deserialize_symbols] = false
47
44
  module Shipit
48
45
  extend self
49
46
 
47
+ delegate :table_name_prefix, to: :secrets
48
+
50
49
  def app_name
51
50
  @app_name ||= secrets.app_name || Rails.application.class.name.split(':').first || 'Shipit'
52
51
  end
@@ -56,7 +55,7 @@ module Shipit
56
55
  end
57
56
 
58
57
  def redis(namespace = nil)
59
- @redis ||= Redis.new(url: redis_url.to_s, logger: Rails.logger)
58
+ @redis ||= Redis.new(url: redis_url.to_s.presence, logger: Rails.logger)
60
59
  return @redis unless namespace
61
60
  Redis::Namespace.new(namespace, redis: @redis)
62
61
  end
@@ -163,3 +162,5 @@ module Shipit
163
162
  Rails.application.secrets
164
163
  end
165
164
  end
165
+
166
+ require 'shipit/engine'