dapp 0.10.2 → 0.36.24

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 (287) hide show
  1. checksums.yaml +5 -5
  2. data/bin/dapp +77 -15
  3. data/config/en/common.yml +20 -11
  4. data/config/en/net_status.yml +108 -27
  5. data/lib/dapp/cli/cli.rb +1 -0
  6. data/lib/dapp/cli/command/base.rb +111 -0
  7. data/lib/dapp/cli/command/sample/base.rb +28 -0
  8. data/lib/dapp/cli/command/sample/create.rb +24 -0
  9. data/lib/dapp/cli/command/sample/list.rb +25 -0
  10. data/lib/dapp/cli/command/sample.rb +20 -0
  11. data/lib/dapp/cli/command/slug.rb +26 -0
  12. data/lib/dapp/cli/command/update.rb +65 -0
  13. data/lib/dapp/cli/options/ssh.rb +18 -0
  14. data/lib/dapp/cli/options/tag.rb +51 -0
  15. data/lib/dapp/cli.rb +11 -3
  16. data/lib/dapp/config/config.rb +21 -0
  17. data/lib/dapp/config/directive/base.rb +100 -3
  18. data/lib/dapp/core_ext/hash.rb +14 -0
  19. data/lib/dapp/core_ext/pathname.rb +6 -4
  20. data/lib/dapp/dapp/chef.rb +1 -9
  21. data/lib/dapp/dapp/command/common.rb +24 -0
  22. data/lib/dapp/dapp/command/sample/common.rb +54 -0
  23. data/lib/dapp/dapp/command/sample/create.rb +57 -0
  24. data/lib/dapp/dapp/command/sample/list.rb +13 -0
  25. data/lib/dapp/dapp/command/slug.rb +11 -0
  26. data/lib/dapp/dapp/dapp_config.rb +85 -0
  27. data/lib/dapp/dapp/dappfile.rb +108 -27
  28. data/lib/dapp/dapp/deps/base.rb +9 -32
  29. data/lib/dapp/dapp/deps/common.rb +26 -0
  30. data/lib/dapp/dapp/deps/gitartifact.rb +2 -20
  31. data/lib/dapp/dapp/deps/toolchain.rb +11 -0
  32. data/lib/dapp/dapp/git_artifact.rb +6 -4
  33. data/lib/dapp/dapp/lock.rb +6 -5
  34. data/lib/dapp/dapp/logging/base.rb +32 -20
  35. data/lib/dapp/dapp/logging/i18n.rb +5 -1
  36. data/lib/dapp/dapp/logging/process.rb +6 -6
  37. data/lib/dapp/dapp/option_tags.rb +98 -0
  38. data/lib/dapp/dapp/ruby2go.rb +130 -0
  39. data/lib/dapp/dapp/sentry.rb +97 -0
  40. data/lib/dapp/dapp/shellout/base.rb +26 -18
  41. data/lib/dapp/dapp/shellout/streaming.rb +2 -2
  42. data/lib/dapp/dapp/slug.rb +12 -0
  43. data/lib/dapp/dapp/ssh_agent.rb +25 -7
  44. data/lib/dapp/dapp.rb +192 -41
  45. data/lib/dapp/deployment.rb +1 -0
  46. data/lib/dapp/dimg/artifact.rb +12 -4
  47. data/lib/dapp/dimg/build/stage/artifact_base.rb +26 -30
  48. data/lib/dapp/dimg/build/stage/artifact_default.rb +50 -28
  49. data/lib/dapp/dimg/build/stage/base.rb +187 -52
  50. data/lib/dapp/dimg/build/stage/before_install.rb +4 -15
  51. data/lib/dapp/dimg/build/stage/before_install_artifact.rb +4 -0
  52. data/lib/dapp/dimg/build/stage/before_setup.rb +1 -20
  53. data/lib/dapp/dimg/build/stage/build_artifact.rb +1 -20
  54. data/lib/dapp/dimg/build/stage/docker_instructions.rb +5 -4
  55. data/lib/dapp/dimg/build/stage/from.rb +62 -9
  56. data/lib/dapp/dimg/build/stage/ga_archive.rb +14 -1
  57. data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +1 -5
  58. data/lib/dapp/dimg/build/stage/ga_base.rb +5 -35
  59. data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +15 -34
  60. data/lib/dapp/dimg/build/stage/ga_related_base.rb +21 -0
  61. data/lib/dapp/dimg/build/stage/import_artifact.rb +22 -11
  62. data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +6 -2
  63. data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +6 -2
  64. data/lib/dapp/dimg/build/stage/install/install.rb +1 -19
  65. data/lib/dapp/dimg/build/stage/instructions.rb +27 -0
  66. data/lib/dapp/dimg/build/stage/mod/group.rb +19 -7
  67. data/lib/dapp/dimg/build/stage/mod/logging.rb +15 -19
  68. data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +24 -1
  69. data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +6 -2
  70. data/lib/dapp/dimg/build/stage/setup/setup.rb +1 -19
  71. data/lib/dapp/dimg/builder/ansible.rb +5 -0
  72. data/lib/dapp/dimg/builder/chef/cookbook.rb +8 -8
  73. data/lib/dapp/dimg/builder/chef.rb +29 -16
  74. data/lib/dapp/dimg/builder/none.rb +1 -34
  75. data/lib/dapp/dimg/builder/ruby2go.rb +57 -0
  76. data/lib/dapp/dimg/builder/shell.rb +1 -20
  77. data/lib/dapp/dimg/cli/cli.rb +2 -1
  78. data/lib/dapp/dimg/cli/command/base.rb +24 -0
  79. data/lib/dapp/dimg/cli/command/dimg/bp.rb +60 -0
  80. data/lib/dapp/dimg/cli/command/dimg/build.rb +43 -0
  81. data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/export.rb +9 -4
  82. data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/import.rb +4 -4
  83. data/lib/dapp/dimg/cli/{build_context.rb → command/dimg/build_context.rb} +5 -5
  84. data/lib/dapp/dimg/cli/{cleanup.rb → command/dimg/cleanup.rb} +4 -6
  85. data/lib/dapp/dimg/cli/command/dimg/cleanup_repo.rb +47 -0
  86. data/lib/dapp/dimg/cli/command/dimg/flush_local.rb +24 -0
  87. data/lib/dapp/dimg/cli/command/dimg/flush_repo.rb +36 -0
  88. data/lib/dapp/dimg/cli/{list.rb → command/dimg/list.rb} +6 -3
  89. data/lib/dapp/dimg/cli/{mrproper.rb → command/dimg/mrproper.rb} +4 -4
  90. data/lib/dapp/dimg/cli/command/dimg/push.rb +39 -0
  91. data/lib/dapp/dimg/cli/{run.rb → command/dimg/run.rb} +30 -15
  92. data/lib/dapp/dimg/cli/{spush.rb → command/dimg/spush.rb} +4 -4
  93. data/lib/dapp/dimg/cli/{stage_image.rb → command/dimg/stage_image.rb} +12 -3
  94. data/lib/dapp/dimg/cli/command/dimg/stages/base.rb +13 -0
  95. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_local.rb +13 -9
  96. data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_repo.rb +6 -8
  97. data/lib/dapp/dimg/cli/command/dimg/stages/flush_local.rb +21 -0
  98. data/lib/dapp/dimg/cli/command/dimg/stages/flush_repo.rb +28 -0
  99. data/lib/dapp/dimg/cli/command/dimg/stages/pull.rb +34 -0
  100. data/lib/dapp/dimg/cli/command/dimg/stages/push.rb +30 -0
  101. data/lib/dapp/dimg/cli/command/dimg/stages.rb +22 -0
  102. data/lib/dapp/dimg/cli/command/dimg/tag.rb +24 -0
  103. data/lib/dapp/dimg/cli/command/dimg.rb +31 -0
  104. data/lib/dapp/dimg/cli/options/introspection.rb +45 -0
  105. data/lib/dapp/dimg/config/config.rb +24 -0
  106. data/lib/dapp/dimg/config/directive/artifact.rb +13 -15
  107. data/lib/dapp/dimg/config/directive/artifact_base.rb +13 -8
  108. data/lib/dapp/dimg/config/directive/artifact_dimg.rb +12 -0
  109. data/lib/dapp/dimg/config/directive/artifact_group.rb +60 -0
  110. data/lib/dapp/dimg/config/directive/dimg/instance_methods.rb +203 -0
  111. data/lib/dapp/dimg/config/directive/dimg/validation.rb +217 -0
  112. data/lib/dapp/dimg/config/directive/dimg.rb +36 -0
  113. data/lib/dapp/dimg/config/directive/dimg_group.rb +73 -0
  114. data/lib/dapp/dimg/config/directive/dimg_group_base.rb +46 -0
  115. data/lib/dapp/dimg/config/directive/docker/artifact.rb +5 -0
  116. data/lib/dapp/dimg/config/directive/docker/base.rb +2 -3
  117. data/lib/dapp/dimg/config/directive/docker/dimg.rb +4 -4
  118. data/lib/dapp/dimg/config/directive/git_artifact_local.rb +24 -5
  119. data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +23 -12
  120. data/lib/dapp/dimg/config/directive/mount.rb +11 -3
  121. data/lib/dapp/dimg/config/directive/shell/dimg.rb +2 -2
  122. data/lib/dapp/dimg/dapp/command/bp.rb +3 -5
  123. data/lib/dapp/dimg/dapp/command/build.rb +4 -6
  124. data/lib/dapp/dimg/dapp/command/build_context/common.rb +2 -2
  125. data/lib/dapp/dimg/dapp/command/build_context/export.rb +14 -14
  126. data/lib/dapp/dimg/dapp/command/build_context/import.rb +28 -23
  127. data/lib/dapp/dimg/dapp/command/cleanup.rb +4 -11
  128. data/lib/dapp/dimg/dapp/command/cleanup_repo.rb +143 -0
  129. data/lib/dapp/dimg/dapp/command/common.rb +148 -38
  130. data/lib/dapp/dimg/dapp/command/flush_local.rb +25 -0
  131. data/lib/dapp/dimg/dapp/command/flush_repo.rb +25 -0
  132. data/lib/dapp/dimg/dapp/command/list.rb +1 -1
  133. data/lib/dapp/dimg/dapp/command/mrproper.rb +16 -63
  134. data/lib/dapp/dimg/dapp/command/push.rb +11 -16
  135. data/lib/dapp/dimg/dapp/command/ruby2go_cleanup.rb +48 -0
  136. data/lib/dapp/dimg/dapp/command/run.rb +4 -4
  137. data/lib/dapp/dimg/dapp/command/spush.rb +4 -5
  138. data/lib/dapp/dimg/dapp/command/stage_image.rb +2 -2
  139. data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +13 -115
  140. data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +23 -102
  141. data/lib/dapp/dimg/dapp/command/stages/common.rb +57 -39
  142. data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +13 -7
  143. data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +14 -8
  144. data/lib/dapp/dimg/dapp/command/stages/pull.rb +4 -13
  145. data/lib/dapp/dimg/dapp/command/stages/push.rb +4 -9
  146. data/lib/dapp/dimg/dapp/command/tag.rb +4 -6
  147. data/lib/dapp/dimg/dapp/config_artifact_group.rb +20 -0
  148. data/lib/dapp/dimg/dapp/dapp.rb +40 -0
  149. data/lib/dapp/dimg/dapp/dappfile.rb +43 -0
  150. data/lib/dapp/dimg/dapp/dimg.rb +41 -0
  151. data/lib/dapp/dimg/dimg/git_artifact.rb +25 -11
  152. data/lib/dapp/dimg/dimg/path.rb +7 -9
  153. data/lib/dapp/dimg/dimg/stages.rb +27 -15
  154. data/lib/dapp/dimg/dimg.rb +172 -69
  155. data/lib/dapp/dimg/docker_registry/base.rb +31 -74
  156. data/lib/dapp/dimg/docker_registry/dimg.rb +55 -0
  157. data/lib/dapp/dimg/docker_registry.rb +5 -23
  158. data/lib/dapp/dimg/error/build.rb +1 -1
  159. data/lib/dapp/dimg/error/chef.rb +1 -5
  160. data/lib/dapp/dimg/error/{command.rb → default.rb} +1 -1
  161. data/lib/dapp/dimg/error/dimg.rb +1 -1
  162. data/lib/dapp/dimg/error/lock.rb +1 -1
  163. data/lib/dapp/dimg/error/registry.rb +1 -1
  164. data/lib/dapp/dimg/error/rugged.rb +1 -1
  165. data/lib/dapp/dimg/error/tar_writer.rb +1 -1
  166. data/lib/dapp/dimg/git_artifact.rb +195 -179
  167. data/lib/dapp/dimg/git_repo/base.rb +49 -45
  168. data/lib/dapp/dimg/git_repo/local.rb +45 -0
  169. data/lib/dapp/dimg/git_repo/own.rb +3 -31
  170. data/lib/dapp/dimg/git_repo/remote.rb +65 -26
  171. data/lib/dapp/dimg/image/argument.rb +15 -50
  172. data/lib/dapp/dimg/image/dimg.rb +15 -0
  173. data/lib/dapp/dimg/image/scratch.rb +35 -9
  174. data/lib/dapp/dimg/image/stage.rb +223 -44
  175. data/lib/dapp/dimg/lock/file.rb +4 -4
  176. data/lib/dapp/downloader.rb +117 -0
  177. data/lib/dapp/error/base.rb +1 -5
  178. data/lib/dapp/error/command.rb +5 -0
  179. data/lib/dapp/error/config.rb +5 -0
  180. data/lib/dapp/error/dapp.rb +1 -1
  181. data/lib/dapp/error/dappfile.rb +1 -1
  182. data/lib/dapp/error/default.rb +11 -0
  183. data/lib/dapp/error/mod/user.rb +11 -0
  184. data/lib/dapp/error/shellout.rb +1 -1
  185. data/lib/dapp/exception/base.rb +1 -1
  186. data/lib/dapp/helper/case_conversion.rb +17 -0
  187. data/lib/dapp/helper/cli.rb +18 -7
  188. data/lib/dapp/helper/net_status.rb +5 -1
  189. data/lib/dapp/helper/sha256.rb +1 -1
  190. data/lib/dapp/helper/tar.rb +31 -0
  191. data/lib/dapp/helper/trivia.rb +40 -1
  192. data/lib/dapp/helper/url.rb +23 -0
  193. data/lib/dapp/helper/yaml.rb +24 -0
  194. data/lib/dapp/kube/cli/cli.rb +1 -0
  195. data/lib/dapp/kube/cli/command/base.rb +14 -0
  196. data/lib/dapp/kube/cli/command/kube/chart_create.rb +19 -0
  197. data/lib/dapp/kube/cli/command/kube/deploy.rb +80 -0
  198. data/lib/dapp/kube/cli/command/kube/dismiss.rb +31 -0
  199. data/lib/dapp/kube/cli/command/kube/lint.rb +53 -0
  200. data/lib/dapp/kube/cli/command/kube/minikube_setup.rb +19 -0
  201. data/lib/dapp/kube/cli/command/kube/render.rb +63 -0
  202. data/lib/dapp/kube/cli/command/kube/secret_edit.rb +30 -0
  203. data/lib/dapp/kube/cli/command/kube/secret_extract.rb +39 -0
  204. data/lib/dapp/kube/cli/command/kube/secret_generate.rb +34 -0
  205. data/lib/dapp/kube/cli/command/kube/secret_key_generate.rb +16 -0
  206. data/lib/dapp/kube/cli/command/kube/secret_regenerate.rb +29 -0
  207. data/lib/dapp/kube/cli/command/kube/value_get.rb +47 -0
  208. data/lib/dapp/kube/cli/command/kube.rb +28 -0
  209. data/lib/dapp/kube/dapp/command/chart_create.rb +103 -0
  210. data/lib/dapp/kube/dapp/command/common.rb +379 -0
  211. data/lib/dapp/kube/dapp/command/deploy.rb +351 -0
  212. data/lib/dapp/kube/dapp/command/dismiss.rb +50 -0
  213. data/lib/dapp/kube/dapp/command/lint.rb +69 -0
  214. data/lib/dapp/kube/dapp/command/minikube_setup.rb +402 -0
  215. data/lib/dapp/kube/dapp/command/render.rb +54 -0
  216. data/lib/dapp/kube/dapp/command/ruby2go.rb +17 -0
  217. data/lib/dapp/kube/dapp/command/secret_edit.rb +21 -0
  218. data/lib/dapp/kube/dapp/command/secret_extract.rb +17 -0
  219. data/lib/dapp/kube/dapp/command/secret_generate.rb +21 -0
  220. data/lib/dapp/kube/dapp/command/secret_key_generate.rb +13 -0
  221. data/lib/dapp/kube/dapp/command/secret_regenerate.rb +13 -0
  222. data/lib/dapp/kube/dapp/command/value_get.rb +32 -0
  223. data/lib/dapp/kube/dapp/dapp.rb +26 -0
  224. data/lib/dapp/kube/error/default.rb +7 -0
  225. data/lib/dapp/kube/helm/release.rb +189 -0
  226. data/lib/dapp/kube/helm/values.rb +148 -0
  227. data/lib/dapp/kube/helm.rb +5 -0
  228. data/lib/dapp/kube/kubernetes/client/error.rb +43 -0
  229. data/lib/dapp/kube/kubernetes/client/resource/base.rb +33 -0
  230. data/lib/dapp/kube/kubernetes/client/resource/deployment.rb +11 -0
  231. data/lib/dapp/kube/kubernetes/client/resource/event.rb +8 -0
  232. data/lib/dapp/kube/kubernetes/client/resource/job.rb +27 -0
  233. data/lib/dapp/kube/kubernetes/client/resource/pod.rb +62 -0
  234. data/lib/dapp/kube/kubernetes/client/resource/replicaset.rb +8 -0
  235. data/lib/dapp/kube/kubernetes/client.rb +314 -0
  236. data/lib/dapp/kube/kubernetes/config.rb +132 -0
  237. data/lib/dapp/kube/kubernetes/error.rb +15 -0
  238. data/lib/dapp/kube/kubernetes/manager/base.rb +15 -0
  239. data/lib/dapp/kube/kubernetes/manager/container.rb +103 -0
  240. data/lib/dapp/kube/kubernetes/manager/deployment.rb +212 -0
  241. data/lib/dapp/kube/kubernetes/manager/job.rb +65 -0
  242. data/lib/dapp/kube/kubernetes/manager/pod.rb +69 -0
  243. data/lib/dapp/kube/kubernetes.rb +6 -0
  244. data/lib/dapp/kube/secret.rb +93 -0
  245. data/lib/dapp/kube.rb +1 -0
  246. data/lib/dapp/version.rb +2 -2
  247. data/lib/dapp.rb +155 -61
  248. metadata +208 -61
  249. data/lib/dapp/cli/base.rb +0 -63
  250. data/lib/dapp/config/base.rb +0 -54
  251. data/lib/dapp/config/error/config.rb +0 -7
  252. data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +0 -27
  253. data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +0 -20
  254. data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +0 -22
  255. data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -22
  256. data/lib/dapp/dimg/build/stage/mod/git_artifact_dependencies.rb +0 -23
  257. data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -32
  258. data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -22
  259. data/lib/dapp/dimg/cli/base.rb +0 -16
  260. data/lib/dapp/dimg/cli/bp.rb +0 -37
  261. data/lib/dapp/dimg/cli/build.rb +0 -64
  262. data/lib/dapp/dimg/cli/dimg.rb +0 -30
  263. data/lib/dapp/dimg/cli/push.rb +0 -61
  264. data/lib/dapp/dimg/cli/stages/flush_local.rb +0 -23
  265. data/lib/dapp/dimg/cli/stages/flush_repo.rb +0 -24
  266. data/lib/dapp/dimg/cli/stages/pull.rb +0 -28
  267. data/lib/dapp/dimg/cli/stages/push.rb +0 -24
  268. data/lib/dapp/dimg/cli/stages.rb +0 -22
  269. data/lib/dapp/dimg/cli/tag.rb +0 -24
  270. data/lib/dapp/dimg/config/artifact_dimg.rb +0 -17
  271. data/lib/dapp/dimg/config/artifact_group.rb +0 -43
  272. data/lib/dapp/dimg/config/base.rb +0 -7
  273. data/lib/dapp/dimg/config/dimg/instance_methods.rb +0 -179
  274. data/lib/dapp/dimg/config/dimg/validation.rb +0 -126
  275. data/lib/dapp/dimg/config/dimg.rb +0 -24
  276. data/lib/dapp/dimg/config/dimg_group.rb +0 -61
  277. data/lib/dapp/dimg/config/dimg_group_base.rb +0 -54
  278. data/lib/dapp/dimg/config/dimg_group_main.rb +0 -22
  279. data/lib/dapp/dimg/dapp/command.rb +0 -21
  280. data/lib/dapp/dimg/dimg/tags.rb +0 -65
  281. data/lib/dapp/dimg/docker_registry/base/authorization.rb +0 -63
  282. data/lib/dapp/dimg/docker_registry/base/request.rb +0 -34
  283. data/lib/dapp/dimg/docker_registry/default.rb +0 -18
  284. data/lib/dapp/dimg/error/base.rb +0 -7
  285. data/lib/dapp/dimg/error/config.rb +0 -7
  286. data/lib/dapp/dimg/exception/introspect_image.rb +0 -7
  287. data/lib/dapp/dimg/image/docker.rb +0 -134
