dapp 0.8.0 → 0.9.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 (299) hide show
  1. checksums.yaml +4 -4
  2. data/bin/dapp +5 -5
  3. data/config/en/common.yml +6 -4
  4. data/config/en/net_status.yml +8 -7
  5. data/lib/dapp.rb +157 -139
  6. data/lib/dapp/cli.rb +6 -16
  7. data/lib/dapp/cli/base.rb +3 -5
  8. data/lib/dapp/config/base.rb +19 -7
  9. data/lib/dapp/config/directive/base.rb +0 -1
  10. data/lib/dapp/config/error/config.rb +7 -0
  11. data/lib/dapp/core_ext/hash.rb +0 -2
  12. data/lib/dapp/core_ext/pathname.rb +1 -3
  13. data/lib/dapp/{project.rb → dapp.rb} +2 -21
  14. data/lib/dapp/{project → dapp}/chef.rb +2 -4
  15. data/lib/dapp/{project → dapp}/dappfile.rb +5 -7
  16. data/lib/dapp/{project → dapp}/deps/base.rb +3 -6
  17. data/lib/dapp/{project → dapp}/deps/gitartifact.rb +2 -5
  18. data/lib/dapp/{project → dapp}/git_artifact.rb +2 -4
  19. data/lib/dapp/{project → dapp}/lock.rb +3 -5
  20. data/lib/dapp/{project → dapp}/logging/base.rb +2 -5
  21. data/lib/dapp/{project → dapp}/logging/i18n.rb +2 -3
  22. data/lib/dapp/{project → dapp}/logging/paint.rb +2 -4
  23. data/lib/dapp/{project → dapp}/logging/process.rb +2 -5
  24. data/lib/dapp/{project → dapp}/shellout/base.rb +2 -4
  25. data/lib/dapp/{project → dapp}/shellout/streaming.rb +3 -8
  26. data/lib/dapp/{project → dapp}/ssh_agent.rb +6 -9
  27. data/lib/dapp/dimg.rb +1 -192
  28. data/lib/dapp/dimg/artifact.rb +24 -0
  29. data/lib/dapp/dimg/build/stage/after_install_artifact.rb +14 -0
  30. data/lib/dapp/dimg/build/stage/after_setup_artifact.rb +18 -0
  31. data/lib/dapp/dimg/build/stage/artifact_base.rb +80 -0
  32. data/lib/dapp/dimg/build/stage/artifact_default.rb +63 -0
  33. data/lib/dapp/dimg/build/stage/base.rb +210 -0
  34. data/lib/dapp/dimg/build/stage/before_install.rb +33 -0
  35. data/lib/dapp/dimg/build/stage/before_install_artifact.rb +14 -0
  36. data/lib/dapp/dimg/build/stage/before_setup.rb +31 -0
  37. data/lib/dapp/dimg/build/stage/before_setup_artifact.rb +14 -0
  38. data/lib/dapp/dimg/build/stage/build_artifact.rb +31 -0
  39. data/lib/dapp/dimg/build/stage/docker_instructions.rb +25 -0
  40. data/lib/dapp/dimg/build/stage/from.rb +50 -0
  41. data/lib/dapp/dimg/build/stage/ga_archive.rb +28 -0
  42. data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +27 -0
  43. data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +22 -0
  44. data/lib/dapp/dimg/build/stage/ga_base.rb +80 -0
  45. data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +20 -0
  46. data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +54 -0
  47. data/lib/dapp/dimg/build/stage/import_artifact.rb +64 -0
  48. data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +22 -0
  49. data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +22 -0
  50. data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +22 -0
  51. data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +22 -0
  52. data/lib/dapp/dimg/build/stage/install/install.rb +35 -0
  53. data/lib/dapp/dimg/build/stage/mod/group.rb +42 -0
  54. data/lib/dapp/dimg/build/stage/mod/logging.rb +101 -0
  55. data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +22 -0
  56. data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +32 -0
  57. data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +22 -0
  58. data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +22 -0
  59. data/lib/dapp/dimg/build/stage/setup/setup.rb +35 -0
  60. data/lib/dapp/dimg/builder.rb +6 -0
  61. data/lib/dapp/{builder → dimg/builder}/base.rb +4 -5
  62. data/lib/dapp/{builder → dimg/builder}/chef.rb +41 -33
  63. data/lib/dapp/dimg/builder/chef/berksfile.rb +121 -0
  64. data/lib/dapp/dimg/builder/chef/cookbook.rb +285 -0
  65. data/lib/dapp/dimg/builder/chef/cookbook_metadata.rb +106 -0
  66. data/lib/dapp/{builder → dimg/builder}/none.rb +4 -5
  67. data/lib/dapp/{builder → dimg/builder}/shell.rb +5 -6
  68. data/lib/dapp/dimg/cli/base.rb +16 -0
  69. data/lib/dapp/dimg/cli/bp.rb +37 -0
  70. data/lib/dapp/dimg/cli/build.rb +64 -0
  71. data/lib/dapp/dimg/cli/build_context.rb +18 -0
  72. data/lib/dapp/dimg/cli/build_context/export.rb +26 -0
  73. data/lib/dapp/dimg/cli/build_context/import.rb +17 -0
  74. data/lib/dapp/dimg/cli/cleanup.rb +22 -0
  75. data/lib/dapp/dimg/cli/cli.rb +1 -0
  76. data/lib/dapp/dimg/cli/dimg.rb +30 -0
  77. data/lib/dapp/dimg/cli/list.rb +17 -0
  78. data/lib/dapp/dimg/cli/mrproper.rb +26 -0
  79. data/lib/dapp/dimg/cli/push.rb +61 -0
  80. data/lib/dapp/dimg/cli/run.rb +59 -0
  81. data/lib/dapp/{cli → dimg/cli}/spush.rb +7 -7
  82. data/lib/dapp/dimg/cli/stage_image.rb +24 -0
  83. data/lib/dapp/dimg/cli/stages.rb +22 -0
  84. data/lib/dapp/dimg/cli/stages/cleanup_local.rb +44 -0
  85. data/lib/dapp/dimg/cli/stages/cleanup_repo.rb +26 -0
  86. data/lib/dapp/dimg/cli/stages/flush_local.rb +23 -0
  87. data/lib/dapp/dimg/cli/stages/flush_repo.rb +24 -0
  88. data/lib/dapp/dimg/cli/stages/pull.rb +28 -0
  89. data/lib/dapp/dimg/cli/stages/push.rb +24 -0
  90. data/lib/dapp/dimg/cli/tag.rb +24 -0
  91. data/lib/dapp/dimg/config/artifact_dimg.rb +17 -0
  92. data/lib/dapp/dimg/config/artifact_group.rb +47 -0
  93. data/lib/dapp/dimg/config/base.rb +7 -0
  94. data/lib/dapp/dimg/config/dimg.rb +24 -0
  95. data/lib/dapp/dimg/config/dimg/instance_methods.rb +177 -0
  96. data/lib/dapp/dimg/config/dimg/validation.rb +126 -0
  97. data/lib/dapp/dimg/config/dimg_group.rb +61 -0
  98. data/lib/dapp/dimg/config/dimg_group_base.rb +54 -0
  99. data/lib/dapp/dimg/config/dimg_group_main.rb +22 -0
  100. data/lib/dapp/dimg/config/directive/artifact.rb +70 -0
  101. data/lib/dapp/dimg/config/directive/artifact_base.rb +97 -0
  102. data/lib/dapp/dimg/config/directive/base.rb +9 -0
  103. data/lib/dapp/dimg/config/directive/chef.rb +68 -0
  104. data/lib/dapp/dimg/config/directive/docker/artifact.rb +15 -0
  105. data/lib/dapp/dimg/config/directive/docker/base.rb +22 -0
  106. data/lib/dapp/dimg/config/directive/docker/dimg.rb +82 -0
  107. data/lib/dapp/dimg/config/directive/git_artifact_local.rb +47 -0
  108. data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +58 -0
  109. data/lib/dapp/dimg/config/directive/mount.rb +27 -0
  110. data/lib/dapp/dimg/config/directive/shell/artifact.rb +18 -0
  111. data/lib/dapp/dimg/config/directive/shell/dimg.rb +65 -0
  112. data/lib/dapp/dimg/dapp/command.rb +21 -0
  113. data/lib/dapp/dimg/dapp/command/bp.rb +20 -0
  114. data/lib/dapp/dimg/dapp/command/build.rb +22 -0
  115. data/lib/dapp/dimg/dapp/command/build_context/common.rb +27 -0
  116. data/lib/dapp/dimg/dapp/command/build_context/export.rb +55 -0
  117. data/lib/dapp/dimg/dapp/command/build_context/import.rb +71 -0
  118. data/lib/dapp/dimg/dapp/command/cleanup.rb +23 -0
  119. data/lib/dapp/dimg/dapp/command/common.rb +96 -0
  120. data/lib/dapp/dimg/dapp/command/list.rb +19 -0
  121. data/lib/dapp/dimg/dapp/command/mrproper.rb +75 -0
  122. data/lib/dapp/dimg/dapp/command/push.rb +27 -0
  123. data/lib/dapp/dimg/dapp/command/run.rb +15 -0
  124. data/lib/dapp/dimg/dapp/command/spush.rb +17 -0
  125. data/lib/dapp/dimg/dapp/command/stage_image.rb +14 -0
  126. data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +137 -0
  127. data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +124 -0
  128. data/lib/dapp/dimg/dapp/command/stages/common.rb +85 -0
  129. data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +21 -0
  130. data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +21 -0
  131. data/lib/dapp/dimg/dapp/command/stages/pull.rb +26 -0
  132. data/lib/dapp/dimg/dapp/command/stages/push.rb +22 -0
  133. data/lib/dapp/dimg/dapp/command/tag.rb +17 -0
  134. data/lib/dapp/dimg/dimg.rb +192 -0
  135. data/lib/dapp/dimg/dimg/git_artifact.rb +26 -0
  136. data/lib/dapp/dimg/dimg/path.rb +37 -0
  137. data/lib/dapp/dimg/dimg/stages.rb +60 -0
  138. data/lib/dapp/dimg/dimg/tags.rb +65 -0
  139. data/lib/dapp/dimg/docker_registry.rb +37 -0
  140. data/lib/dapp/dimg/docker_registry/base.rb +109 -0
  141. data/lib/dapp/dimg/docker_registry/base/authorization.rb +63 -0
  142. data/lib/dapp/dimg/docker_registry/base/request.rb +34 -0
  143. data/lib/dapp/dimg/docker_registry/default.rb +18 -0
  144. data/lib/dapp/dimg/error/base.rb +7 -0
  145. data/lib/dapp/dimg/error/build.rb +7 -0
  146. data/lib/dapp/dimg/error/chef.rb +11 -0
  147. data/lib/dapp/dimg/error/command.rb +7 -0
  148. data/lib/dapp/dimg/error/config.rb +7 -0
  149. data/lib/dapp/dimg/error/dimg.rb +7 -0
  150. data/lib/dapp/dimg/error/lock.rb +7 -0
  151. data/lib/dapp/dimg/error/registry.rb +7 -0
  152. data/lib/dapp/dimg/error/rugged.rb +7 -0
  153. data/lib/dapp/dimg/error/shellout.rb +7 -0
  154. data/lib/dapp/dimg/error/tar_writer.rb +7 -0
  155. data/lib/dapp/dimg/exception/base.rb +7 -0
  156. data/lib/dapp/dimg/exception/introspect_image.rb +7 -0
  157. data/lib/dapp/dimg/exception/registry.rb +7 -0
  158. data/lib/dapp/dimg/filelock.rb +43 -0
  159. data/lib/dapp/dimg/git_artifact.rb +241 -18
  160. data/lib/dapp/dimg/git_repo/base.rb +90 -0
  161. data/lib/dapp/dimg/git_repo/own.rb +39 -0
  162. data/lib/dapp/dimg/git_repo/remote.rb +50 -0
  163. data/lib/dapp/dimg/image/argument.rb +143 -0
  164. data/lib/dapp/dimg/image/docker.rb +127 -0
  165. data/lib/dapp/dimg/image/scratch.rb +32 -0
  166. data/lib/dapp/dimg/image/stage.rb +95 -0
  167. data/lib/dapp/dimg/lock/base.rb +51 -0
  168. data/lib/dapp/dimg/lock/file.rb +48 -0
  169. data/lib/dapp/error/base.rb +0 -1
  170. data/lib/dapp/error/dapp.rb +5 -0
  171. data/lib/dapp/error/dappfile.rb +0 -1
  172. data/lib/dapp/error/shellout.rb +0 -1
  173. data/lib/dapp/exception/base.rb +0 -1
  174. data/lib/dapp/helper/cli.rb +5 -6
  175. data/lib/dapp/helper/net_status.rb +0 -1
  176. data/lib/dapp/helper/sha256.rb +0 -1
  177. data/lib/dapp/helper/trivia.rb +0 -1
  178. data/lib/dapp/prctl.rb +0 -1
  179. data/lib/dapp/version.rb +1 -2
  180. metadata +172 -140
  181. data/lib/dapp/artifact.rb +0 -23
  182. data/lib/dapp/build/stage/after_install_artifact.rb +0 -13
  183. data/lib/dapp/build/stage/after_setup_artifact.rb +0 -17
  184. data/lib/dapp/build/stage/artifact_base.rb +0 -80
  185. data/lib/dapp/build/stage/artifact_default.rb +0 -63
  186. data/lib/dapp/build/stage/base.rb +0 -203
  187. data/lib/dapp/build/stage/before_install.rb +0 -32
  188. data/lib/dapp/build/stage/before_install_artifact.rb +0 -13
  189. data/lib/dapp/build/stage/before_setup.rb +0 -30
  190. data/lib/dapp/build/stage/before_setup_artifact.rb +0 -13
  191. data/lib/dapp/build/stage/build_artifact.rb +0 -36
  192. data/lib/dapp/build/stage/docker_instructions.rb +0 -24
  193. data/lib/dapp/build/stage/from.rb +0 -34
  194. data/lib/dapp/build/stage/ga_archive.rb +0 -27
  195. data/lib/dapp/build/stage/ga_archive_dependencies.rb +0 -26
  196. data/lib/dapp/build/stage/ga_artifact_patch.rb +0 -21
  197. data/lib/dapp/build/stage/ga_base.rb +0 -79
  198. data/lib/dapp/build/stage/ga_dependencies_base.rb +0 -19
  199. data/lib/dapp/build/stage/ga_latest_patch.rb +0 -53
  200. data/lib/dapp/build/stage/import_artifact.rb +0 -65
  201. data/lib/dapp/build/stage/install/ga_post_install_patch.rb +0 -21
  202. data/lib/dapp/build/stage/install/ga_post_install_patch_dependencies.rb +0 -21
  203. data/lib/dapp/build/stage/install/ga_pre_install_patch.rb +0 -21
  204. data/lib/dapp/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -21
  205. data/lib/dapp/build/stage/install/install.rb +0 -40
  206. data/lib/dapp/build/stage/mod/group.rb +0 -42
  207. data/lib/dapp/build/stage/mod/logging.rb +0 -104
  208. data/lib/dapp/build/stage/setup/ga_post_setup_patch.rb +0 -21
  209. data/lib/dapp/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -31
  210. data/lib/dapp/build/stage/setup/ga_pre_setup_patch.rb +0 -21
  211. data/lib/dapp/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -21
  212. data/lib/dapp/build/stage/setup/setup.rb +0 -40
  213. data/lib/dapp/builder/chef/berksfile.rb +0 -78
  214. data/lib/dapp/builder/chef/cookbook.rb +0 -257
  215. data/lib/dapp/builder/chef/cookbook_metadata.rb +0 -54
  216. data/lib/dapp/builder/chef/error.rb +0 -12
  217. data/lib/dapp/cli/bp.rb +0 -37
  218. data/lib/dapp/cli/build.rb +0 -60
  219. data/lib/dapp/cli/cleanup.rb +0 -22
  220. data/lib/dapp/cli/list.rb +0 -17
  221. data/lib/dapp/cli/mrproper.rb +0 -26
  222. data/lib/dapp/cli/push.rb +0 -61
  223. data/lib/dapp/cli/run.rb +0 -53
  224. data/lib/dapp/cli/stage_image.rb +0 -24
  225. data/lib/dapp/cli/stages.rb +0 -23
  226. data/lib/dapp/cli/stages/cleanup_local.rb +0 -44
  227. data/lib/dapp/cli/stages/cleanup_repo.rb +0 -26
  228. data/lib/dapp/cli/stages/flush_local.rb +0 -23
  229. data/lib/dapp/cli/stages/flush_repo.rb +0 -24
  230. data/lib/dapp/cli/stages/pull.rb +0 -28
  231. data/lib/dapp/cli/stages/push.rb +0 -24
  232. data/lib/dapp/cli/tag.rb +0 -24
  233. data/lib/dapp/config/artifact_dimg.rb +0 -20
  234. data/lib/dapp/config/artifact_group.rb +0 -56
  235. data/lib/dapp/config/dimg.rb +0 -23
  236. data/lib/dapp/config/dimg/instance_methods.rb +0 -194
  237. data/lib/dapp/config/dimg/validation.rb +0 -125
  238. data/lib/dapp/config/dimg_group.rb +0 -60
  239. data/lib/dapp/config/dimg_group_base.rb +0 -53
  240. data/lib/dapp/config/dimg_group_main.rb +0 -21
  241. data/lib/dapp/config/directive/artifact.rb +0 -69
  242. data/lib/dapp/config/directive/artifact_base.rb +0 -93
  243. data/lib/dapp/config/directive/chef.rb +0 -57
  244. data/lib/dapp/config/directive/docker/artifact.rb +0 -15
  245. data/lib/dapp/config/directive/docker/base.rb +0 -20
  246. data/lib/dapp/config/directive/docker/dimg.rb +0 -81
  247. data/lib/dapp/config/directive/git_artifact_local.rb +0 -13
  248. data/lib/dapp/config/directive/git_artifact_remote.rb +0 -57
  249. data/lib/dapp/config/directive/mount.rb +0 -26
  250. data/lib/dapp/config/directive/shell/artifact.rb +0 -17
  251. data/lib/dapp/config/directive/shell/dimg.rb +0 -65
  252. data/lib/dapp/dimg/path.rb +0 -37
  253. data/lib/dapp/dimg/stages.rb +0 -59
  254. data/lib/dapp/dimg/tags.rb +0 -65
  255. data/lib/dapp/docker_registry.rb +0 -36
  256. data/lib/dapp/docker_registry/base.rb +0 -109
  257. data/lib/dapp/docker_registry/default.rb +0 -18
  258. data/lib/dapp/docker_registry/mod/authorization.rb +0 -63
  259. data/lib/dapp/docker_registry/mod/request.rb +0 -32
  260. data/lib/dapp/error/build.rb +0 -6
  261. data/lib/dapp/error/config.rb +0 -6
  262. data/lib/dapp/error/dimg.rb +0 -6
  263. data/lib/dapp/error/image.rb +0 -6
  264. data/lib/dapp/error/project.rb +0 -6
  265. data/lib/dapp/error/registry.rb +0 -6
  266. data/lib/dapp/error/rugged.rb +0 -6
  267. data/lib/dapp/error/tar_writer.rb +0 -6
  268. data/lib/dapp/exception/introspect_image.rb +0 -6
  269. data/lib/dapp/exception/registry.rb +0 -6
  270. data/lib/dapp/filelock.rb +0 -43
  271. data/lib/dapp/git_artifact.rb +0 -241
  272. data/lib/dapp/git_repo/base.rb +0 -88
  273. data/lib/dapp/git_repo/own.rb +0 -38
  274. data/lib/dapp/git_repo/remote.rb +0 -49
  275. data/lib/dapp/image/argument.rb +0 -134
  276. data/lib/dapp/image/docker.rb +0 -115
  277. data/lib/dapp/image/scratch.rb +0 -32
  278. data/lib/dapp/image/stage.rb +0 -94
  279. data/lib/dapp/lock/base.rb +0 -51
  280. data/lib/dapp/lock/error.rb +0 -14
  281. data/lib/dapp/lock/file.rb +0 -45
  282. data/lib/dapp/project/command/bp.rb +0 -21
  283. data/lib/dapp/project/command/build.rb +0 -20
  284. data/lib/dapp/project/command/cleanup.rb +0 -24
  285. data/lib/dapp/project/command/common.rb +0 -96
  286. data/lib/dapp/project/command/list.rb +0 -20
  287. data/lib/dapp/project/command/mrproper.rb +0 -69
  288. data/lib/dapp/project/command/push.rb +0 -28
  289. data/lib/dapp/project/command/run.rb +0 -15
  290. data/lib/dapp/project/command/spush.rb +0 -18
  291. data/lib/dapp/project/command/stage_image.rb +0 -15
  292. data/lib/dapp/project/command/stages/cleanup_local.rb +0 -138
  293. data/lib/dapp/project/command/stages/cleanup_repo.rb +0 -125
  294. data/lib/dapp/project/command/stages/common.rb +0 -86
  295. data/lib/dapp/project/command/stages/flush_local.rb +0 -22
  296. data/lib/dapp/project/command/stages/flush_repo.rb +0 -22
  297. data/lib/dapp/project/command/stages/pull.rb +0 -27
  298. data/lib/dapp/project/command/stages/push.rb +0 -23
  299. data/lib/dapp/project/command/tag.rb +0 -18
