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.
- checksums.yaml +5 -5
- data/bin/dapp +77 -15
- data/config/en/common.yml +20 -11
- data/config/en/net_status.yml +108 -27
- data/lib/dapp/cli/cli.rb +1 -0
- data/lib/dapp/cli/command/base.rb +111 -0
- data/lib/dapp/cli/command/sample/base.rb +28 -0
- data/lib/dapp/cli/command/sample/create.rb +24 -0
- data/lib/dapp/cli/command/sample/list.rb +25 -0
- data/lib/dapp/cli/command/sample.rb +20 -0
- data/lib/dapp/cli/command/slug.rb +26 -0
- data/lib/dapp/cli/command/update.rb +65 -0
- data/lib/dapp/cli/options/ssh.rb +18 -0
- data/lib/dapp/cli/options/tag.rb +51 -0
- data/lib/dapp/cli.rb +11 -3
- data/lib/dapp/config/config.rb +21 -0
- data/lib/dapp/config/directive/base.rb +100 -3
- data/lib/dapp/core_ext/hash.rb +14 -0
- data/lib/dapp/core_ext/pathname.rb +6 -4
- data/lib/dapp/dapp/chef.rb +1 -9
- data/lib/dapp/dapp/command/common.rb +24 -0
- data/lib/dapp/dapp/command/sample/common.rb +54 -0
- data/lib/dapp/dapp/command/sample/create.rb +57 -0
- data/lib/dapp/dapp/command/sample/list.rb +13 -0
- data/lib/dapp/dapp/command/slug.rb +11 -0
- data/lib/dapp/dapp/dapp_config.rb +85 -0
- data/lib/dapp/dapp/dappfile.rb +108 -27
- data/lib/dapp/dapp/deps/base.rb +9 -32
- data/lib/dapp/dapp/deps/common.rb +26 -0
- data/lib/dapp/dapp/deps/gitartifact.rb +2 -20
- data/lib/dapp/dapp/deps/toolchain.rb +11 -0
- data/lib/dapp/dapp/git_artifact.rb +6 -4
- data/lib/dapp/dapp/lock.rb +6 -5
- data/lib/dapp/dapp/logging/base.rb +32 -20
- data/lib/dapp/dapp/logging/i18n.rb +5 -1
- data/lib/dapp/dapp/logging/process.rb +6 -6
- data/lib/dapp/dapp/option_tags.rb +98 -0
- data/lib/dapp/dapp/ruby2go.rb +130 -0
- data/lib/dapp/dapp/sentry.rb +97 -0
- data/lib/dapp/dapp/shellout/base.rb +26 -18
- data/lib/dapp/dapp/shellout/streaming.rb +2 -2
- data/lib/dapp/dapp/slug.rb +12 -0
- data/lib/dapp/dapp/ssh_agent.rb +25 -7
- data/lib/dapp/dapp.rb +192 -41
- data/lib/dapp/deployment.rb +1 -0
- data/lib/dapp/dimg/artifact.rb +12 -4
- data/lib/dapp/dimg/build/stage/artifact_base.rb +26 -30
- data/lib/dapp/dimg/build/stage/artifact_default.rb +50 -28
- data/lib/dapp/dimg/build/stage/base.rb +187 -52
- data/lib/dapp/dimg/build/stage/before_install.rb +4 -15
- data/lib/dapp/dimg/build/stage/before_install_artifact.rb +4 -0
- data/lib/dapp/dimg/build/stage/before_setup.rb +1 -20
- data/lib/dapp/dimg/build/stage/build_artifact.rb +1 -20
- data/lib/dapp/dimg/build/stage/docker_instructions.rb +5 -4
- data/lib/dapp/dimg/build/stage/from.rb +62 -9
- data/lib/dapp/dimg/build/stage/ga_archive.rb +14 -1
- data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +1 -5
- data/lib/dapp/dimg/build/stage/ga_base.rb +5 -35
- data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +15 -34
- data/lib/dapp/dimg/build/stage/ga_related_base.rb +21 -0
- data/lib/dapp/dimg/build/stage/import_artifact.rb +22 -11
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +6 -2
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +6 -2
- data/lib/dapp/dimg/build/stage/install/install.rb +1 -19
- data/lib/dapp/dimg/build/stage/instructions.rb +27 -0
- data/lib/dapp/dimg/build/stage/mod/group.rb +19 -7
- data/lib/dapp/dimg/build/stage/mod/logging.rb +15 -19
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +24 -1
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +6 -2
- data/lib/dapp/dimg/build/stage/setup/setup.rb +1 -19
- data/lib/dapp/dimg/builder/ansible.rb +5 -0
- data/lib/dapp/dimg/builder/chef/cookbook.rb +8 -8
- data/lib/dapp/dimg/builder/chef.rb +29 -16
- data/lib/dapp/dimg/builder/none.rb +1 -34
- data/lib/dapp/dimg/builder/ruby2go.rb +57 -0
- data/lib/dapp/dimg/builder/shell.rb +1 -20
- data/lib/dapp/dimg/cli/cli.rb +2 -1
- data/lib/dapp/dimg/cli/command/base.rb +24 -0
- data/lib/dapp/dimg/cli/command/dimg/bp.rb +60 -0
- data/lib/dapp/dimg/cli/command/dimg/build.rb +43 -0
- data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/export.rb +9 -4
- data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/import.rb +4 -4
- data/lib/dapp/dimg/cli/{build_context.rb → command/dimg/build_context.rb} +5 -5
- data/lib/dapp/dimg/cli/{cleanup.rb → command/dimg/cleanup.rb} +4 -6
- data/lib/dapp/dimg/cli/command/dimg/cleanup_repo.rb +47 -0
- data/lib/dapp/dimg/cli/command/dimg/flush_local.rb +24 -0
- data/lib/dapp/dimg/cli/command/dimg/flush_repo.rb +36 -0
- data/lib/dapp/dimg/cli/{list.rb → command/dimg/list.rb} +6 -3
- data/lib/dapp/dimg/cli/{mrproper.rb → command/dimg/mrproper.rb} +4 -4
- data/lib/dapp/dimg/cli/command/dimg/push.rb +39 -0
- data/lib/dapp/dimg/cli/{run.rb → command/dimg/run.rb} +30 -15
- data/lib/dapp/dimg/cli/{spush.rb → command/dimg/spush.rb} +4 -4
- data/lib/dapp/dimg/cli/{stage_image.rb → command/dimg/stage_image.rb} +12 -3
- data/lib/dapp/dimg/cli/command/dimg/stages/base.rb +13 -0
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_local.rb +13 -9
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_repo.rb +6 -8
- data/lib/dapp/dimg/cli/command/dimg/stages/flush_local.rb +21 -0
- data/lib/dapp/dimg/cli/command/dimg/stages/flush_repo.rb +28 -0
- data/lib/dapp/dimg/cli/command/dimg/stages/pull.rb +34 -0
- data/lib/dapp/dimg/cli/command/dimg/stages/push.rb +30 -0
- data/lib/dapp/dimg/cli/command/dimg/stages.rb +22 -0
- data/lib/dapp/dimg/cli/command/dimg/tag.rb +24 -0
- data/lib/dapp/dimg/cli/command/dimg.rb +31 -0
- data/lib/dapp/dimg/cli/options/introspection.rb +45 -0
- data/lib/dapp/dimg/config/config.rb +24 -0
- data/lib/dapp/dimg/config/directive/artifact.rb +13 -15
- data/lib/dapp/dimg/config/directive/artifact_base.rb +13 -8
- data/lib/dapp/dimg/config/directive/artifact_dimg.rb +12 -0
- data/lib/dapp/dimg/config/directive/artifact_group.rb +60 -0
- data/lib/dapp/dimg/config/directive/dimg/instance_methods.rb +203 -0
- data/lib/dapp/dimg/config/directive/dimg/validation.rb +217 -0
- data/lib/dapp/dimg/config/directive/dimg.rb +36 -0
- data/lib/dapp/dimg/config/directive/dimg_group.rb +73 -0
- data/lib/dapp/dimg/config/directive/dimg_group_base.rb +46 -0
- data/lib/dapp/dimg/config/directive/docker/artifact.rb +5 -0
- data/lib/dapp/dimg/config/directive/docker/base.rb +2 -3
- data/lib/dapp/dimg/config/directive/docker/dimg.rb +4 -4
- data/lib/dapp/dimg/config/directive/git_artifact_local.rb +24 -5
- data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +23 -12
- data/lib/dapp/dimg/config/directive/mount.rb +11 -3
- data/lib/dapp/dimg/config/directive/shell/dimg.rb +2 -2
- data/lib/dapp/dimg/dapp/command/bp.rb +3 -5
- data/lib/dapp/dimg/dapp/command/build.rb +4 -6
- data/lib/dapp/dimg/dapp/command/build_context/common.rb +2 -2
- data/lib/dapp/dimg/dapp/command/build_context/export.rb +14 -14
- data/lib/dapp/dimg/dapp/command/build_context/import.rb +28 -23
- data/lib/dapp/dimg/dapp/command/cleanup.rb +4 -11
- data/lib/dapp/dimg/dapp/command/cleanup_repo.rb +143 -0
- data/lib/dapp/dimg/dapp/command/common.rb +148 -38
- data/lib/dapp/dimg/dapp/command/flush_local.rb +25 -0
- data/lib/dapp/dimg/dapp/command/flush_repo.rb +25 -0
- data/lib/dapp/dimg/dapp/command/list.rb +1 -1
- data/lib/dapp/dimg/dapp/command/mrproper.rb +16 -63
- data/lib/dapp/dimg/dapp/command/push.rb +11 -16
- data/lib/dapp/dimg/dapp/command/ruby2go_cleanup.rb +48 -0
- data/lib/dapp/dimg/dapp/command/run.rb +4 -4
- data/lib/dapp/dimg/dapp/command/spush.rb +4 -5
- data/lib/dapp/dimg/dapp/command/stage_image.rb +2 -2
- data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +13 -115
- data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +23 -102
- data/lib/dapp/dimg/dapp/command/stages/common.rb +57 -39
- data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +13 -7
- data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +14 -8
- data/lib/dapp/dimg/dapp/command/stages/pull.rb +4 -13
- data/lib/dapp/dimg/dapp/command/stages/push.rb +4 -9
- data/lib/dapp/dimg/dapp/command/tag.rb +4 -6
- data/lib/dapp/dimg/dapp/config_artifact_group.rb +20 -0
- data/lib/dapp/dimg/dapp/dapp.rb +40 -0
- data/lib/dapp/dimg/dapp/dappfile.rb +43 -0
- data/lib/dapp/dimg/dapp/dimg.rb +41 -0
- data/lib/dapp/dimg/dimg/git_artifact.rb +25 -11
- data/lib/dapp/dimg/dimg/path.rb +7 -9
- data/lib/dapp/dimg/dimg/stages.rb +27 -15
- data/lib/dapp/dimg/dimg.rb +172 -69
- data/lib/dapp/dimg/docker_registry/base.rb +31 -74
- data/lib/dapp/dimg/docker_registry/dimg.rb +55 -0
- data/lib/dapp/dimg/docker_registry.rb +5 -23
- data/lib/dapp/dimg/error/build.rb +1 -1
- data/lib/dapp/dimg/error/chef.rb +1 -5
- data/lib/dapp/dimg/error/{command.rb → default.rb} +1 -1
- data/lib/dapp/dimg/error/dimg.rb +1 -1
- data/lib/dapp/dimg/error/lock.rb +1 -1
- data/lib/dapp/dimg/error/registry.rb +1 -1
- data/lib/dapp/dimg/error/rugged.rb +1 -1
- data/lib/dapp/dimg/error/tar_writer.rb +1 -1
- data/lib/dapp/dimg/git_artifact.rb +195 -179
- data/lib/dapp/dimg/git_repo/base.rb +49 -45
- data/lib/dapp/dimg/git_repo/local.rb +45 -0
- data/lib/dapp/dimg/git_repo/own.rb +3 -31
- data/lib/dapp/dimg/git_repo/remote.rb +65 -26
- data/lib/dapp/dimg/image/argument.rb +15 -50
- data/lib/dapp/dimg/image/dimg.rb +15 -0
- data/lib/dapp/dimg/image/scratch.rb +35 -9
- data/lib/dapp/dimg/image/stage.rb +223 -44
- data/lib/dapp/dimg/lock/file.rb +4 -4
- data/lib/dapp/downloader.rb +117 -0
- data/lib/dapp/error/base.rb +1 -5
- data/lib/dapp/error/command.rb +5 -0
- data/lib/dapp/error/config.rb +5 -0
- data/lib/dapp/error/dapp.rb +1 -1
- data/lib/dapp/error/dappfile.rb +1 -1
- data/lib/dapp/error/default.rb +11 -0
- data/lib/dapp/error/mod/user.rb +11 -0
- data/lib/dapp/error/shellout.rb +1 -1
- data/lib/dapp/exception/base.rb +1 -1
- data/lib/dapp/helper/case_conversion.rb +17 -0
- data/lib/dapp/helper/cli.rb +18 -7
- data/lib/dapp/helper/net_status.rb +5 -1
- data/lib/dapp/helper/sha256.rb +1 -1
- data/lib/dapp/helper/tar.rb +31 -0
- data/lib/dapp/helper/trivia.rb +40 -1
- data/lib/dapp/helper/url.rb +23 -0
- data/lib/dapp/helper/yaml.rb +24 -0
- data/lib/dapp/kube/cli/cli.rb +1 -0
- data/lib/dapp/kube/cli/command/base.rb +14 -0
- data/lib/dapp/kube/cli/command/kube/chart_create.rb +19 -0
- data/lib/dapp/kube/cli/command/kube/deploy.rb +80 -0
- data/lib/dapp/kube/cli/command/kube/dismiss.rb +31 -0
- data/lib/dapp/kube/cli/command/kube/lint.rb +53 -0
- data/lib/dapp/kube/cli/command/kube/minikube_setup.rb +19 -0
- data/lib/dapp/kube/cli/command/kube/render.rb +63 -0
- data/lib/dapp/kube/cli/command/kube/secret_edit.rb +30 -0
- data/lib/dapp/kube/cli/command/kube/secret_extract.rb +39 -0
- data/lib/dapp/kube/cli/command/kube/secret_generate.rb +34 -0
- data/lib/dapp/kube/cli/command/kube/secret_key_generate.rb +16 -0
- data/lib/dapp/kube/cli/command/kube/secret_regenerate.rb +29 -0
- data/lib/dapp/kube/cli/command/kube/value_get.rb +47 -0
- data/lib/dapp/kube/cli/command/kube.rb +28 -0
- data/lib/dapp/kube/dapp/command/chart_create.rb +103 -0
- data/lib/dapp/kube/dapp/command/common.rb +379 -0
- data/lib/dapp/kube/dapp/command/deploy.rb +351 -0
- data/lib/dapp/kube/dapp/command/dismiss.rb +50 -0
- data/lib/dapp/kube/dapp/command/lint.rb +69 -0
- data/lib/dapp/kube/dapp/command/minikube_setup.rb +402 -0
- data/lib/dapp/kube/dapp/command/render.rb +54 -0
- data/lib/dapp/kube/dapp/command/ruby2go.rb +17 -0
- data/lib/dapp/kube/dapp/command/secret_edit.rb +21 -0
- data/lib/dapp/kube/dapp/command/secret_extract.rb +17 -0
- data/lib/dapp/kube/dapp/command/secret_generate.rb +21 -0
- data/lib/dapp/kube/dapp/command/secret_key_generate.rb +13 -0
- data/lib/dapp/kube/dapp/command/secret_regenerate.rb +13 -0
- data/lib/dapp/kube/dapp/command/value_get.rb +32 -0
- data/lib/dapp/kube/dapp/dapp.rb +26 -0
- data/lib/dapp/kube/error/default.rb +7 -0
- data/lib/dapp/kube/helm/release.rb +189 -0
- data/lib/dapp/kube/helm/values.rb +148 -0
- data/lib/dapp/kube/helm.rb +5 -0
- data/lib/dapp/kube/kubernetes/client/error.rb +43 -0
- data/lib/dapp/kube/kubernetes/client/resource/base.rb +33 -0
- data/lib/dapp/kube/kubernetes/client/resource/deployment.rb +11 -0
- data/lib/dapp/kube/kubernetes/client/resource/event.rb +8 -0
- data/lib/dapp/kube/kubernetes/client/resource/job.rb +27 -0
- data/lib/dapp/kube/kubernetes/client/resource/pod.rb +62 -0
- data/lib/dapp/kube/kubernetes/client/resource/replicaset.rb +8 -0
- data/lib/dapp/kube/kubernetes/client.rb +314 -0
- data/lib/dapp/kube/kubernetes/config.rb +132 -0
- data/lib/dapp/kube/kubernetes/error.rb +15 -0
- data/lib/dapp/kube/kubernetes/manager/base.rb +15 -0
- data/lib/dapp/kube/kubernetes/manager/container.rb +103 -0
- data/lib/dapp/kube/kubernetes/manager/deployment.rb +212 -0
- data/lib/dapp/kube/kubernetes/manager/job.rb +65 -0
- data/lib/dapp/kube/kubernetes/manager/pod.rb +69 -0
- data/lib/dapp/kube/kubernetes.rb +6 -0
- data/lib/dapp/kube/secret.rb +93 -0
- data/lib/dapp/kube.rb +1 -0
- data/lib/dapp/version.rb +2 -2
- data/lib/dapp.rb +155 -61
- metadata +208 -61
- data/lib/dapp/cli/base.rb +0 -63
- data/lib/dapp/config/base.rb +0 -54
- data/lib/dapp/config/error/config.rb +0 -7
- data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +0 -27
- data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +0 -20
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +0 -22
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -22
- data/lib/dapp/dimg/build/stage/mod/git_artifact_dependencies.rb +0 -23
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -32
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -22
- data/lib/dapp/dimg/cli/base.rb +0 -16
- data/lib/dapp/dimg/cli/bp.rb +0 -37
- data/lib/dapp/dimg/cli/build.rb +0 -64
- data/lib/dapp/dimg/cli/dimg.rb +0 -30
- data/lib/dapp/dimg/cli/push.rb +0 -61
- data/lib/dapp/dimg/cli/stages/flush_local.rb +0 -23
- data/lib/dapp/dimg/cli/stages/flush_repo.rb +0 -24
- data/lib/dapp/dimg/cli/stages/pull.rb +0 -28
- data/lib/dapp/dimg/cli/stages/push.rb +0 -24
- data/lib/dapp/dimg/cli/stages.rb +0 -22
- data/lib/dapp/dimg/cli/tag.rb +0 -24
- data/lib/dapp/dimg/config/artifact_dimg.rb +0 -17
- data/lib/dapp/dimg/config/artifact_group.rb +0 -43
- data/lib/dapp/dimg/config/base.rb +0 -7
- data/lib/dapp/dimg/config/dimg/instance_methods.rb +0 -179
- data/lib/dapp/dimg/config/dimg/validation.rb +0 -126
- data/lib/dapp/dimg/config/dimg.rb +0 -24
- data/lib/dapp/dimg/config/dimg_group.rb +0 -61
- data/lib/dapp/dimg/config/dimg_group_base.rb +0 -54
- data/lib/dapp/dimg/config/dimg_group_main.rb +0 -22
- data/lib/dapp/dimg/dapp/command.rb +0 -21
- data/lib/dapp/dimg/dimg/tags.rb +0 -65
- data/lib/dapp/dimg/docker_registry/base/authorization.rb +0 -63
- data/lib/dapp/dimg/docker_registry/base/request.rb +0 -34
- data/lib/dapp/dimg/docker_registry/default.rb +0 -18
- data/lib/dapp/dimg/error/base.rb +0 -7
- data/lib/dapp/dimg/error/config.rb +0 -7
- data/lib/dapp/dimg/exception/introspect_image.rb +0 -7
- data/lib/dapp/dimg/image/docker.rb +0 -134
|
@@ -1,134 +1,32 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Stages
|
|
6
6
|
module CleanupLocal
|
|
7
|
-
def stages_cleanup_local
|
|
8
|
-
|
|
9
|
-
raise Error::Command, code: :stages_cleanup_required_option unless stages_cleanup_option?
|
|
7
|
+
def stages_cleanup_local
|
|
8
|
+
raise ::Dapp::Error::Command, code: :stages_cleanup_required_option unless stages_cleanup_option?
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
proper_cache if proper_cache_version?
|
|
14
|
-
stages_cleanup_by_repo(repo) if proper_repo_cache?
|
|
15
|
-
proper_git_commit if proper_git_commit?
|
|
10
|
+
if proper_cache_version?
|
|
11
|
+
ruby2go_cleanup_command(:sync, cleanup_local_proper_cache_version_options_dump)
|
|
16
12
|
end
|
|
17
|
-
end
|
|
18
13
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def proper_cache
|
|
22
|
-
log_proper_cache do
|
|
23
|
-
lock("#{name}.images") do
|
|
24
|
-
log_step_with_indent(name) do
|
|
25
|
-
remove_images(dapp_images_names.select { |image_name| !actual_cache_images.include?(image_name) })
|
|
26
|
-
end
|
|
27
|
-
end
|
|
14
|
+
if proper_repo_cache?
|
|
15
|
+
ruby2go_cleanup_command(:sync, cleanup_local_proper_repo_cache_options_dump)
|
|
28
16
|
end
|
|
29
17
|
end
|
|
30
18
|
|
|
31
|
-
def
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
lock("#{name}.images") do
|
|
36
|
-
log_step_with_indent(name) do
|
|
37
|
-
dapp_dangling_images_flush
|
|
38
|
-
dimgs, stages = dapp_images_hash.partition { |_, image_id| repo_dimgs.values.include?(image_id) }
|
|
39
|
-
dimgs = dimgs.to_h
|
|
40
|
-
stages = stages.to_h
|
|
41
|
-
dimgs.each { |_, aiid| except_image_with_parents(aiid, stages) }
|
|
42
|
-
remove_images(stages.keys)
|
|
43
|
-
end
|
|
19
|
+
def cleanup_local_proper_cache_version_options_dump
|
|
20
|
+
ruby2go_cleanup_common_project_options.merge(ruby2go_cleanup_cache_version_options).tap do |data|
|
|
21
|
+
break JSON.dump(data)
|
|
44
22
|
end
|
|
45
23
|
end
|
|
46
24
|
|
|
47
|
-
def
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
def actual_cache_images
|
|
52
|
-
shellout!([
|
|
53
|
-
'docker images',
|
|
54
|
-
'--format="{{.Repository}}:{{.Tag}}"',
|
|
55
|
-
%(-f "label=dapp-cache-version=#{::Dapp::BUILD_CACHE_VERSION}"),
|
|
56
|
-
stage_cache
|
|
57
|
-
].join(' ')).stdout.lines.map(&:strip)
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def dapp_images_hash
|
|
61
|
-
shellout!(%(docker images --format "{{.Repository}}:{{.Tag}};{{.ID}}" --no-trunc #{stage_cache})).stdout.lines.map do |line|
|
|
62
|
-
line.strip.split(';')
|
|
63
|
-
end.to_h
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def except_image_with_parents(image_id, stages)
|
|
67
|
-
if image_exist?(image_id)
|
|
68
|
-
image_dapp_artifacts_label(image_id).each { |aiid| except_image_with_parents(aiid, stages) }
|
|
69
|
-
iid = image_id
|
|
70
|
-
loop do
|
|
71
|
-
stages.delete_if { |_, siid| siid == iid }
|
|
72
|
-
break if (iid = image_parent(iid)).empty?
|
|
73
|
-
end
|
|
74
|
-
else
|
|
75
|
-
stages.delete_if { |_, siid| siid == image_id }
|
|
25
|
+
def cleanup_local_proper_repo_cache_options_dump
|
|
26
|
+
ruby2go_cleanup_common_project_options.merge(ruby2go_cleanup_common_repo_options).tap do |data|
|
|
27
|
+
break JSON.dump(data)
|
|
76
28
|
end
|
|
77
29
|
end
|
|
78
|
-
|
|
79
|
-
def image_exist?(image_id)
|
|
80
|
-
shellout!(%(docker inspect #{image_id}))
|
|
81
|
-
true
|
|
82
|
-
rescue ::Dapp::Error::Shellout
|
|
83
|
-
false
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def image_dapp_artifacts_label(image_id)
|
|
87
|
-
select_dapp_artifacts_ids(::Dapp::Dimg::Image::Docker.image_config_option(image_id: image_id, option: 'labels'))
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def image_parent(image_id)
|
|
91
|
-
shellout!(%(docker inspect -f {{.Parent}} #{image_id})).stdout.strip
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def proper_git_commit
|
|
95
|
-
log_proper_git_commit do
|
|
96
|
-
unproper_images_names = []
|
|
97
|
-
dapp_images_detailed.each do |_, attrs|
|
|
98
|
-
attrs['Config']['Labels'].each do |repo_name, commit|
|
|
99
|
-
next if (repo = dapp_git_repositories[repo_name]).nil?
|
|
100
|
-
unproper_images_names.concat(image_hierarchy_by_id(attrs['Id'])) unless repo.commit_exists?(commit)
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
remove_images(unproper_images_names.uniq)
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
def dapp_images_detailed
|
|
108
|
-
@dapp_images_detailed ||= {}.tap do |images|
|
|
109
|
-
dapp_images_names.each do |image_name|
|
|
110
|
-
shellout!(%(docker inspect --format='{{json .}}' #{image_name})).stdout.strip.tap do |output|
|
|
111
|
-
images[image_name] = output == 'null' ? {} : JSON.parse(output)
|
|
112
|
-
end
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def image_hierarchy_by_id(image_id)
|
|
118
|
-
hierarchy = []
|
|
119
|
-
iids = [image_id]
|
|
120
|
-
|
|
121
|
-
loop do
|
|
122
|
-
hierarchy.concat(dapp_images_detailed.map { |name, attrs| name if iids.include?(attrs['Id']) }.compact)
|
|
123
|
-
break if begin
|
|
124
|
-
iids.map! do |iid|
|
|
125
|
-
dapp_images_detailed.map { |_, attrs| attrs['Id'] if attrs['Parent'] == iid }.compact
|
|
126
|
-
end.flatten!.empty?
|
|
127
|
-
end
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
hierarchy
|
|
131
|
-
end
|
|
132
30
|
end
|
|
133
31
|
end
|
|
134
32
|
end
|
|
@@ -1,119 +1,40 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Stages
|
|
6
6
|
module CleanupRepo
|
|
7
|
-
def stages_cleanup_repo
|
|
8
|
-
lock_repo(repo) do
|
|
9
|
-
raise Error::Command, code: :stages_cleanup_required_option unless stages_cleanup_option?
|
|
7
|
+
def stages_cleanup_repo
|
|
8
|
+
lock_repo(repo = option_repo) do
|
|
9
|
+
raise ::Dapp::Error::Command, code: :stages_cleanup_required_option unless stages_cleanup_option?
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
repo_stages.delete_if { |_, siid| repo_dimgs.values.include?(siid) } # ignoring stages with dimgs ids (v2)
|
|
14
|
-
|
|
15
|
-
proper_repo_cache(registry, repo_stages) if proper_cache_version?
|
|
16
|
-
repo_stages_cleanup(registry, repo_dimgs, repo_stages) if proper_repo_cache?
|
|
17
|
-
proper_repo_git_commit(registry) if proper_git_commit?
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
protected
|
|
22
|
-
|
|
23
|
-
def proper_repo_cache(registry, repo_stages)
|
|
24
|
-
log_proper_cache do
|
|
25
|
-
wrong_cache_images = repo_stages.select do |image_tag, _|
|
|
26
|
-
repo_image_dapp_cache_version_label(registry, image_tag) != ::Dapp::BUILD_CACHE_VERSION.to_s
|
|
27
|
-
end
|
|
28
|
-
wrong_cache_images.each { |image_tag, _| delete_repo_image(registry, image_tag) }
|
|
29
|
-
repo_stages.delete_if { |image_tag, _| wrong_cache_images.keys.include?(image_tag) }
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def repo_stages_cleanup(registry, repo_dimgs, repo_stages)
|
|
34
|
-
log_step_with_indent(repo) do
|
|
35
|
-
repo_dimgs.each { |image_tag, image_id| clear_repo_stages(registry, repo_stages, image_tag, image_id) }
|
|
36
|
-
repo_stages.keys.each { |image_tag| delete_repo_image(registry, image_tag) }
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def clear_repo_stages(registry, repo_stages, image_tag, image_id)
|
|
41
|
-
repo_image_dapp_artifacts_labels(registry, image_tag).each do |iid|
|
|
42
|
-
itag = find_image_tag_by_id(repo_stages, iid)
|
|
43
|
-
clear_repo_stages(registry, repo_stages, itag, iid) unless itag.nil?
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
itag = image_tag
|
|
47
|
-
iid = image_id
|
|
48
|
-
loop do
|
|
49
|
-
repo_stages.delete_if { |_, siid| siid == iid }
|
|
50
|
-
break if itag.nil? || (iid = registry.image_parent_id(itag)).empty?
|
|
51
|
-
itag = find_image_tag_by_id(repo_stages, iid)
|
|
11
|
+
ruby2go_cleanup_command(:sync, cleanup_repo_proper_cache_version_options_dump) if proper_cache_version?
|
|
12
|
+
repo_dimgstages_cleanup if proper_repo_cache?
|
|
52
13
|
end
|
|
53
14
|
end
|
|
54
15
|
|
|
55
|
-
def
|
|
56
|
-
|
|
16
|
+
def repo_dimgstages_cleanup
|
|
17
|
+
ruby2go_cleanup_command(:sync, cleanup_repo_proper_repo_cache_options)
|
|
57
18
|
end
|
|
58
19
|
|
|
59
|
-
def
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
def proper_repo_git_commit(registry)
|
|
69
|
-
log_proper_git_commit do
|
|
70
|
-
unproper_images = []
|
|
71
|
-
repo_dapp_dappstage_images_detailed(registry).each do |_, attrs|
|
|
72
|
-
attrs[:labels].each do |repo_name, commit|
|
|
73
|
-
next if (repo = dapp_git_repositories[repo_name]).nil?
|
|
74
|
-
unproper_images.concat(repo_image_tags_hierarchy(registry, attrs[:id])) unless repo.commit_exists?(commit)
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
remove_repo_images(registry, unproper_images.uniq)
|
|
20
|
+
def cleanup_repo_proper_cache_version_options_dump
|
|
21
|
+
ruby2go_cleanup_common_repo_options.merge(ruby2go_cleanup_cache_version_options).merge(
|
|
22
|
+
mode: {
|
|
23
|
+
sync_repo: true,
|
|
24
|
+
only_cache_version: true
|
|
25
|
+
}
|
|
26
|
+
).tap do |data|
|
|
27
|
+
break JSON.dump(data)
|
|
78
28
|
end
|
|
79
29
|
end
|
|
80
30
|
|
|
81
|
-
def
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
id: registry.image_id(tag),
|
|
89
|
-
parent: image_history['container_config']['Image'],
|
|
90
|
-
labels: image_history['config']['Labels']
|
|
91
|
-
}
|
|
92
|
-
[tag, attrs]
|
|
93
|
-
end.compact
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def repo_image_tags_hierarchy(registry, registry_image_id)
|
|
98
|
-
hierarchy = []
|
|
99
|
-
iids = [registry_image_id]
|
|
100
|
-
|
|
101
|
-
loop do
|
|
102
|
-
hierarchy.concat(iids)
|
|
103
|
-
break if begin
|
|
104
|
-
iids.map! do |iid|
|
|
105
|
-
repo_dapp_dappstage_images_detailed(registry).map { |_, attrs| attrs[:id] if attrs[:parent] == iid }.compact
|
|
106
|
-
end.flatten!.empty?
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
repo_dapp_dappstage_images_detailed(registry).map { |tag, attrs| tag if hierarchy.include? attrs[:id] }.compact
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def remove_repo_images(registry, tags)
|
|
114
|
-
tags.each do |tag|
|
|
115
|
-
log(tag) if dry_run? || log_verbose?
|
|
116
|
-
registry.image_delete(tag) unless dry_run?
|
|
31
|
+
def cleanup_repo_proper_repo_cache_options
|
|
32
|
+
ruby2go_cleanup_common_repo_options.merge(
|
|
33
|
+
mode: {
|
|
34
|
+
sync_repo: true
|
|
35
|
+
}
|
|
36
|
+
).tap do |data|
|
|
37
|
+
break JSON.dump(data)
|
|
117
38
|
end
|
|
118
39
|
end
|
|
119
40
|
end
|
|
@@ -1,69 +1,87 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Stages
|
|
6
6
|
module Common
|
|
7
7
|
protected
|
|
8
8
|
|
|
9
|
-
def registry
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
def repo_detailed_dimgs_images(registry)
|
|
10
|
+
repo_dimgs_images(registry).select do |dimg|
|
|
11
|
+
begin
|
|
12
|
+
image_config = registry.image_config(dimg[:tag], dimg[:dimg])
|
|
13
|
+
dimg[:created_at] = Time.parse(image_config["created"]).to_i
|
|
14
|
+
dimg[:parent] = image_config["container_config"]["Image"]
|
|
15
|
+
dimg[:labels] = image_config["config"]["Labels"]
|
|
16
|
+
dimg[:labels]['dapp'] == name
|
|
17
|
+
rescue ::Dapp::Dimg::Error::Registry => e
|
|
18
|
+
raise unless e.net_status[:data][:message].include?("MANIFEST_UNKNOWN")
|
|
19
|
+
log_warning "WARNING: Ignore dimg `#{dimg[:dimg]}` tag `#{dimg[:tag]}`: got manifest-invalid-error from docker registry: #{e.net_status[:data][:message]}"
|
|
20
|
+
false
|
|
21
|
+
end
|
|
22
|
+
end
|
|
12
23
|
end
|
|
13
24
|
|
|
14
|
-
def
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
def repo_dimgs_images(registry)
|
|
26
|
+
[].tap do |dimgs_images|
|
|
27
|
+
{}.tap do |dimgs_tags|
|
|
28
|
+
dimgs_tags[nil] = registry.nameless_dimg_tags
|
|
29
|
+
dimgs_names.each do |dimg_name|
|
|
30
|
+
dimgs_tags[dimg_name] = registry.dimg_tags(dimg_name)
|
|
31
|
+
end unless nameless_dimg?
|
|
32
|
+
end.each do |dimg_name, tags|
|
|
33
|
+
dimgs_images.concat(tags_to_repo_images(registry, tags, dimg_name))
|
|
34
|
+
end
|
|
23
35
|
end
|
|
24
|
-
dimgs, stages = registry.tags.partition { |tag| !tag.start_with?('dimgstage') }
|
|
25
|
-
[format.call(dimgs), format.call(stages)]
|
|
26
36
|
end
|
|
27
37
|
|
|
28
|
-
def
|
|
29
|
-
registry.
|
|
30
|
-
rescue Exception::Registry => e
|
|
31
|
-
raise unless e.net_status[:code] == :no_such_dimg
|
|
32
|
-
log_warning(desc: { code: :dimg_not_found_in_registry })
|
|
33
|
-
[]
|
|
38
|
+
def repo_dimgstages_images(registry)
|
|
39
|
+
tags_to_repo_images(registry, registry.dimgstages_tags)
|
|
34
40
|
end
|
|
35
41
|
|
|
36
|
-
def
|
|
37
|
-
|
|
38
|
-
log(image_tag)
|
|
39
|
-
else
|
|
40
|
-
registry.image_delete(image_tag)
|
|
41
|
-
end
|
|
42
|
+
def tags_to_repo_images(registry, tags, dimg_name = nil)
|
|
43
|
+
tags.map { |tag| repo_image_format(registry, tag, dimg_name) }.compact
|
|
42
44
|
end
|
|
43
45
|
|
|
44
|
-
def
|
|
45
|
-
|
|
46
|
+
def repo_image_format(registry, tag, dimg_name = nil)
|
|
47
|
+
begin
|
|
48
|
+
id = registry.image_id(tag, dimg_name)
|
|
49
|
+
|
|
50
|
+
if id.nil?
|
|
51
|
+
log_warning(desc: { code: 'tag_ignored', data: { tag: tag } })
|
|
52
|
+
return nil
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
return { dimg: dimg_name, tag: tag, id: id }
|
|
56
|
+
rescue ::Dapp::Dimg::Error::Registry => e
|
|
57
|
+
raise unless e.net_status[:data][:message].include?("MANIFEST_UNKNOWN")
|
|
58
|
+
log_warning "WARNING: Ignore dimg `#{dimg_name}` tag `#{tag}`: got not-found-error from docker registry on get-image-manifest request: #{e.net_status[:data][:message]}"
|
|
59
|
+
return nil
|
|
60
|
+
end
|
|
46
61
|
end
|
|
47
62
|
|
|
48
|
-
def
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
[
|
|
54
|
-
|
|
55
|
-
|
|
63
|
+
def delete_repo_image(registry, repo_image)
|
|
64
|
+
log([repo_image[:dimg], repo_image[:tag]].compact.join(':')) if dry_run? || log_verbose?
|
|
65
|
+
unless dry_run?
|
|
66
|
+
begin
|
|
67
|
+
if self.class.gcr_registry?
|
|
68
|
+
registry.gcr_image_delete(repo_image[:tag], repo_image[:dimg])
|
|
69
|
+
else
|
|
70
|
+
registry.image_delete(repo_image[:tag], repo_image[:dimg])
|
|
56
71
|
end
|
|
72
|
+
rescue ::Dapp::Dimg::Error::Registry => e
|
|
73
|
+
raise unless e.net_status[:data][:message].include?("MANIFEST_UNKNOWN")
|
|
74
|
+
log_warning "WARNING: Ignore dimg `#{repo_image[:dimg]}` tag `#{repo_image[:tag]}`: got not-found-error from docker registry on image-delete request: #{e.net_status[:data][:message]}"
|
|
57
75
|
end
|
|
58
76
|
end
|
|
59
77
|
end
|
|
60
78
|
|
|
61
79
|
def proper_repo_cache?
|
|
62
|
-
!!
|
|
80
|
+
!!options[:proper_repo_cache]
|
|
63
81
|
end
|
|
64
82
|
|
|
65
83
|
def proper_git_commit?
|
|
66
|
-
!!
|
|
84
|
+
!!options[:proper_git_commit]
|
|
67
85
|
end
|
|
68
86
|
|
|
69
87
|
def stages_cleanup_option?
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Stages
|
|
6
6
|
module FlushLocal
|
|
7
7
|
def stages_flush_local
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
ruby2go_cleanup_command(:flush, ruby2go_cleanup_stages_flush_local_options_dump)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def ruby2go_cleanup_stages_flush_local_options_dump
|
|
12
|
+
ruby2go_cleanup_common_project_options.merge(
|
|
13
|
+
mode: {
|
|
14
|
+
with_dimgs: false,
|
|
15
|
+
with_stages: true,
|
|
16
|
+
only_repo: false,
|
|
17
|
+
}
|
|
18
|
+
).tap do |json|
|
|
19
|
+
break JSON.dump(json)
|
|
14
20
|
end
|
|
15
21
|
end
|
|
16
22
|
end
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Stages
|
|
6
6
|
module FlushRepo
|
|
7
|
-
def stages_flush_repo
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
def stages_flush_repo
|
|
8
|
+
ruby2go_cleanup_command(:flush, ruby2go_cleanup_stages_flush_repo_options_dump)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def ruby2go_cleanup_stages_flush_repo_options_dump
|
|
12
|
+
ruby2go_cleanup_common_repo_options.merge(
|
|
13
|
+
mode: {
|
|
14
|
+
with_dimgs: false,
|
|
15
|
+
with_stages: true,
|
|
16
|
+
only_repo: true,
|
|
17
|
+
},
|
|
18
|
+
).tap do |json|
|
|
19
|
+
break JSON.dump(json)
|
|
14
20
|
end
|
|
15
21
|
end
|
|
16
22
|
end
|
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Stages
|
|
6
6
|
module Pull
|
|
7
|
-
def stages_pull
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
log_dimg_name_with_indent(config) do
|
|
11
|
-
Dimg.new(config: config, dapp: self, ignore_git_fetch: true).tap do |dimg|
|
|
12
|
-
dimg.import_stages!(repo, format: '%{repo}:dimgstage-%{signature}')
|
|
13
|
-
end
|
|
14
|
-
end
|
|
7
|
+
def stages_pull
|
|
8
|
+
dimg_import_export_base(should_be_built: false) do |dimg|
|
|
9
|
+
dimg.import_stages!(option_repo, format: dimgstage_push_format)
|
|
15
10
|
end
|
|
16
11
|
end
|
|
17
|
-
|
|
18
|
-
def pull_all_stages?
|
|
19
|
-
!!cli_options[:pull_all_stages]
|
|
20
|
-
end
|
|
21
12
|
end
|
|
22
13
|
end
|
|
23
14
|
end
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Stages
|
|
6
6
|
module Push
|
|
7
|
-
def stages_push
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
log_dimg_name_with_indent(config) do
|
|
11
|
-
Dimg.new(config: config, dapp: self, ignore_git_fetch: true, should_be_built: true).tap do |dimg|
|
|
12
|
-
dimg.export_stages!(repo, format: '%{repo}:dimgstage-%{signature}')
|
|
13
|
-
end
|
|
14
|
-
end
|
|
7
|
+
def stages_push
|
|
8
|
+
dimg_import_export_base(should_be_built: false) do |dimg|
|
|
9
|
+
dimg.export_stages!(option_repo, format: dimgstage_push_format)
|
|
15
10
|
end
|
|
16
11
|
end
|
|
17
12
|
end
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
module Dimg
|
|
3
|
-
|
|
3
|
+
module Dapp
|
|
4
4
|
module Command
|
|
5
5
|
module Tag
|
|
6
|
-
def tag
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Dimg.new(config: build_configs.first, dapp: self, ignore_git_fetch: true, should_be_built: true).tap do |app|
|
|
10
|
-
app.tag!(tag)
|
|
6
|
+
def tag
|
|
7
|
+
dimg_import_export_base do |dimg|
|
|
8
|
+
dimg.tag!(option_repo, format: push_format(dimg.name))
|
|
11
9
|
end
|
|
12
10
|
end
|
|
13
11
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Dapp
|
|
2
|
+
module Dimg
|
|
3
|
+
module Dapp
|
|
4
|
+
module ConfigArtifactGroup
|
|
5
|
+
def artifact_config_by_name(name)
|
|
6
|
+
artifacts_configs[name] || raise(::Dapp::Error::Config, code: :artifact_not_found, data: { name: name })
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def artifact_config(name, artifact_config)
|
|
10
|
+
raise(::Dapp::Error::Config, code: :artifact_already_exists, data: { name: name }) if artifacts_configs.key?(name)
|
|
11
|
+
artifacts_configs[name] = artifact_config
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def artifacts_configs
|
|
15
|
+
@artifacts_configs ||= {}
|
|
16
|
+
end
|
|
17
|
+
end # Dimg
|
|
18
|
+
end # Dapp
|
|
19
|
+
end # Dimg
|
|
20
|
+
end # Dapp
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Dapp
|
|
2
|
+
module Dimg
|
|
3
|
+
module Dapp
|
|
4
|
+
module Dapp
|
|
5
|
+
include Dappfile
|
|
6
|
+
include Dimg
|
|
7
|
+
include ConfigArtifactGroup
|
|
8
|
+
|
|
9
|
+
include Command::Common
|
|
10
|
+
include Command::Run
|
|
11
|
+
include Command::Build
|
|
12
|
+
include Command::Bp
|
|
13
|
+
include Command::Push
|
|
14
|
+
include Command::Spush
|
|
15
|
+
include Command::Tag
|
|
16
|
+
include Command::List
|
|
17
|
+
include Command::Stages::CleanupLocal
|
|
18
|
+
include Command::Stages::CleanupRepo
|
|
19
|
+
include Command::Stages::FlushLocal
|
|
20
|
+
include Command::Stages::FlushRepo
|
|
21
|
+
include Command::Stages::Push
|
|
22
|
+
include Command::Stages::Pull
|
|
23
|
+
include Command::Stages::Common
|
|
24
|
+
include Command::CleanupRepo
|
|
25
|
+
include Command::FlushLocal
|
|
26
|
+
include Command::FlushRepo
|
|
27
|
+
include Command::Cleanup
|
|
28
|
+
include Command::Mrproper
|
|
29
|
+
include Command::StageImage
|
|
30
|
+
include Command::BuildContext::Import
|
|
31
|
+
include Command::BuildContext::Export
|
|
32
|
+
include Command::BuildContext::Common
|
|
33
|
+
|
|
34
|
+
include Command::Ruby2GoCleanup
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
::Dapp::Dapp.send(:include, ::Dapp::Dimg::Dapp::Dapp)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module Dapp
|
|
2
|
+
module Dimg
|
|
3
|
+
module Dapp
|
|
4
|
+
module Dappfile
|
|
5
|
+
def nameless_dimg?
|
|
6
|
+
dimgs_names.first.nil?
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def dimg_name!
|
|
10
|
+
one_dimg!
|
|
11
|
+
build_configs.first._name
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def one_dimg!
|
|
15
|
+
return if build_configs.one?
|
|
16
|
+
raise ::Dapp::Error::Command, code: :command_unexpected_dimgs_number, data: { dimgs_names: dimgs_names.join('`, `') }
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def dimgs_names
|
|
20
|
+
build_configs.map(&:_name)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def build_configs
|
|
24
|
+
@build_configs ||= begin
|
|
25
|
+
config._dimg.select do |dimg|
|
|
26
|
+
dimgs_patterns.any? { |pattern| dimg._name.nil? || File.fnmatch(pattern, dimg._name) }
|
|
27
|
+
end.tap do |dimgs|
|
|
28
|
+
raise ::Dapp::Error::Dapp, code: :no_such_dimg, data: { dimgs_patterns: dimgs_patterns.join('`, `') } if dimgs.empty?
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def dimgs_patterns
|
|
34
|
+
@dimgs_patterns ||= begin
|
|
35
|
+
(options[:dimgs_patterns] || []).tap do |dimgs_patterns|
|
|
36
|
+
dimgs_patterns << '*' unless dimgs_patterns.any?
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end # Dappfile
|
|
41
|
+
end # Dapp
|
|
42
|
+
end # Dimg
|
|
43
|
+
end # Dapp
|