@@ -1,11 +1,19 @@
1
1
  module Dapp
2
2
  module Dimg
3
3
  class Artifact < Dimg
4
+ def name
5
+ dapp.consistent_uniq_slugify(config._name) unless config._name.nil?
6
+ end
7
+
4
8
  def after_stages_build!
5
9
  end
6
10
 
7
- def stage_should_be_introspected?(name)
8
- dapp.cli_options[:introspect_artifact_stage] == name
11
+ def stage_should_be_introspected_before_build?(name)
12
+ dapp.options[:introspect_artifact_before] == name
13
+ end
14
+
15
+ def stage_should_be_introspected_after_build?(name)
16
+ dapp.options[:introspect_artifact_stage] == name
9
17
  end
10
18
 
11
19
  def artifact?
@@ -16,8 +24,8 @@ module Dapp
16
24
  false
17
25
  end
18
26
 
19
- def last_stage
20
- @last_stage ||= Build::Stage::BuildArtifact.new(self)
27
+ def last_stage_class
28
+ Build::Stage::BuildArtifact
21
29
  end
22
30
  end # Artifact
23
31
  end # Dimg
@@ -4,27 +4,27 @@ module Dapp
4
4
  module Stage
5
5
  class ArtifactBase < Base
6
6
  def dependencies