@@ -0,0 +1,33 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class BeforeInstall < Base
6
+ def initialize(dimg, next_stage)
7
+ @prev_stage = From.new(dimg, self)
8
+ super
9
+ end
10
+
11
+ def empty?
12
+ super && !dimg.builder.before_install?
13
+ end
14
+
15
+ def context
16
+ [builder_checksum]
17
+ end
18
+
19
+ def builder_checksum
20
+ dimg.builder.before_install_checksum
21
+ end
22
+
23
+ def prepare_image
24
+ super
25
+ dimg.builder.before_install(image)
26
+ end
27
+
28
+ alias dependencies context
29
+ end # BeforeInstall
30
+ end # Stage
31
+ end # Build
32
+ end # Dimg
33
+ end # Dapp
@@ -0,0 +1,14 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class BeforeInstallArtifact < ArtifactDefault
6
+ def initialize(dimg, next_stage)
7
+ @prev_stage = BeforeInstall.new(dimg, self)
8
+ super
9
+ end
10
+ end # BeforeInstallArtifact
11
+ end # Stage
12
+ end # Build
13
+ end # Dimg
14
+ end # Dapp
@@ -0,0 +1,31 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class BeforeSetup < Base
6
+ def initialize(dimg, next_stage)
7
+ @prev_stage = AfterInstallArtifact.new(dimg, self)
8
+ super
9
+ end
10
+
11
+ def empty?
12
+ !dimg.builder.before_setup?
13
+ end
14
+
15
+ def context
16
+ [git_artifacts_dependencies, builder_checksum]
17
+ end
18
+
19
+ def builder_checksum
20
+ dimg.builder.before_setup_checksum
21
+ end
22
+
23
+ def prepare_image
24
+ super
25
+ dimg.builder.before_setup(image)
26
+ end
27
+ end # BeforeSetup
28
+ end # Stage
29
+ end # Build
30
+ end # Dimg
31
+ end # Dapp
@@ -0,0 +1,14 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class BeforeSetupArtifact < ArtifactDefault
6
+ def initialize(dimg, next_stage)
7
+ @prev_stage = BeforeSetup.new(dimg, self)
8
+ super
9
+ end
10
+ end # BeforeSetupArtifact
11
+ end # Stage
12
+ end # Build
13
+ end # Dimg
14
+ end # Dapp
@@ -0,0 +1,31 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class BuildArtifact < Base
6
+ def initialize(dimg)
7
+ @prev_stage = GAArtifactPatch.new(dimg, self)
8
+ @dimg = dimg
9
+ end
10
+
11
+ def empty?
12
+ !dimg.builder.build_artifact?
13
+ end
14
+
15
+ def context
16
+ [git_artifacts_dependencies, builder_checksum]
17
+ end
18
+
19
+ def builder_checksum
20
+ dimg.builder.build_artifact_checksum
21
+ end
22
+
23
+ def prepare_image
24
+ super
25
+ dimg.builder.build_artifact(image)
26
+ end
27
+ end # BuildArtifact
28
+ end # Stage
29
+ end # Build
30
+ end # Dimg
31
+ end # Dapp
@@ -0,0 +1,25 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class DockerInstructions < Base
6
+ def initialize(dimg)
7
+ @prev_stage = GALatestPatch.new(dimg, self)
8
+ @dimg = dimg
9
+ end
10
+
11
+ def dependencies
12
+ [change_options]
13
+ end
14
+
15
+ def prepare_image
16
+ super
17
+ change_options.each do |k, v|
18
+ image.public_send("add_change_#{k}", v)
19
+ end
20
+ end
21
+ end # DockerInstructions
22
+ end # Stage
23
+ end # Build
24
+ end # Dimg
25
+ end # Dapp
@@ -0,0 +1,50 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class From < Base
6
+ def dependencies
7
+ [from_image_name, dimg.config._docker._from_cache_version, config_mounts_dirs]
8
+ end
9
+
10
+ protected
11
+
12
+ def prepare_image
13
+ from_image.pull!
14
+ raise Error::Build, code: :from_image_not_found, data: { name: from_image_name } unless from_image.tagged?
15
+ add_cleanup_mounts_dirs_command
16
+ super
17
+ end
18
+
19
+ def add_cleanup_mounts_dirs_command
20
+ return if config_mounts_dirs.empty?
21
+ image.add_service_command ["#{dimg.dapp.rm_bin} -rf %s",
22
+ "#{dimg.dapp.mkdir_bin} -p %s"].map { |c| format(c, config_mounts_dirs.join(' ')) }
23
+ end
24
+
25
+ def config_mounts_dirs
26
+ [:tmp_dir, :build_dir].map { |type| config_mounts_by_type(type) }.flatten.uniq
27
+ end
28
+
29
+ def adding_mounts_by_type(type)
30
+ labels_mounts_by_type(type)
31
+ end
32
+
33
+ def should_not_be_detailed?
34
+ from_image.tagged?
35
+ end
36
+
37
+ private
38
+
39
+ def from_image_name
40
+ dimg.config._docker._from
41
+ end
42
+
43
+ def from_image
44
+ @from_image ||= Image::Stage.image_by_name(name: from_image_name, dapp: dimg.dapp)
45
+ end
46
+ end # Prepare
47
+ end # Stage
48
+ end # Build
49
+ end # Dimg
50
+ end # Dapp
@@ -0,0 +1,28 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class GAArchive < GABase
6
+ def initialize(dimg, next_stage)
7
+ @prev_stage = GAArchiveDependencies.new(dimg, self)
8
+ super
9
+ end
10
+
11
+ def prev_g_a_stage
12
+ nil
13
+ end
14
+
15
+ def next_g_a_stage
16
+ next_stage.next_stage # GAPreInstallPatch
17
+ end
18
+
19
+ protected
20
+
21
+ def apply_command_method
22
+ :apply_archive_command
23
+ end
24
+ end # GAArchive
25
+ end # Stage
26
+ end # Build
27
+ end # Dimg
28
+ end # Dapp
@@ -0,0 +1,27 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class GAArchiveDependencies < GADependenciesBase
6
+ RESET_COMMIT_MESSAGES = ['[dapp reset]', '[reset dapp]'].freeze
7
+
8
+ def initialize(dimg, next_stage)
9
+ @prev_stage = BeforeInstallArtifact.new(dimg, self)
10
+ super
11
+ end
12
+
13
+ def dependencies
14
+ [dimg.git_artifacts.map(&:paramshash).join, reset_commits.sort.uniq.compact]
15
+ end
16
+
17
+ protected
18
+
19
+ def reset_commits
20
+ regex = Regexp.union(RESET_COMMIT_MESSAGES)
21
+ dimg.git_artifacts.map { |git_artifact| git_artifact.repo.find_commit_id_by_message(regex) }
22
+ end
23
+ end # GAArchiveDependencies
24
+ end # Stage
25
+ end # Build
26
+ end # Dimg
27
+ end # Dapp
@@ -0,0 +1,22 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class GAArtifactPatch < GALatestPatch
6
+ def initialize(dimg, next_stage)
7
+ @prev_stage = Setup::Setup.new(dimg, self)
8
+ super
9
+ end
10
+
11
+ def dependencies
12
+ next_stage.context # BuildArtifact
13
+ end
14
+
15
+ def prev_g_a_stage
16
+ super.prev_stage # GAPreSetupPatch
17
+ end
18
+ end # GAArtifactPatch
19
+ end # Stage
20
+ end # Build
21
+ end # Dimg
22
+ end # Dapp
@@ -0,0 +1,80 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class GABase < Base
6
+ attr_accessor :prev_g_a_stage, :next_g_a_stage
7
+
8
+ def prev_g_a_stage
9
+ dependencies_stage.prev_stage.prev_stage
10
+ end
11
+
12
+ def next_g_a_stage
13
+ next_stage.next_stage.next_stage
14
+ end
15
+
16
+ def dependencies_stage
17
+ prev_stage
18
+ end
19
+
20
+ def prepare_image
21
+ super do
22
+ image.add_volumes_from dimg.dapp.gitartifact_container
23
+ image.add_volume "#{dimg.tmp_path('archives')}:#{dimg.container_tmp_path('archives')}:ro"
24
+ image.add_volume "#{dimg.tmp_path('patches')}:#{dimg.container_tmp_path('patches')}:ro"
25
+
26
+ prepare_local_git_artifacts_command
27
+ prepare_remote_git_artifacts_command
28
+ end
29
+ end
30
+
31
+ def prepare_local_git_artifacts_command
32
+ prepare_base_git_artifacts_command(dimg.local_git_artifacts)
33
+ end
34
+
35
+ def prepare_remote_git_artifacts_command
36
+ prepare_base_git_artifacts_command(dimg.remote_git_artifacts)
37
+ end
38
+
39
+ def prepare_base_git_artifacts_command(git_artifacts)
40
+ git_artifacts.each { |git_artifact| image.add_command git_artifact.send(apply_command_method, self) }
41
+ end
42
+
43
+ def empty?
44
+ dependencies_stage.empty?
45
+ end
46
+
47
+ def layer_commit(git_artifact)
48
+ commits[git_artifact] ||= begin
49
+ if dependencies_stage && dependencies_stage.image.tagged?
50
+ dependencies_stage.image.labels[git_artifact.full_name]
51
+ else
52
+ git_artifact.latest_commit
53
+ end
54
+ end
55
+ end
56
+
57
+ protected
58
+
59
+ def should_not_be_detailed?
60
+ true
61
+ end
62
+
63
+ def ignore_log_commands?
64
+ true
65
+ end
66
+
67
+ def apply_command_method
68
+ :apply_patch_command
69
+ end
70
+
71
+ private
72
+
73
+ def commits
74
+ @commits ||= {}
75
+ end
76
+ end # GABase
77
+ end # Stage
78
+ end # Build
79
+ end # Dimg
80
+ end # Dapp
@@ -0,0 +1,20 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class GADependenciesBase < Base
6
+ def prepare_image
7
+ super
8
+ dimg.git_artifacts.each do |git_artifact|
9
+ image.add_service_change_label(git_artifact.full_name.to_sym => git_artifact.latest_commit)
10
+ end
11
+ end
12
+
13
+ def empty?
14
+ dimg.git_artifacts.empty? || super
15
+ end
16
+ end # GADependenciesBase
17
+ end # Stage
18
+ end # Build
19
+ end # Dimg
20
+ end # Dapp
@@ -0,0 +1,54 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class GALatestPatch < GABase
6
+ def initialize(dimg, next_stage)
7
+ @prev_stage = AfterSetupArtifact.new(dimg, self)
8
+ super
9
+ end
10
+
11
+ def prev_g_a_stage
12
+ prev_stage.prev_stage
13
+ end
14
+
15
+ def next_g_a_stage
16
+ nil
17
+ end
18
+
19
+ def dependencies_stage
20
+ nil
21
+ end
22
+
23
+ def dependencies
24
+ [].tap do |dependencies|
25
+ dependencies << commit_list
26
+ dependencies << dimg.local_git_artifacts.map { |git_artifact| git_artifact.dev_patch_hash(self) } if dimg.dapp.dev_mode?
27
+ end
28
+ end
29
+
30
+ def prepare_local_git_artifacts_command
31
+ return super unless dimg.dapp.dev_mode?
32
+ dimg.local_git_artifacts.each { |git_artifact| image.add_command git_artifact.apply_dev_patch_command(self) }
33
+ end
34
+
35
+ def layer_commit(git_artifact)
36
+ commits[git_artifact] ||= begin
37
+ git_artifact.latest_commit
38
+ end
39
+ end
40
+
41
+ def empty?
42
+ dependencies_empty? || dimg.git_artifacts.all? { |git_artifact| !git_artifact.any_changes?(prev_g_a_stage.layer_commit(git_artifact)) }
43
+ end
44
+
45
+ private
46
+
47
+ def commit_list
48
+ dimg.git_artifacts.map { |git_artifact| layer_commit(git_artifact) }
49
+ end
50
+ end # GALatestPatch
51
+ end # Stage
52
+ end # Build
53
+ end # Dimg
54
+ end # Dapp