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,64 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ class ImportArtifact < ArtifactBase
6
+ def initialize(dimg)
7
+ @dimg = dimg
8
+ end
9
+
10
+ def signature
11
+ @signature ||= hashsum [*dependencies.flatten, change_options]
12
+ end
13
+
14
+ def image
15
+ @image ||= Image::Scratch.new(name: image_name, dapp: dimg.dapp)
16
+ end
17
+
18
+ def image_add_volumes
19
+ end
20
+
21
+ def prepare_image
22
+ super
23
+ change_options.each do |k, v|
24
+ image.public_send("add_change_#{k}", v)
25
+ end
26
+ end
27
+
28
+ protected
29
+
30
+ def apply_artifact(artifact, image)
31
+ return if dimg.dapp.dry_run?
32
+
33
+ artifact_name = artifact[:name]
34
+ artifact_dimg = artifact[:dimg]
35
+ cwd = artifact[:options][:cwd]
36
+ include_paths = artifact[:options][:include_paths]
37
+ owner = artifact[:options][:owner]
38
+ group = artifact[:options][:group]
39
+
40
+ sudo = dimg.dapp.sudo_command(owner: Process.uid, group: Process.gid)
41
+
42
+ credentials = ''
43
+ credentials += "--owner=#{owner} " if owner
44
+ credentials += "--group=#{group} " if group
45
+ credentials += '--numeric-owner'
46
+
47
+ archive_path = dimg.tmp_path('artifact', artifact_name, 'archive.tar.gz')
48
+ container_archive_path = File.join(artifact_dimg.container_tmp_path(artifact_name), 'archive.tar.gz')
49
+
50
+ exclude_paths = artifact[:options][:exclude_paths].map { |path| "--exclude=#{path}" }.join(' ')
51
+ include_paths = include_paths.empty? ? [File.join(cwd, '*')] : include_paths.map { |path| File.join(cwd, path, '*') }
52
+ include_paths.map! { |path| path[1..-1] } # relative path
53
+
54
+ command = "#{sudo} #{dimg.dapp.tar_bin} -czf #{container_archive_path} #{exclude_paths} #{include_paths.join(' ')} #{credentials}"
55
+ run_artifact_dimg(artifact_dimg, artifact_name, command)
56
+
57
+ image.add_archive archive_path
58
+ end
59
+ # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
60
+ end # ImportArtifact
61
+ end # Stage
62
+ end # Build
63
+ end # Dimg
64
+ end # Dapp
@@ -0,0 +1,22 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Install
6
+ class GAPostInstallPatch < GABase
7
+ include Mod::Group
8
+
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = GAPostInstallPatchDependencies.new(dimg, self)
11
+ super
12
+ end
13
+
14
+ def next_g_a_stage
15
+ super.next_stage.next_stage # GAPreSetupPatch
16
+ end
17
+ end # GAPostInstallPatch
18
+ end
19
+ end # Stage
20
+ end # Build
21
+ end # Dimg
22
+ end # Dapp
@@ -0,0 +1,22 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Install
6
+ class GAPostInstallPatchDependencies < GADependenciesBase
7
+ include Mod::Group
8
+
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = Install.new(dimg, self)
11
+ super
12
+ end
13
+
14
+ def dependencies
15
+ next_stage.next_stage.next_stage.context # BeforeSetup
16
+ end
17
+ end # GAPostInstallPatchDependencies
18
+ end
19
+ end # Stage
20
+ end # Build
21
+ end # Dimg
22
+ end # Dapp
@@ -0,0 +1,22 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Install
6
+ class GAPreInstallPatch < GABase
7
+ include Mod::Group
8
+
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = GAPreInstallPatchDependencies.new(dimg, self)
11
+ super
12
+ end
13
+
14
+ def prev_g_a_stage
15
+ dependencies_stage.prev_stage # GAArchive
16
+ end
17
+ end # GAPostInstallPatch
18
+ end
19
+ end # Stage
20
+ end # Build
21
+ end # Dimg
22
+ end # Dapp
@@ -0,0 +1,22 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Install
6
+ class GAPreInstallPatchDependencies < GADependenciesBase
7
+ include Mod::Group
8
+
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = GAArchive.new(dimg, self)
11
+ super
12
+ end
13
+
14
+ def dependencies
15
+ next_stage.next_stage.context # Install
16
+ end
17
+ end # GAPreInstallPatchDependencies
18
+ end
19
+ end # Stage
20
+ end # Build
21
+ end # Dimg
22
+ end # Dapp
@@ -0,0 +1,35 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Install
6
+ class Install < Base
7
+ include Mod::Group
8
+
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = GAPreInstallPatch.new(dimg, self)
11
+ super
12
+ end
13
+
14
+ def empty?
15
+ !dimg.builder.install?
16
+ end
17
+
18
+ def context
19
+ [git_artifacts_dependencies, builder_checksum]
20
+ end
21
+
22
+ def builder_checksum
23
+ dimg.builder.install_checksum
24
+ end
25
+
26
+ def prepare_image
27
+ super
28
+ dimg.builder.install(image)
29
+ end
30
+ end # Install
31
+ end # Install
32
+ end # Stage
33
+ end # Build
34
+ end # Dimg
35
+ end # Dapp
@@ -0,0 +1,42 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Mod
6
+ module Group
7
+ def log_image_build
8
+ return super if should_be_quiet?
9
+ log_group_name if group_should_be_opened?
10
+ dimg.dapp.with_log_indent { super }
11
+ end
12
+
13
+ def log_group_name
14
+ dimg.dapp.log_step(dimg.dapp.t(code: group_name, context: :group))
15
+ end
16
+
17
+ def group_name
18
+ class_to_lowercase(self.class.name.split('::')[-2])
19
+ end
20
+
21
+ def group_should_be_opened?
22
+ !group_opened? && image_should_be_build?
23
+ end
24
+
25
+ def group_opened?
26
+ return false if prev_group_stage.nil?
27
+ prev_group_stage.group_opened? || !prev_group_stage.empty?
28
+ end
29
+
30
+ def prev_group_stage
31
+ prev_stage if prev_stage.respond_to?(:group_name) && prev_stage.group_name == group_name
32
+ end
33
+
34
+ def log_name_context
35
+ [super, group_name].join('.')
36
+ end
37
+ end
38
+ end # Mod
39
+ end # Stage
40
+ end # Build
41
+ end # Dimg
42
+ end # Dapp
@@ -0,0 +1,101 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Mod
6
+ module Logging
7
+ def log_image_build(&image_build)
8
+ if empty? then log_state(:empty)
9
+ elsif image.built? then log_state(:using_cache)
10
+ elsif should_be_not_present? then log_state(:not_present)
11
+ elsif dimg.dapp.dry_run? then log_state(:build, styles: { status: :success })
12
+ else log_image_build_process(&image_build)
13
+ end
14
+ ensure
15
+ log_build
16
+ end
17
+
18
+ def log_build
19
+ return unless dimg.dapp.log_verbose? && !should_be_quiet?
20
+ dimg.dapp.with_log_indent do
21
+ dimg.dapp.log_info dimg.dapp.t(code: 'image.signature', data: { signature: image_name })
22
+ log_image_details unless empty?
23
+ end
24
+ end
25
+
26
+ def log_image_details
27
+ if image.tagged?
28
+ log_image_created_at
29
+ log_image_size
30
+ end
31
+ log_image_commands unless ignore_log_commands?
32
+ log_image_instructions
33
+ end
34
+
35
+ def log_image_instructions
36
+ return if (instructions = image.prepare_instructions(image.send(:change_options))).empty?
37
+ dimg.dapp.log_info dimg.dapp.t(code: 'image.instructions')
38
+ dimg.dapp.with_log_indent { dimg.dapp.log_info instructions.join("\n") }
39
+ end
40
+
41
+ def log_image_created_at
42
+ dimg.dapp.log_info dimg.dapp.t(code: 'image.info.created_at',
43
+ data: { value: Time.parse(image.created_at).localtime })
44
+ end
45
+
46
+ def log_image_size
47
+ if !prev_stage.nil? && from_image.tagged?
48
+ bytes = image.size - from_image.size
49
+ code = 'image.info.difference'
50
+ else
51
+ bytes = image.size
52
+ code = 'image.info.mb_size'
53
+ end
54
+ dimg.dapp.log_info dimg.dapp.t(code: code, data: { mb: (bytes / 1000 / 1000).round(3) })
55
+ end
56
+
57
+ def log_image_commands
58
+ return if (bash_commands = image.send(:bash_commands)).empty?
59
+ dimg.dapp.log_info dimg.dapp.t(code: 'image.commands')
60
+ dimg.dapp.with_log_indent { dimg.dapp.log_info bash_commands.join("\n") }
61
+ end
62
+
63
+ def log_name
64
+ dimg.dapp.t(code: name, context: log_name_context)
65
+ end
66
+
67
+ def log_name_context
68
+ :stage
69
+ end
70
+
71
+ def log_state(state_code, styles: {})
72
+ return if should_be_quiet?
73
+ dimg.dapp.log_state(log_name, state: dimg.dapp.t(code: state_code, context: 'state'), styles: styles)
74
+ end
75
+
76
+ def log_image_build_process
77
+ return yield if should_be_quiet?
78
+ dimg.dapp.log_process(log_name, process: dimg.dapp.t(code: 'status.process.building'), short: should_not_be_detailed?) { yield }
79
+ end
80
+
81
+ def ignore_log_commands?
82
+ false
83
+ end
84
+
85
+ def should_not_be_detailed?
86
+ image.send(:bash_commands).empty?
87
+ end
88
+
89
+ def should_be_introspected?
90
+ dimg.stage_should_be_introspected?(name) && !dimg.dapp.dry_run?
91
+ end
92
+
93
+ def should_be_quiet?
94
+ dimg.artifact? && !dimg.dapp.log_verbose?
95
+ end
96
+ end
97
+ end # Mod
98
+ end # Stage
99
+ end # Build
100
+ end # Dimg
101
+ end # Dapp
@@ -0,0 +1,22 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Setup
6
+ class GAPostSetupPatch < GABase
7
+ include Mod::Group
8
+
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = GAPostSetupPatchDependencies.new(dimg, self)
11
+ super
12
+ end
13
+
14
+ def next_g_a_stage
15
+ next_stage.next_stage
16
+ end
17
+ end # GAPostSetupPatch
18
+ end
19
+ end # Stage
20
+ end # Build
21
+ end # Dimg
22
+ end # Dapp
@@ -0,0 +1,32 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Setup
6
+ class GAPostSetupPatchDependencies < GADependenciesBase
7
+ include Mod::Group
8
+
9
+ MAX_PATCH_SIZE = 1024 * 1024
10
+
11
+ def initialize(dimg, next_stage)
12
+ @prev_stage = Setup.new(dimg, self)
13
+ super
14
+ end
15
+
16
+ def dependencies
17
+ [(changes_size_since_g_a_pre_setup_patch / MAX_PATCH_SIZE).to_i]
18
+ end
19
+
20
+ private
21
+
22
+ def changes_size_since_g_a_pre_setup_patch
23
+ dimg.git_artifacts.map do |git_artifact|
24
+ git_artifact.patch_size(prev_stage.prev_stage.layer_commit(git_artifact), git_artifact.latest_commit)
25
+ end.reduce(0, :+)
26
+ end
27
+ end # GAPostSetupPatchDependencies
28
+ end
29
+ end # Stage
30
+ end # Build
31
+ end # Dimg
32
+ end # Dapp
@@ -0,0 +1,22 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Setup
6
+ class GAPreSetupPatch < GABase
7
+ include Mod::Group
8
+
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = GAPreSetupPatchDependencies.new(dimg, self)
11
+ super
12
+ end
13
+
14
+ def prev_g_a_stage
15
+ super.prev_stage.prev_stage # GAPostInstallPatch
16
+ end
17
+ end # GAPrePatch
18
+ end
19
+ end # Stage
20
+ end # Build
21
+ end # Dimg
22
+ end # Dapp
@@ -0,0 +1,22 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Setup
6
+ class GAPreSetupPatchDependencies < GADependenciesBase
7
+ include Mod::Group
8
+
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = BeforeSetupArtifact.new(dimg, self)
11
+ super
12
+ end
13
+
14
+ def dependencies
15
+ next_stage.next_stage.context # Setup
16
+ end
17
+ end # GAPreSetupPatchDependencies
18
+ end
19
+ end # Stage
20
+ end # Build
21
+ end # Dimg
22
+ end # Dapp
@@ -0,0 +1,35 @@
1
+ module Dapp
2
+ module Dimg
3
+ module Build
4
+ module Stage
5
+ module Setup
6
+ class Setup < Base
7
+ include Mod::Group
8
+
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = GAPreSetupPatch.new(dimg, self)
11
+ super
12
+ end
13
+
14
+ def empty?
15
+ !dimg.builder.setup?
16
+ end
17
+
18
+ def context
19
+ [git_artifacts_dependencies, builder_checksum]
20
+ end
21
+
22
+ def builder_checksum
23
+ dimg.builder.setup_checksum
24
+ end
25
+
26
+ def prepare_image
27
+ super
28
+ dimg.builder.setup(image)
29
+ end
30
+ end # Setup
31
+ end # Setup
32
+ end # Stage
33
+ end # Build
34
+ end # Dimg
35
+ end # Dapp