7
- artifacts_signatures
7
+ @dependencies ||= artifacts_signatures
8
8
  end
9
9
 
10
10
  def prepare_image
11
- super
12
- artifacts_dimgs_build!
13
- artifacts_labels = {}
14
- artifacts.each do |artifact|
15
- apply_artifact(artifact, image)
16
- artifacts_labels["dapp-artifact-#{artifact[:name]}".to_sym] = artifact[:dimg].last_stage.image.built_id
11
+ super do
12
+ artifacts_dimgs_build!
13
+ artifacts_labels = {}
14
+ artifacts.each do |artifact|
15
+ apply_artifact(artifact, image)
16
+ artifacts_labels["dapp-artifact-#{artifact[:dimg].name}".to_sym] = artifact[:dimg].last_stage.image.built_id
17
+ end
18
+ image.add_service_change_label artifacts_labels
17
19
  end
18
- image.add_service_change_label artifacts_labels
19
20
  end
20
21
 
21
22
  def artifacts
22
23
  @artifacts ||= begin
23
24
  dimg.config.public_send("_#{name}").map do |artifact|
24
- artifact_dimg = ::Dapp::Dimg::Artifact.new(config: artifact._config,
25
- dapp: dimg.dapp,
26
- ignore_git_fetch: dimg.ignore_git_fetch)
27
- { name: artifact._config._name, options: artifact._artifact_options, dimg: artifact_dimg }
25
+ artifact_dimg = dimg.dapp.artifact_dimg(config: artifact._config,
26
+ ignore_signature_auto_calculation: dimg.ignore_signature_auto_calculation)
27
+ { options: artifact._artifact_options, dimg: artifact_dimg }
28
28
  end
