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,23 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module Build
4
- module Stage
5
- module Mod
6
- module GitArtifactsDependencies
7
- def local_git_artifacts_dependencies
8
- dimg.local_git_artifacts.map do |git_artifact|
9
- args = []
10
- args << self
11
- if dimg.dev_mode?
12
- args << git_artifact.latest_commit
13
- args << nil
14
- end
15
- git_artifact.stage_dependencies_checksums(*args)
16
- end
17
- end
18
- end
19
- end # Mod
20
- end # Stage
21
- end # Build
22
- end # Dimg
23
- end # Dapp
@@ -1,32 +0,0 @@
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_g_a_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
@@ -1,22 +0,0 @@
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
- dimg.stage_by_name(:setup).context
16
- end
17
- end # GAPreSetupPatchDependencies
18
- end
19
- end # Stage
20
- end # Build
21
- end # Dimg
22
- end # Dapp
@@ -1,16 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Base < ::Dapp::CLI::Base
5
- def run(argv = ARGV)
6
- self.class.parse_options(self, argv)
7
- ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: cli_arguments).public_send(run_method)
8
- end
9
-
10
- def run_method
11
- class_to_lowercase
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,37 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Bp < Push
5
- banner <<BANNER.freeze
6
- Usage:
7
-
8
- dapp dimg bp [options] [DIMG ...] REPO
9
-
10
- DIMG Dapp image to process [default: *].
11
- REPO Pushed image name.
12
-
13
- Options:
14
- BANNER
15
- option :tmp_dir_prefix,
16
- long: '--tmp-dir-prefix PREFIX',
17
- description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
18
-
19
- option :lock_timeout,
20
- long: '--lock-timeout TIMEOUT',
21
- description: 'Redefine resource locking timeout (in seconds)',
22
- proc: ->(v) { v.to_i }
23
-
24
- option :git_artifact_branch,
25
- long: '--git-artifact-branch BRANCH',
26
- description: 'Default branch to archive artifacts from'
27
-
28
- option :ssh_key,
29
- long: '--ssh-key SSH_KEY',
30
- description: ['Enable only specified ssh keys ',
31
- '(use system ssh-agent by default)'].join,
32
- default: nil,
33
- proc: ->(v) { composite_options(:ssh_key) << v }
34
- end
35
- end
36
- end
37
- end
@@ -1,64 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Build < Base
5
- banner <<BANNER.freeze
6
- Usage:
7
-
8
- dapp dimg build [options] [DIMG ...]
9
-
10
- DIMG Dapp image to process [default: *].
11
-
12
- Options:
13
- BANNER
14
- option :tmp_dir_prefix,
15
- long: '--tmp-dir-prefix PREFIX',
16
- description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
17
-
18
- option :lock_timeout,
19
- long: '--lock-timeout TIMEOUT',
20
- description: 'Redefine resource locking timeout (in seconds)',
21
- proc: ->(v) { v.to_i }
22
-
23
- option :git_artifact_branch,
24
- long: '--git-artifact-branch BRANCH',
25
- description: 'Default branch to archive artifacts from'
26
-
27
- option :introspect_error,
28
- long: '--introspect-error',
29
- boolean: true,
30
- default: false
31
-
32
- option :introspect_before_error,
33
- long: '--introspect-before-error',
34
- boolean: true,
35
- default: false
36
-
37
- option :introspect_stage,
38
- long: '--introspect-stage STAGE',
39
- proc: proc { |v| v.to_sym },
40
- in: [nil, :from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
41
- :g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact, :g_a_pre_setup_patch,
42
- :setup, :g_a_post_setup_patch, :after_setup_artifact, :g_a_latest_patch, :docker_instructions]
43
-
44
- option :introspect_artifact_stage,
45
- long: '--introspect-artifact-stage STAGE',
46
- proc: proc { |v| v.to_sym },
47
- in: [nil, :from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
48
- :g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact, :g_a_pre_setup_patch,
49
- :setup, :after_setup_artifact, :g_a_artifact_patch, :build_artifact]
50
-
51
- option :ssh_key,
52
- long: '--ssh-key SSH_KEY',
53
- description: ['Enable only specified ssh keys ',
54
- '(use system ssh-agent by default)'].join,
55
- default: nil,
56
- proc: ->(v) { composite_options(:ssh_key) << v }
57
-
58
- option :build_context_directory,
59
- long: '--build-context-directory DIR_PATH',
60
- default: nil
61
- end
62
- end
63
- end
64
- end
@@ -1,30 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Dimg < ::Dapp::CLI
5
- SUBCOMMANDS = ['build', 'push', 'spush', 'list', 'run', 'stages', 'cleanup', 'bp', 'mrproper', 'stage image', 'tag', 'build-context'].freeze
6
-
7
- banner <<BANNER.freeze
8
- Usage: dapp dimg [options] sub-command [sub-command options]
9
-
10
- Available subcommands: (for details, dapp dimg SUB-COMMAND --help)
11
-
12
- dapp dimg build [options] [DIMG ...]
13
- dapp dimg bp [options] [DIMG ...] REPO
14
- dapp dimg push [options] [DIMG ...] REPO
15
- dapp dimg spush [options] [DIMG] REPO
16
- dapp dimg tag [options] [DIMG] TAG
17
- dapp dimg list [options] [DIMG ...]
18
- dapp dimg run [options] [DIMG] [DOCKER ARGS]
19
- dapp dimg cleanup [options] [DIMG ...]
20
- dapp dimg mrproper [options]
21
- dapp dimg stage image [options] [DIMG]
22
- dapp dimg stages
23
- dapp dimg build-context
24
-
25
- Options:
26
- BANNER
27
- end
28
- end
29
- end
30
- end
@@ -1,61 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Push < Base
5
- banner <<BANNER.freeze
6
- Usage:
7
-
8
- dapp dimg push [options] [DIMG ...] REPO
9
-
10
- DIMG Dapp image to process [default: *].
11
-
12
- Options:
13
- BANNER
14
- option :lock_timeout,
15
- long: '--lock-timeout TIMEOUT',
16
- description: 'Redefine resource locking timeout (in seconds)',
17
- proc: ->(v) { v.to_i }
18
-
19
- option :git_artifact_branch,
20
- long: '--git-artifact-branch BRANCH',
21
- description: 'Default branch to archive artifacts from'
22
-
23
- option :tag,
24
- long: '--tag TAG',
25
- description: 'Add tag (can be used one or more times)',
26
- default: [],
27
- proc: proc { |v| composite_options(:tags) << v }
28
-
29
- option :tag_branch,
30
- long: '--tag-branch',
31
- description: 'Tag by git branch',
32
- boolean: true
33
-
34
- option :tag_build_id,
35
- long: '--tag-build-id',
36
- description: 'Tag by CI build id',
37
- boolean: true
38
-
39
- option :tag_ci,
40
- long: '--tag-ci',
41
- description: 'Tag by CI branch and tag',
42
- boolean: true
43
-
44
- option :tag_commit,
45
- long: '--tag-commit',
46
- description: 'Tag by git commit',
47
- boolean: true
48
-
49
- option :with_stages,
50
- long: '--with-stages',
51
- boolean: true
52
-
53
- def run(argv = ARGV)
54
- self.class.parse_options(self, argv)
55
- repo = self.class.required_argument(self)
56
- ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: cli_arguments).public_send(class_to_lowercase, repo)
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,23 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Stages
5
- class FlushLocal < Base
6
- banner <<BANNER.freeze
7
- Usage:
8
-
9
- dapp dimg stages flush local [options] [DIMG ...]
10
-
11
- DIMG Dapp image to process [default: *].
12
-
13
- Options:
14
- BANNER
15
- def run(argv = ARGV)
16
- self.class.parse_options(self, argv)
17
- ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: cli_arguments).stages_flush_local
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,24 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Stages
5
- class FlushRepo < Base
6
- banner <<BANNER.freeze
7
- Usage:
8
-
9
- dapp dimg stages flush repo [options] [DIMG ...] REPO
10
-
11
- DIMG Dapp image to process [default: *].
12
-
13
- Options:
14
- BANNER
15
- def run(argv = ARGV)
16
- self.class.parse_options(self, argv)
17
- repo = self.class.required_argument(self)
18
- ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: cli_arguments).stages_flush_repo(repo)
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,28 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Stages
5
- class Pull < Base
6
- banner <<BANNER.freeze
7
- Usage:
8
-
9
- dapp dimg stages pull [options] [DIMG ...] REPO
10
-
11
- DIMG Dapp image to process [default: *].
12
-
13
- Options:
14
- BANNER
15
- option :pull_all_stages,
16
- long: '--all',
17
- boolean: true
18
-
19
- def run(argv = ARGV)
20
- self.class.parse_options(self, argv)
21
- repo = self.class.required_argument(self)
22
- ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: cli_arguments).stages_pull(repo)
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,24 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Stages
5
- class Push < Base
6
- banner <<BANNER.freeze
7
- Usage:
8
-
9
- dapp dimg stages push [options] [DIMG ...] REPO
10
-
11
- DIMG Dapp image to process [default: *].
12
-
13
- Options:
14
- BANNER
15
- def run(argv = ARGV)
16
- self.class.parse_options(self, argv)
17
- repo = self.class.required_argument(self)
18
- ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: cli_arguments).stages_push(repo)
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,22 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Stages < ::Dapp::CLI
5
- SUBCOMMANDS = ['flush local', 'flush repo', 'cleanup local', 'cleanup repo', 'push', 'pull'].freeze
6
-
7
- banner <<BANNER.freeze
8
- Available subcommands: (for details, dapp dimg stages SUB-COMMAND --help)
9
-
10
- dapp dimg stages cleanup local [options] [DIMG ...] [REPO]
11
- dapp dimg stages cleanup repo [options] [DIMG ...] REPO
12
- dapp dimg stages flush local [options] [DIMG ...]
13
- dapp dimg stages flush repo [options] [DIMG ...] REPO
14
- dapp dimg stages push [options] [DIMG ...] REPO
15
- dapp dimg stages pull [options] [DIMG ...] REPO
16
-
17
- Options:
18
- BANNER
19
- end
20
- end
21
- end
22
- end
@@ -1,24 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module CLI
4
- class Tag < Base
5
- banner <<BANNER.freeze
6
- Usage:
7
-
8
- dapp dimg tag [options] [DIMG] TAG
9
-
10
- DIMG Dapp image to process [default: *].
11
- REPO Pushed image name.
12
-
13
- Options:
14
- BANNER
15
-
16
- def run(argv = ARGV)
17
- self.class.parse_options(self, argv)
18
- tag = self.class.required_argument(self)
19
- ::Dapp::Dapp.new(cli_options: config, dimgs_patterns: cli_arguments).public_send(class_to_lowercase, tag)
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,17 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module Config
4
- class ArtifactDimg < Dimg
5
- def validate_scratch!
6
- end
7
-
8
- def validate_artifacts_artifacts!
9
- end
10
-
11
- def validated_artifacts
12
- _git_artifact._local + _git_artifact._remote
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,43 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module Config
4
- class ArtifactGroup < DimgGroup
5
- def export(*args, &blk)
6
- artifact_config = pass_to_default(ArtifactDimg.new("artifact-#{SecureRandom.hex(2)}", dapp: dapp))
7
- artifact = Directive::Artifact.new(dapp: dapp, config: artifact_config)
8
- artifact.export(*args, &blk).tap do
9
- _export.concat artifact._export
10
- end
11
- end
12
-
13
- def _shell(&blk)
14
- @_shell ||= Directive::Shell::Artifact.new(dapp: dapp, &blk)
15
- end
16
-
17
- def _docker(&blk)
18
- @_docker ||= Directive::Docker::Artifact.new(dapp: dapp, &blk)
19
- end
20
-
21
- def _export
22
- @_export ||= []
23
- end
24
-
25
- def validate!
26
- _export.each(&:validate!)
27
- end
28
-
29
- undef :artifact
30
- undef :dimg
31
- undef :dimg_group
32
-
33
- protected
34
-
35
- def check_dimg_directive_order(_directive)
36
- end
37
-
38
- def check_dimg_group_directive_order(_directive)
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,7 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module Config
4
- class Base < ::Dapp::Config::Base; end
5
- end
6
- end
7
- end
@@ -1,179 +0,0 @@
1
- module Dapp
2
- module Dimg
3
- module Config
4
- class Dimg < Base
5
- module InstanceMethods
6
- attr_reader :_builder
7
- attr_reader :_chef, :_shell, :_docker, :_git_artifact, :_mount, :_artifact
8
- attr_reader :_artifact_groups
9
-
10
- def dev_mode
11
- @_dev_mode = true
12
- end
13
-
14
- def chef(&blk)
15
- builder(:chef)
16
- directive_eval(_chef, &blk)
17
- end
18
-
19
- def shell(&blk)
20
- builder(:shell)
21
- directive_eval(_shell, &blk)
22
- end
23
-
24
- def docker(&blk)
25
- directive_eval(_docker, &blk)
26
- end
27
-
28
- def artifact(&blk)
29
- pass_to_custom(ArtifactGroup.new(dapp: dapp), :clone_to_artifact).tap do |artifact_group|
30
- _artifact_groups << directive_eval(artifact_group, &blk)
31
- end
32
- end
33
-
34
- def git(url = nil, &blk)
35
- type = url.nil? ? :local : :remote
36
- _git_artifact.public_send(type, url.to_s, &blk)
37
- end
38
-
39
- def mount(to, &blk)
40
- Directive::Mount.new(to, dapp: dapp, &blk).tap do |mount|
41
- _mount << mount
42
- end
43
- end
44
-
45
- def _dev_mode
46
- !!@_dev_mode
47
- end
48
-
49
- def _builder
50
- @_builder || :none
51
- end
52
-
53
- def _chef
54
- @_chef ||= Directive::Chef.new(dapp: dapp)
55
- end
56
-
57
- def _shell
58
- @_shell ||= Directive::Shell::Dimg.new(dapp: dapp)
59
- end
60
-
61
- def _docker
62
- @_docker ||= Directive::Docker::Dimg.new(dapp: dapp)
63
- end
64
-
65
- def _mount
66
- @_mount ||= []
67
- end
68
-
69
- def _git_artifact
70
- @_git_artifact ||= GitArtifact.new(dapp: dapp)
71
- end
72
-
73
- [:build_dir, :tmp_dir].each do |mount_type|
74
- define_method "_#{mount_type}_mount" do
75
- _mount.select { |m| m._type == mount_type }
76
- end
77
- end
78
-
79
- def _artifact_groups
80
- @_artifact_groups ||= []
81
- end
82
-
83
- def _artifact
84
- _artifact_groups.map(&:_export).flatten
85
- end
86
-
87
- [:before, :after].each do |order|
88
- [:setup, :install].each do |stage|
89
- define_method "_#{order}_#{stage}_artifact" do
90
- _artifact.select do |art|
91
- art.public_send("_#{order}") == stage
92
- end
93
- end
94
- end
95
- end
96
-
97
- def _import_artifact
98
- _artifact.select(&:not_associated?)
99
- end
100
-
101
- class GitArtifact < Directive::Base
102
- attr_reader :_local, :_remote
103
-
104
- def initialize(**kwargs, &blk)
105
- @_local = []
106
- @_remote = []
107
-
108
- super(**kwargs, &blk)
109
- end
110
-
111
- def local(_, &blk)
112
- Directive::GitArtifactLocal.new(dapp: dapp, &blk).tap do |git|
113
- @_local << git
114
- end
115
- end
116
-
117
- def remote(repo_url, &blk)
118
- Directive::GitArtifactRemote.new(repo_url, dapp: dapp, &blk).tap do |git|
119
- @_remote << git
120
- end
121
- end
122
-
123
- def _local
124
- @_local.map(&:_export).flatten
125
- end
126
-
127
- def _remote
128
- @_remote.map(&:_export).flatten
129
- end
130
-
131
- def empty?
132
- (_local + _remote).empty?
133
- end
134
-
135
- def validate!
136
- (_local + _remote).each(&:validate!)
137
- end
138
- end
139
-
140
- protected
141
-
142
- def builder(type)
143
- @_builder = type if _builder == :none
144
- raise Error::Config, code: :builder_type_conflict unless @_builder == type
145
- end
146
-
147
- def pass_to_default(dimg)
148
- pass_to_custom(dimg, :clone)
149
- end
150
-
151
- def pass_to_custom(obj, clone_method)
152
- passed_directives.each do |directive|
153
- next if (variable = instance_variable_get(directive)).nil?
154
-
155
- obj.instance_variable_set(directive, begin
156
- case variable
157
- when Directive::Base, GitArtifact then variable.public_send(clone_method)
158
- when Symbol then variable
159
- when Array then variable.dup
160
- when TrueClass, FalseClass then variable
161
- else
162
- raise
163
- end
164
- end)
165
- end
166
- obj
167
- end
168
-
169
- def passed_directives
170
- [:@_chef, :@_shell, :@_docker,
171
- :@_git_artifact, :@_mount,
172
- :@_artifact_groups, :@_builder, :@_dev_mode]
173
- end
174
- end # InstanceMethods
175
- # rubocop:enable Metrics/ModuleLength
176
- end # Dimg
177
- end # Config
178
- end # Dimg
179
- end # Dapp