29
29
  end
30
30
  end
@@ -48,29 +48,25 @@ module Dapp
48
48
  end
49
49
 
50
50
  def artifacts_dimgs_build!
51
- artifacts.each do |artifact|
52
- process = dimg.dapp.t(code: 'process.artifact_building', data: { name: artifact[:name] })
53
- dimg.dapp.log_secondary_process(process,
54
- short: !dimg.dapp.log_verbose?,
55
- quiet: dimg.artifact? && !dimg.dapp.log_verbose?) do
56
- dimg.dapp.with_log_indent do
57
- artifact[:dimg].build!
58
- end
59
- end
51
+ artifacts.uniq { |artifact| artifact[:dimg] }.each do |artifact|
52
+ process = dimg.dapp.t(code: 'process.artifact_building', data: { name: artifact[:dimg].name })
53
+ dimg.dapp.log_secondary_process(process) { artifact[:dimg].build! }
60
54
  end
61
55
  end
62
56
 
63
- def run_artifact_dimg(artifact_dimg, artifact_name, commands)
57
+ def run_artifact_dimg(artifact_dimg, commands)
64
58
  docker_options = ['--rm',
65
- "--volume #{dimg.tmp_path('artifact', artifact_name)}:#{artifact_dimg.container_tmp_path(artifact_name)}",
66
- "--volumes-from #{dimg.dapp.base_container}",
67
- "--entrypoint #{dimg.dapp.bash_bin}"]
68
- dimg.dapp.log_secondary_process(dimg.dapp.t(code: 'process.artifact_copy',
69
- data: { name: artifact_name }),
70
- short: true,
71
- quiet: dimg.artifact? && !dimg.dapp.log_verbose?) do
72
- artifact_dimg.run(docker_options, [%(-ec '#{dimg.dapp.shellout_pack(commands)}')])
59
+ "--volume=#{dimg.tmp_path('artifact', artifact_dimg.name )}:#{artifact_dimg.container_tmp_path(artifact_dimg.name)}",
60
+ "--volumes-from=#{dimg.dapp.toolchain_container}",
61
+ "--volumes-from=#{dimg.dapp.base_container}",
62
+ "--entrypoint=#{dimg.dapp.bash_bin}"]
63
+ dimg.dapp.log_secondary_process(dimg.dapp.t(code: 'process.artifact_copy', data:
64
+ { name: artifact_dimg.name }), short: true) do
65
+ artifact_dimg.run(docker_options, ["-ec", dimg.dapp.shellout_pack(commands)])
73
66
  end
67
+ rescue Error::Dimg => e
68
+ raise unless e.net_status[:code] == :dimg_not_run
69
+ raise Error::Build, code: :export_failed, data: { artifact_name: artifact_dimg.name }
74
70
  end
75
71
  # rubocop:enable Metrics/AbcSize
76
72
  end # ArtifactBase
@@ -8,7 +8,6 @@ module Dapp
8
8
  def apply_artifact(artifact, image)
9
9
  return if dimg.dapp.dry_run?
10
10
 
11
- artifact_name = artifact[:name]
12
11
  artifact_dimg = artifact[:dimg]
13
12
  cwd = artifact[:options][:cwd]
14
13
  include_paths = artifact[:options][:include_paths]
@@ -17,12 +16,14 @@ module Dapp
17
16
  group = artifact[:options][:group]
18
17
  to = artifact[:options][:to]
19
18
 
20
- command = safe_cp(cwd, artifact_dimg.container_tmp_path(artifact_name).to_s, Process.uid, Process.gid, include_paths, exclude_paths)
21
- run_artifact_dimg(artifact_dimg, artifact_name, command)
19
+ export_folder_name = SecureRandom.uuid
22
20
 
23
- command = safe_cp(dimg.container_tmp_path('artifact', artifact_name).to_s, to, owner, group, include_paths, exclude_paths)
21
+ command = safe_cp(cwd, artifact_dimg.container_tmp_path(artifact_dimg.name, export_folder_name).to_s, nil, nil, include_paths, exclude_paths)
22
+ run_artifact_dimg(artifact_dimg, command)
23
+
24
+ command = safe_cp(dimg.container_tmp_path('artifact', artifact_dimg.name, export_folder_name).to_s, to, owner, group, include_paths, exclude_paths)
24
25
  image.add_command command
25
- image.add_volume "#{dimg.tmp_path('artifact', artifact_name)}:#{dimg.container_tmp_path('artifact', artifact_name)}:ro"
26
+ image.add_volume "#{dimg.tmp_path('artifact', artifact_dimg.name)}:#{dimg.container_tmp_path('artifact', artifact_dimg.name)}:ro"
26
27
  end
27
28
  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
28
29
 
@@ -30,32 +31,53 @@ module Dapp
30
31
 
31
32
  # rubocop:disable Metrics/ParameterLists
32
33
  def safe_cp(from, to, owner, group, include_paths = [], exclude_paths = [])
33
- credentials = ''
34
- credentials += "-o #{owner} " if owner
35
- credentials += "-g #{group} " if group
36
- excludes = find_command_excludes(from, exclude_paths).join(' ')
37
-
38
- copy_files = proc do |from_, path_ = ''|
39
- "if [[ -d #{File.join(from_, path_)} ]] || [[ -f #{File.join(from_, path_)} ]]; then " \
40
- "#{dimg.dapp.find_bin} #{File.join(from_, path_)} #{excludes} -type f -exec " \
41
- "#{dimg.dapp.bash_bin} -ec '#{dimg.dapp.install_bin} -D #{credentials} \"{}\" " \
42
- "\"#{File.join(to, '$(echo "{}" | ' \
43
- "#{dimg.dapp.sed_bin} -e \"s/^#{from_.gsub('/', '\\/')}\\///g\")")}\"' \\; ;" \
44
- 'fi'
45
- end
34
+ ''.tap do |cmd|
35
+ cmd << "#{dimg.dapp.mkdir_bin} -p #{File.dirname(to)}"
36
+ cmd << ' && '
37
+ cmd << dimg.dapp.rsync_bin
38
+ cmd << ' --archive --links --inplace'
39
+ cmd << " --chown=#{owner}:#{group}" if owner or group
46
40
 
47
- commands = []
48
- commands << [dimg.dapp.install_bin, credentials, '-d', to].join(' ')
49
- commands.concat(include_paths.empty? ? Array(copy_files.call(from)) : include_paths.map { |path| copy_files.call(from, path) })
50
- commands << "#{dimg.dapp.find_bin} #{to} -type d -exec " \
51
- "#{dimg.dapp.bash_bin} -ec '#{dimg.dapp.install_bin} -d #{credentials} {}' \\;"
52
- commands.join(' && ')
53
- end
54
- # rubocop:enable Metrics/ParameterLists
41
+ if include_paths.any?
42
+ # Если указали include_paths это означает, что надо копировать
43
+ # только указанные пути. Поэтому exclude_paths в приоритете, т.к. в данном режиме
44
+ # exclude_paths может относится только к путям, указанным в include_paths.
45
+ # При этом случай, когда в include_paths указали более специальный путь, чем в exclude_paths,
46
+ # будет обрабатываться в пользу exclude, этот путь не скопируется.
47
+ exclude_paths.each do |p|
48
+ cmd << " --filter='-/ #{File.join(from, p)}'"
49
+ end
50
+
51
+ include_paths.each do |p|
52
+ target_path = File.join(from, p)
55
53
 
56
- def find_command_excludes(from, exclude_paths)
57
- exclude_paths.map { |path| "-not \\( -path #{File.join(from, path)} -prune \\)" }
54
+ # Генерируем разрешающее правило для каждого элемента пути
55
+ Pathname.new(target_path).descend do |path_part|
56
+ cmd << " --filter='+/ #{path_part}'"
57
+ end
58
+
59
+ # * На данный момент не знаем директорию или файл имел в виду пользователь,
60
+ # поэтому подставляем фильтры для обоих возможных случаев.
61
+ # * Автоматом подставляем паттерн ** для включения файлов, содержащихся в
62
+ # директории, которую пользователь указал в include_paths.
63
+ cmd << " --filter='+/ #{target_path}'"
64
+ cmd << " --filter='+/ #{File.join(target_path, '**')}'"
65
+ end
66
+
67
+ # Все что не подошло по include — исключается
68
+ cmd << " --filter='-/ #{File.join(from, '**')}'"
69
+ else
70
+ exclude_paths.each do |p|
71
+ cmd << " --filter='-/ #{File.join(from, p)}'"
72
+ end
73
+ end
74
+
75
+ # Слэш после from — это инструкция rsync'у для копирования
76
+ # содержимого директории from, а не самой директории.
77
+ cmd << " $(if [ -d #{from} ] ; then echo #{from}/ ; else echo #{from} ; fi) #{to}"
78
+ end
58
79
  end
80
+ # rubocop:enable Metrics/ParameterLists
59
81
  end # ArtifactDefault
60
82
  end # Stage
61
83
  end # Build
@@ -17,6 +17,39 @@ module Dapp
17
17
  @next_stage.prev_stage = self
18
18
  end
19
19
 
20
+ def get_ruby2go_state_hash
21
+ {}.tap {|hash|
22
+ # NOTICE: Delete this when stage has been moved to go.
23
+ # NOTICE: This is data for build.StubStage and build.StubImage.
24
+
25
+ hash["Image"] = {
26
+ "Labels" => image.labels
27
+ .map{|k,v| [k.to_s, v.to_s]}
28
+ .to_h,
29
+ "ServiceChangeLabels" => image.send(:service_change_options)
30
+ .fetch(:label, {})
31
+ .map{|k,v| [k.to_s, v.to_s]}
32
+ .to_h,
33
+ }
34
+
35
+ if prev_stage
36
+ hash["PrevStage"] = prev_stage.get_ruby2go_state_hash
37
+ end
38
+ }
39
+ end
40
+
41
+ def set_ruby2go_state_hash(hash)
42
+ if prev_stage
43
+ prev_stage.set_ruby2go_state_hash(hash["PrevStage"])
44
+ end
45
+
46
+ # NOTICE: This is data from build.StubImage.
47
+
48
+ hash["Image"]["ServiceChangeLabels"].each do |k, v|
49
+ image.add_service_change_label(k.to_sym => v)
50
+ end
51
+ end
52
+
20
53
  # rubocop:disable Metrics/PerceivedComplexity
21
54
  def build_lock!
22
55
  return yield if dimg.dapp.dry_run?
@@ -27,11 +60,14 @@ module Dapp
27
60
  no_lock = false
28
61
 
29
62
  dimg.dapp.lock("#{dimg.dapp.name}.image.#{image.name}") do
30
- image.cache_reset
63
+ image.reset_image_inspect
31
64
 
32
65
  if image_should_be_locked?
33
66
  yield
34
67
  else
68
+ stage = self
69
+ stage.renew until (stage = stage.next_stage).nil?
70
+
35
71
  no_lock = true
36
72
  end
37
73
  end
@@ -47,17 +83,11 @@ module Dapp
47
83
  end
48
84
  # rubocop:enable Metrics/MethodLength, Metrics/PerceivedComplexity
49
85
 
50
- # rubocop:disable Metrics/CyclomaticComplexity
51
86
  def build!
52
- return if build_should_be_skipped?
53
87
  prev_stage.build! if prev_stage
54
- if image_should_be_build?
55
- prepare_image if !image.built? && !should_be_not_present? || should_be_introspected?
56
- log_image_build(&method(:image_build))
57
- end
58
- dimg.introspect_image!(image: image.built_id, options: image.send(:prepared_options)) if should_be_introspected?
88
+ renew if should_be_renewed?
89
+ image_build
59
90
  end
60
- # rubocop:enable Metrics/CyclomaticComplexity
61
91
 
62
92
  def save_in_cache!
63
93
  prev_stage.save_in_cache! if prev_stage
@@ -77,41 +107,78 @@ module Dapp
77
107
 
78
108
  def prepare_image
79
109
  return if dimg.dapp.dry_run?
80
- image.add_volumes_from dimg.dapp.base_container
81
110
 
82
111
  image_add_mounts
83
112
 
84
113
  image.add_service_change_label dapp: dimg.stage_dapp_label
85
114
  image.add_service_change_label 'dapp-version'.to_sym => ::Dapp::VERSION
86
115
  image.add_service_change_label 'dapp-cache-version'.to_sym => ::Dapp::BUILD_CACHE_VERSION
116
+ image.add_service_change_label 'dapp-dimg'.to_sym => false
87
117
  image.add_service_change_label 'dapp-dev-mode'.to_sym => true if dimg.dev_mode?
88
118
 
89
119
  if dimg.dapp.ssh_auth_sock
90
120
  image.add_volume "#{dimg.dapp.ssh_auth_sock}:/tmp/dapp-ssh-agent"
91
- image.add_env 'SSH_AUTH_SOCK', '/tmp/dapp-ssh-agent'
121
+ image.add_env SSH_AUTH_SOCK: '/tmp/dapp-ssh-agent'
92
122
  end
93
123
 
94
124
  yield if block_given?
95
125
  end
96
126
 
97
127
  def image_add_mounts
128
+ image_add_service_mounts
129
+ image_add_custom_mounts
130
+
131
+ image_add_mounts_labels
132
+ end
133
+
134
+ def image_add_service_mounts
98
135
  [:tmp_dir, :build_dir].each do |type|
99
136
  next if (mounts = adding_mounts_by_type(type)).empty?
100
137
 
101
138
  mounts.each do |path|
102
139
  absolute_path = File.expand_path(File.join('/', path))
103
- tmp_path = dimg.send(type, 'mount', absolute_path[1..-1]).tap(&:mkpath)
140
+ tmp_path = dimg.send(type, 'mount', dimg.dapp.consistent_uniq_slugify(absolute_path)).tap(&:mkpath)
104
141
  image.add_volume "#{tmp_path}:#{absolute_path}"
105
142
  end
143
+ end
144
+ end
145
+
146
+ def image_add_custom_mounts
147
+ adding_custom_dir_mounts.each do |from, to_pathes|
148
+ FileUtils.mkdir_p(from) unless File.exist?(from)
149
+ to_pathes.tap(&:uniq!).map { |to_path| image.add_volume "#{from}:#{to_path}" }
150
+ image.add_service_change_label :"dapp-mount-custom-dir-#{from.gsub('/', '--')}" => to_pathes.join(';')
151
+ end
152
+ end
106
153
 
154
+ def image_add_mounts_labels
155
+ [:tmp_dir, :build_dir].each do |type|
156
+ next if (mounts = adding_mounts_by_type(type)).empty?
107
157
  image.add_service_change_label :"dapp-mount-#{type.to_s.tr('_', '-')}" => mounts.join(';')
108
158
  end
159
+
160
+ adding_custom_dir_mounts.each do |from, to_pathes|
161
+ image.add_service_change_label :"dapp-mount-custom-dir-#{from.gsub('/', '--')}" => to_pathes.join(';')
162
+ end
109
163
  end
110
164
 
111
165
  def adding_mounts_by_type(type)
112
166
  (config_mounts_by_type(type) + labels_mounts_by_type(type)).uniq
113
167
  end
114
168
 
169
+ def adding_custom_dir_mounts
170
+ config_custom_dir_mounts.in_depth_merge(labels_custom_dir_mounts)
171
+ end
172
+
173
+ def config_custom_dir_mounts
174
+ dimg.config._custom_dir_mount.reduce({}) do |mounts, mount|
175
+ from_path = File.expand_path(mount._from)
176
+ mounts[from_path] ||= []
177
+ mounts[from_path] << mount._to
178
+ mounts
179
+ end
180
+ end
181
+
115
182
  def config_mounts_by_type(type)
116
183
  dimg.config.public_send("_#{type}_mount").map(&:_to)
117
184
  end
@@ -120,8 +187,11 @@ module Dapp
120
187
  from_image.labels.select { |l, _| l == "dapp-mount-#{type.to_s.tr('_', '-')}" }.map { |_, value| value.split(';') }.flatten
121
188
  end
122
189
 
123
- def image_should_be_build?
124
- (!empty? && !image.built?) || dimg.dapp.log_verbose?
190
+ def labels_custom_dir_mounts
191
+ from_image.labels.map do |label, value|
192
+ next unless label =~ /dapp-mount-custom-dir-(?<from>.+)/
193
+ [File.expand_path(Regexp.last_match(:from).gsub('--', '/')), value.split(';')]
194
+ end.compact.to_h
125
195
  end
126
196
 
127
197
  def empty?
@@ -133,18 +203,16 @@ module Dapp
133
203
  end
134
204
 
135
205
  def signature
136
- @signature ||= begin
137
- if empty?
138
- prev_stage.signature
139
- else
140
- args = []
141
- args << prev_stage.signature unless prev_stage.nil?
142
- args << dimg.build_cache_version
143
- args << builder_checksum
144
- args.concat(dependencies.flatten)
206
+ if empty?
207
+ prev_stage.signature
208
+ else
209
+ args = []
210
+ args << prev_stage.signature unless prev_stage.nil?
211
+ args << dimg.build_cache_version
212
+ args << builder_checksum
213
+ args.concat(dependencies.flatten)
145
214
 
146
- hashsum args
147
- end
215
+ hashsum args
148
216
  end
149
217
  end
150
218
 
@@ -156,25 +224,29 @@ module Dapp
156
224
  end
157
225
 
158
226
  def git_artifacts_dependencies
159
- local_git_artifacts_dependencies + remote_git_artifacts_dependencies
227
+ dimg.git_artifacts.map { |git_artifact| git_artifact.stage_dependencies_checksum(self) }
160
228
  end
161
229
 
162
- def local_git_artifacts_dependencies
163
- default_git_artifacts_dependencies(dimg.local_git_artifacts)
164
- end
165
-
166
- def remote_git_artifacts_dependencies
167
- default_git_artifacts_dependencies(dimg.remote_git_artifacts)
168
- end
169
-
170
- def default_git_artifacts_dependencies(git_artifacts)
171
- git_artifacts.map { |git_artifact| git_artifact.stage_dependencies_checksums(self) }
230
+ def layer_commit(git_artifact)
231
+ commits[git_artifact] ||= begin
232
+ if image.built?
233
+ image.labels[dimg.dapp.dimgstage_g_a_commit_label(git_artifact.paramshash)]
234
+ elsif g_a_stage? && !empty?
235
+ git_artifact.latest_commit
236
+ elsif prev_stage
237
+ prev_stage.layer_commit(git_artifact)
238
+ end
239
+ end
172
240
  end
173
241
 
174
242
  def dependencies
175
243
  []
176
244
  end
177
245
 
246
+ def dependencies_discard
247
+ @dependencies = nil
248
+ end
249
+
178
250
  def artifact?
179
251
  false
180
252
  end
@@ -183,28 +255,52 @@ module Dapp
183
255
  false
184
256
  end
185
257
 
186
- def prev_g_a_stage
187
- stage = self
188
- until (stage = stage.prev_stage).nil?
189
- return stage if stage.g_a_stage?
190
- end
258
+ protected
259
+
260
+ def renew
261
+ commits_discard
262
+ image_untag! if image_should_be_untagged?
263
+ image_reset
191
264
  end
192
265
 
193
- def next_g_a_stage
194
- stage = self
195
- until (stage = stage.next_stage).nil?
196
- return stage if stage.g_a_stage?
197
- end
266
+ def image_reset
267
+ Image::Stage.image_reset(image_name)
268
+ @image = nil
198
269
  end
199
270
 
200
- protected
271
+ def image_untag!
272
+ return if dimg.dapp.dry_run?
273
+ image.untag!
274
+ end
201
275
 
202
276
  def image_build
203
- image.build!
277
+ prepare_image if image_should_be_prepared?
278
+
279
+ introspect_image_before_build if image_should_be_introspected_before_build?
280
+
281
+ log_image_build do
282
+ dimg.dapp.log_process(log_name,
283
+ process: dimg.dapp.t(code: 'status.process.building'),
284
+ short: should_not_be_detailed?) { image.build! }
285
+ end unless empty?
286
+
287
+ introspect_image_after_build if image_should_be_introspected_after_build?
288
+ end
289
+
290
+ def introspect_image_before_build
291
+ introspect_image_default(from_image)
204
292
  end
205
293
 
206
- def build_should_be_skipped?
207
- image.built? && !dimg.dapp.log_verbose? && !should_be_introspected?
294
+ def introspect_image_after_build
295
+ introspect_image_default(image)
296
+ end
297
+
298
+ def introspect_image_default(introspected_image)
299
+ if introspected_image.built?
300
+ introspected_image.introspect!
301
+ else
302
+ dimg.dapp.log_warning(desc: { code: :introspect_image_impossible, data: { name: name } })
303
+ end
208
304
  end
209
305
 
210
306
  def should_be_tagged?
@@ -212,12 +308,43 @@ module Dapp
212
308
  end
213
309
 
214
310
  def image_should_be_locked?
215
- !(empty? || image.tagged? || should_be_not_present?)
311
+ !(empty? || image.built? || should_be_not_present?)
312
+ end
313
+
314
+ def image_should_be_prepared?
315
+ (!image.built? && !should_be_not_present? || image_should_be_introspected? && image.tagged?) && !dimg.dapp.dry_run?
316
+ end
317
+
318
+ def should_be_renewed?
319
+ current_or_related_image_should_be_untagged?
320
+ end
321
+
322
+ def image_should_be_untagged?
323
+ image.tagged? && current_or_related_image_should_be_untagged?
324
+ end
325
+
326
+ def current_or_related_image_should_be_untagged?
327
+ @current_or_related_image_should_be_untagged ||= begin
328
+ image_should_be_untagged_condition || begin
329
+ if prev_stage.nil?
330
+ false
331
+ else
332
+ prev_stage.current_or_related_image_should_be_untagged?
333
+ end
334
+ end
335
+ end
336
+ end
337
+
338
+ def image_should_be_untagged_condition
339
+ return false unless image.tagged?
340
+ dimg.git_artifacts.any? do |git_artifact|
341
+ !git_artifact.repo.commit_exists? layer_commit(git_artifact)
342
+ end
216
343
  end
217
344
 
218
345
  def should_be_not_present?
219
346
  return false if next_stage.nil?
220
- next_stage.image.tagged? || next_stage.should_be_not_present?
347
+ !current_or_related_image_should_be_untagged? && (next_stage.image.tagged? && !next_stage.image_should_be_untagged_condition || next_stage.should_be_not_present?)
221
348
  end
222
349
 
223
350
  def image_name
@@ -237,6 +364,14 @@ module Dapp
237
364
  end
238
365
  end
239
366
  end
367
+
368
+ def commits_discard
369
+ @commits = nil
370
+ end
371
+
372
+ def commits
373
+ @commits ||= {}
374
+ end
240
375
  end # Base
241
376
  end # Stage
242
377
  end # Build
@@ -2,30 +2,19 @@ module Dapp
2
2
  module Dimg
3
3
  module Build
4
4
  module Stage
5
- class BeforeInstall < Base
5
+ class BeforeInstall < Instructions
6
6
  def initialize(dimg, next_stage)
7
7
  @prev_stage = From.new(dimg, self)
8
8
  super
9
9
  end
10
10
 
11
- def empty?
12
- super && !dimg.builder.before_install?
13
- end
14
-
15
- def context
11
+ def dependencies
16
12
  [builder_checksum]
17
13
  end
18
14
 
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)
15
+ def image_should_be_untagged_condition
16
+ false
26
17
  end
27
-
28
- alias dependencies context
29
18
  end # BeforeInstall
30
19
  end # Stage
31
20
  end # Build
@@ -7,6 +7,10 @@ module Dapp
7
7
  @prev_stage = BeforeInstall.new(dimg, self)
8
8
  super
9
9
  end
10
+
11
+ def image_should_be_untagged_condition
12
+ false
13
+ end
10
14
  end # BeforeInstallArtifact
11
15
  end # Stage
12
16
  end # Build
@@ -2,30 +2,11 @@ module Dapp
2
2
  module Dimg
3
3
  module Build
4
4
  module Stage
5
- class BeforeSetup < Base
6
- include Mod::GitArtifactsDependencies
7
-
5
+ class BeforeSetup < Instructions
8
6
  def initialize(dimg, next_stage)
9
7
  @prev_stage = AfterInstallArtifact.new(dimg, self)
10
8
  super
11
9
  end
12
-
13
- def empty?
14
- !dimg.builder.before_setup?
15
- end
16
-
17
- def context
18
- [git_artifacts_dependencies, builder_checksum]
19
- end
20
-
21
- def builder_checksum
22
- dimg.builder.before_setup_checksum
23
- end
24
-
25
- def prepare_image
26
- super
27
- dimg.builder.before_setup(image)
28
- end
29
10
  end # BeforeSetup
30
11
  end # Stage
31
12
  end # Build