dapp 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/dapp +5 -5
- data/config/en/common.yml +6 -4
- data/config/en/net_status.yml +8 -7
- data/lib/dapp.rb +157 -139
- data/lib/dapp/cli.rb +6 -16
- data/lib/dapp/cli/base.rb +3 -5
- data/lib/dapp/config/base.rb +19 -7
- data/lib/dapp/config/directive/base.rb +0 -1
- data/lib/dapp/config/error/config.rb +7 -0
- data/lib/dapp/core_ext/hash.rb +0 -2
- data/lib/dapp/core_ext/pathname.rb +1 -3
- data/lib/dapp/{project.rb → dapp.rb} +2 -21
- data/lib/dapp/{project → dapp}/chef.rb +2 -4
- data/lib/dapp/{project → dapp}/dappfile.rb +5 -7
- data/lib/dapp/{project → dapp}/deps/base.rb +3 -6
- data/lib/dapp/{project → dapp}/deps/gitartifact.rb +2 -5
- data/lib/dapp/{project → dapp}/git_artifact.rb +2 -4
- data/lib/dapp/{project → dapp}/lock.rb +3 -5
- data/lib/dapp/{project → dapp}/logging/base.rb +2 -5
- data/lib/dapp/{project → dapp}/logging/i18n.rb +2 -3
- data/lib/dapp/{project → dapp}/logging/paint.rb +2 -4
- data/lib/dapp/{project → dapp}/logging/process.rb +2 -5
- data/lib/dapp/{project → dapp}/shellout/base.rb +2 -4
- data/lib/dapp/{project → dapp}/shellout/streaming.rb +3 -8
- data/lib/dapp/{project → dapp}/ssh_agent.rb +6 -9
- data/lib/dapp/dimg.rb +1 -192
- data/lib/dapp/dimg/artifact.rb +24 -0
- data/lib/dapp/dimg/build/stage/after_install_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/after_setup_artifact.rb +18 -0
- data/lib/dapp/dimg/build/stage/artifact_base.rb +80 -0
- data/lib/dapp/dimg/build/stage/artifact_default.rb +63 -0
- data/lib/dapp/dimg/build/stage/base.rb +210 -0
- data/lib/dapp/dimg/build/stage/before_install.rb +33 -0
- data/lib/dapp/dimg/build/stage/before_install_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/before_setup.rb +31 -0
- data/lib/dapp/dimg/build/stage/before_setup_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/build_artifact.rb +31 -0
- data/lib/dapp/dimg/build/stage/docker_instructions.rb +25 -0
- data/lib/dapp/dimg/build/stage/from.rb +50 -0
- data/lib/dapp/dimg/build/stage/ga_archive.rb +28 -0
- data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +27 -0
- data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/ga_base.rb +80 -0
- data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +20 -0
- data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +54 -0
- data/lib/dapp/dimg/build/stage/import_artifact.rb +64 -0
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/install.rb +35 -0
- data/lib/dapp/dimg/build/stage/mod/group.rb +42 -0
- data/lib/dapp/dimg/build/stage/mod/logging.rb +101 -0
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +32 -0
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/setup.rb +35 -0
- data/lib/dapp/dimg/builder.rb +6 -0
- data/lib/dapp/{builder → dimg/builder}/base.rb +4 -5
- data/lib/dapp/{builder → dimg/builder}/chef.rb +41 -33
- data/lib/dapp/dimg/builder/chef/berksfile.rb +121 -0
- data/lib/dapp/dimg/builder/chef/cookbook.rb +285 -0
- data/lib/dapp/dimg/builder/chef/cookbook_metadata.rb +106 -0
- data/lib/dapp/{builder → dimg/builder}/none.rb +4 -5
- data/lib/dapp/{builder → dimg/builder}/shell.rb +5 -6
- data/lib/dapp/dimg/cli/base.rb +16 -0
- data/lib/dapp/dimg/cli/bp.rb +37 -0
- data/lib/dapp/dimg/cli/build.rb +64 -0
- data/lib/dapp/dimg/cli/build_context.rb +18 -0
- data/lib/dapp/dimg/cli/build_context/export.rb +26 -0
- data/lib/dapp/dimg/cli/build_context/import.rb +17 -0
- data/lib/dapp/dimg/cli/cleanup.rb +22 -0
- data/lib/dapp/dimg/cli/cli.rb +1 -0
- data/lib/dapp/dimg/cli/dimg.rb +30 -0
- data/lib/dapp/dimg/cli/list.rb +17 -0
- data/lib/dapp/dimg/cli/mrproper.rb +26 -0
- data/lib/dapp/dimg/cli/push.rb +61 -0
- data/lib/dapp/dimg/cli/run.rb +59 -0
- data/lib/dapp/{cli → dimg/cli}/spush.rb +7 -7
- data/lib/dapp/dimg/cli/stage_image.rb +24 -0
- data/lib/dapp/dimg/cli/stages.rb +22 -0
- data/lib/dapp/dimg/cli/stages/cleanup_local.rb +44 -0
- data/lib/dapp/dimg/cli/stages/cleanup_repo.rb +26 -0
- data/lib/dapp/dimg/cli/stages/flush_local.rb +23 -0
- data/lib/dapp/dimg/cli/stages/flush_repo.rb +24 -0
- data/lib/dapp/dimg/cli/stages/pull.rb +28 -0
- data/lib/dapp/dimg/cli/stages/push.rb +24 -0
- data/lib/dapp/dimg/cli/tag.rb +24 -0
- data/lib/dapp/dimg/config/artifact_dimg.rb +17 -0
- data/lib/dapp/dimg/config/artifact_group.rb +47 -0
- data/lib/dapp/dimg/config/base.rb +7 -0
- data/lib/dapp/dimg/config/dimg.rb +24 -0
- data/lib/dapp/dimg/config/dimg/instance_methods.rb +177 -0
- data/lib/dapp/dimg/config/dimg/validation.rb +126 -0
- data/lib/dapp/dimg/config/dimg_group.rb +61 -0
- data/lib/dapp/dimg/config/dimg_group_base.rb +54 -0
- data/lib/dapp/dimg/config/dimg_group_main.rb +22 -0
- data/lib/dapp/dimg/config/directive/artifact.rb +70 -0
- data/lib/dapp/dimg/config/directive/artifact_base.rb +97 -0
- data/lib/dapp/dimg/config/directive/base.rb +9 -0
- data/lib/dapp/dimg/config/directive/chef.rb +68 -0
- data/lib/dapp/dimg/config/directive/docker/artifact.rb +15 -0
- data/lib/dapp/dimg/config/directive/docker/base.rb +22 -0
- data/lib/dapp/dimg/config/directive/docker/dimg.rb +82 -0
- data/lib/dapp/dimg/config/directive/git_artifact_local.rb +47 -0
- data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +58 -0
- data/lib/dapp/dimg/config/directive/mount.rb +27 -0
- data/lib/dapp/dimg/config/directive/shell/artifact.rb +18 -0
- data/lib/dapp/dimg/config/directive/shell/dimg.rb +65 -0
- data/lib/dapp/dimg/dapp/command.rb +21 -0
- data/lib/dapp/dimg/dapp/command/bp.rb +20 -0
- data/lib/dapp/dimg/dapp/command/build.rb +22 -0
- data/lib/dapp/dimg/dapp/command/build_context/common.rb +27 -0
- data/lib/dapp/dimg/dapp/command/build_context/export.rb +55 -0
- data/lib/dapp/dimg/dapp/command/build_context/import.rb +71 -0
- data/lib/dapp/dimg/dapp/command/cleanup.rb +23 -0
- data/lib/dapp/dimg/dapp/command/common.rb +96 -0
- data/lib/dapp/dimg/dapp/command/list.rb +19 -0
- data/lib/dapp/dimg/dapp/command/mrproper.rb +75 -0
- data/lib/dapp/dimg/dapp/command/push.rb +27 -0
- data/lib/dapp/dimg/dapp/command/run.rb +15 -0
- data/lib/dapp/dimg/dapp/command/spush.rb +17 -0
- data/lib/dapp/dimg/dapp/command/stage_image.rb +14 -0
- data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +137 -0
- data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +124 -0
- data/lib/dapp/dimg/dapp/command/stages/common.rb +85 -0
- data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +21 -0
- data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +21 -0
- data/lib/dapp/dimg/dapp/command/stages/pull.rb +26 -0
- data/lib/dapp/dimg/dapp/command/stages/push.rb +22 -0
- data/lib/dapp/dimg/dapp/command/tag.rb +17 -0
- data/lib/dapp/dimg/dimg.rb +192 -0
- data/lib/dapp/dimg/dimg/git_artifact.rb +26 -0
- data/lib/dapp/dimg/dimg/path.rb +37 -0
- data/lib/dapp/dimg/dimg/stages.rb +60 -0
- data/lib/dapp/dimg/dimg/tags.rb +65 -0
- data/lib/dapp/dimg/docker_registry.rb +37 -0
- data/lib/dapp/dimg/docker_registry/base.rb +109 -0
- data/lib/dapp/dimg/docker_registry/base/authorization.rb +63 -0
- data/lib/dapp/dimg/docker_registry/base/request.rb +34 -0
- data/lib/dapp/dimg/docker_registry/default.rb +18 -0
- data/lib/dapp/dimg/error/base.rb +7 -0
- data/lib/dapp/dimg/error/build.rb +7 -0
- data/lib/dapp/dimg/error/chef.rb +11 -0
- data/lib/dapp/dimg/error/command.rb +7 -0
- data/lib/dapp/dimg/error/config.rb +7 -0
- data/lib/dapp/dimg/error/dimg.rb +7 -0
- data/lib/dapp/dimg/error/lock.rb +7 -0
- data/lib/dapp/dimg/error/registry.rb +7 -0
- data/lib/dapp/dimg/error/rugged.rb +7 -0
- data/lib/dapp/dimg/error/shellout.rb +7 -0
- data/lib/dapp/dimg/error/tar_writer.rb +7 -0
- data/lib/dapp/dimg/exception/base.rb +7 -0
- data/lib/dapp/dimg/exception/introspect_image.rb +7 -0
- data/lib/dapp/dimg/exception/registry.rb +7 -0
- data/lib/dapp/dimg/filelock.rb +43 -0
- data/lib/dapp/dimg/git_artifact.rb +241 -18
- data/lib/dapp/dimg/git_repo/base.rb +90 -0
- data/lib/dapp/dimg/git_repo/own.rb +39 -0
- data/lib/dapp/dimg/git_repo/remote.rb +50 -0
- data/lib/dapp/dimg/image/argument.rb +143 -0
- data/lib/dapp/dimg/image/docker.rb +127 -0
- data/lib/dapp/dimg/image/scratch.rb +32 -0
- data/lib/dapp/dimg/image/stage.rb +95 -0
- data/lib/dapp/dimg/lock/base.rb +51 -0
- data/lib/dapp/dimg/lock/file.rb +48 -0
- data/lib/dapp/error/base.rb +0 -1
- data/lib/dapp/error/dapp.rb +5 -0
- data/lib/dapp/error/dappfile.rb +0 -1
- data/lib/dapp/error/shellout.rb +0 -1
- data/lib/dapp/exception/base.rb +0 -1
- data/lib/dapp/helper/cli.rb +5 -6
- data/lib/dapp/helper/net_status.rb +0 -1
- data/lib/dapp/helper/sha256.rb +0 -1
- data/lib/dapp/helper/trivia.rb +0 -1
- data/lib/dapp/prctl.rb +0 -1
- data/lib/dapp/version.rb +1 -2
- metadata +172 -140
- data/lib/dapp/artifact.rb +0 -23
- data/lib/dapp/build/stage/after_install_artifact.rb +0 -13
- data/lib/dapp/build/stage/after_setup_artifact.rb +0 -17
- data/lib/dapp/build/stage/artifact_base.rb +0 -80
- data/lib/dapp/build/stage/artifact_default.rb +0 -63
- data/lib/dapp/build/stage/base.rb +0 -203
- data/lib/dapp/build/stage/before_install.rb +0 -32
- data/lib/dapp/build/stage/before_install_artifact.rb +0 -13
- data/lib/dapp/build/stage/before_setup.rb +0 -30
- data/lib/dapp/build/stage/before_setup_artifact.rb +0 -13
- data/lib/dapp/build/stage/build_artifact.rb +0 -36
- data/lib/dapp/build/stage/docker_instructions.rb +0 -24
- data/lib/dapp/build/stage/from.rb +0 -34
- data/lib/dapp/build/stage/ga_archive.rb +0 -27
- data/lib/dapp/build/stage/ga_archive_dependencies.rb +0 -26
- data/lib/dapp/build/stage/ga_artifact_patch.rb +0 -21
- data/lib/dapp/build/stage/ga_base.rb +0 -79
- data/lib/dapp/build/stage/ga_dependencies_base.rb +0 -19
- data/lib/dapp/build/stage/ga_latest_patch.rb +0 -53
- data/lib/dapp/build/stage/import_artifact.rb +0 -65
- data/lib/dapp/build/stage/install/ga_post_install_patch.rb +0 -21
- data/lib/dapp/build/stage/install/ga_post_install_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/install/ga_pre_install_patch.rb +0 -21
- data/lib/dapp/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/install/install.rb +0 -40
- data/lib/dapp/build/stage/mod/group.rb +0 -42
- data/lib/dapp/build/stage/mod/logging.rb +0 -104
- data/lib/dapp/build/stage/setup/ga_post_setup_patch.rb +0 -21
- data/lib/dapp/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -31
- data/lib/dapp/build/stage/setup/ga_pre_setup_patch.rb +0 -21
- data/lib/dapp/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/setup/setup.rb +0 -40
- data/lib/dapp/builder/chef/berksfile.rb +0 -78
- data/lib/dapp/builder/chef/cookbook.rb +0 -257
- data/lib/dapp/builder/chef/cookbook_metadata.rb +0 -54
- data/lib/dapp/builder/chef/error.rb +0 -12
- data/lib/dapp/cli/bp.rb +0 -37
- data/lib/dapp/cli/build.rb +0 -60
- data/lib/dapp/cli/cleanup.rb +0 -22
- data/lib/dapp/cli/list.rb +0 -17
- data/lib/dapp/cli/mrproper.rb +0 -26
- data/lib/dapp/cli/push.rb +0 -61
- data/lib/dapp/cli/run.rb +0 -53
- data/lib/dapp/cli/stage_image.rb +0 -24
- data/lib/dapp/cli/stages.rb +0 -23
- data/lib/dapp/cli/stages/cleanup_local.rb +0 -44
- data/lib/dapp/cli/stages/cleanup_repo.rb +0 -26
- data/lib/dapp/cli/stages/flush_local.rb +0 -23
- data/lib/dapp/cli/stages/flush_repo.rb +0 -24
- data/lib/dapp/cli/stages/pull.rb +0 -28
- data/lib/dapp/cli/stages/push.rb +0 -24
- data/lib/dapp/cli/tag.rb +0 -24
- data/lib/dapp/config/artifact_dimg.rb +0 -20
- data/lib/dapp/config/artifact_group.rb +0 -56
- data/lib/dapp/config/dimg.rb +0 -23
- data/lib/dapp/config/dimg/instance_methods.rb +0 -194
- data/lib/dapp/config/dimg/validation.rb +0 -125
- data/lib/dapp/config/dimg_group.rb +0 -60
- data/lib/dapp/config/dimg_group_base.rb +0 -53
- data/lib/dapp/config/dimg_group_main.rb +0 -21
- data/lib/dapp/config/directive/artifact.rb +0 -69
- data/lib/dapp/config/directive/artifact_base.rb +0 -93
- data/lib/dapp/config/directive/chef.rb +0 -57
- data/lib/dapp/config/directive/docker/artifact.rb +0 -15
- data/lib/dapp/config/directive/docker/base.rb +0 -20
- data/lib/dapp/config/directive/docker/dimg.rb +0 -81
- data/lib/dapp/config/directive/git_artifact_local.rb +0 -13
- data/lib/dapp/config/directive/git_artifact_remote.rb +0 -57
- data/lib/dapp/config/directive/mount.rb +0 -26
- data/lib/dapp/config/directive/shell/artifact.rb +0 -17
- data/lib/dapp/config/directive/shell/dimg.rb +0 -65
- data/lib/dapp/dimg/path.rb +0 -37
- data/lib/dapp/dimg/stages.rb +0 -59
- data/lib/dapp/dimg/tags.rb +0 -65
- data/lib/dapp/docker_registry.rb +0 -36
- data/lib/dapp/docker_registry/base.rb +0 -109
- data/lib/dapp/docker_registry/default.rb +0 -18
- data/lib/dapp/docker_registry/mod/authorization.rb +0 -63
- data/lib/dapp/docker_registry/mod/request.rb +0 -32
- data/lib/dapp/error/build.rb +0 -6
- data/lib/dapp/error/config.rb +0 -6
- data/lib/dapp/error/dimg.rb +0 -6
- data/lib/dapp/error/image.rb +0 -6
- data/lib/dapp/error/project.rb +0 -6
- data/lib/dapp/error/registry.rb +0 -6
- data/lib/dapp/error/rugged.rb +0 -6
- data/lib/dapp/error/tar_writer.rb +0 -6
- data/lib/dapp/exception/introspect_image.rb +0 -6
- data/lib/dapp/exception/registry.rb +0 -6
- data/lib/dapp/filelock.rb +0 -43
- data/lib/dapp/git_artifact.rb +0 -241
- data/lib/dapp/git_repo/base.rb +0 -88
- data/lib/dapp/git_repo/own.rb +0 -38
- data/lib/dapp/git_repo/remote.rb +0 -49
- data/lib/dapp/image/argument.rb +0 -134
- data/lib/dapp/image/docker.rb +0 -115
- data/lib/dapp/image/scratch.rb +0 -32
- data/lib/dapp/image/stage.rb +0 -94
- data/lib/dapp/lock/base.rb +0 -51
- data/lib/dapp/lock/error.rb +0 -14
- data/lib/dapp/lock/file.rb +0 -45
- data/lib/dapp/project/command/bp.rb +0 -21
- data/lib/dapp/project/command/build.rb +0 -20
- data/lib/dapp/project/command/cleanup.rb +0 -24
- data/lib/dapp/project/command/common.rb +0 -96
- data/lib/dapp/project/command/list.rb +0 -20
- data/lib/dapp/project/command/mrproper.rb +0 -69
- data/lib/dapp/project/command/push.rb +0 -28
- data/lib/dapp/project/command/run.rb +0 -15
- data/lib/dapp/project/command/spush.rb +0 -18
- data/lib/dapp/project/command/stage_image.rb +0 -15
- data/lib/dapp/project/command/stages/cleanup_local.rb +0 -138
- data/lib/dapp/project/command/stages/cleanup_repo.rb +0 -125
- data/lib/dapp/project/command/stages/common.rb +0 -86
- data/lib/dapp/project/command/stages/flush_local.rb +0 -22
- data/lib/dapp/project/command/stages/flush_repo.rb +0 -22
- data/lib/dapp/project/command/stages/pull.rb +0 -27
- data/lib/dapp/project/command/stages/push.rb +0 -23
- data/lib/dapp/project/command/tag.rb +0 -18
@@ -0,0 +1,22 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
module Config
|
4
|
+
module Directive
|
5
|
+
module Docker
|
6
|
+
class Base < Directive::Base
|
7
|
+
attr_reader :_from, :_from_cache_version
|
8
|
+
|
9
|
+
def from(image, cache_version: nil)
|
10
|
+
image = image.to_s
|
11
|
+
raise(Error::Config, code: :docker_from_incorrect,
|
12
|
+
data: { name: image }) unless ::Dapp::Dimg::Image::Docker.image_name?(image)
|
13
|
+
raise(Error::Config, code: :docker_from_without_tag, data: { name: image }) unless image.include?(':')
|
14
|
+
@_from = image
|
15
|
+
@_from_cache_version = cache_version
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
module Config
|
4
|
+
module Directive
|
5
|
+
module Docker
|
6
|
+
class Dimg < Base
|
7
|
+
attr_reader :_volume, :_expose, :_env, :_label, :_cmd, :_onbuild, :_workdir, :_user, :_entrypoint
|
8
|
+
|
9
|
+
def initialize(**kwargs, &blk)
|
10
|
+
@_volume = []
|
11
|
+
@_expose = []
|
12
|
+
@_env = {}
|
13
|
+
@_label = {}
|
14
|
+
@_cmd = []
|
15
|
+
@_onbuild = []
|
16
|
+
|
17
|
+
super(**kwargs, &blk)
|
18
|
+
end
|
19
|
+
|
20
|
+
def volume(*args)
|
21
|
+
@_volume.concat(args)
|
22
|
+
end
|
23
|
+
|
24
|
+
def expose(*args)
|
25
|
+
@_expose.concat(args)
|
26
|
+
end
|
27
|
+
|
28
|
+
def env(**options)
|
29
|
+
@_env.merge!(options)
|
30
|
+
end
|
31
|
+
|
32
|
+
def label(**options)
|
33
|
+
@_label.merge!(options)
|
34
|
+
end
|
35
|
+
|
36
|
+
def cmd(*args)
|
37
|
+
@_cmd.concat(args)
|
38
|
+
end
|
39
|
+
|
40
|
+
def onbuild(*args)
|
41
|
+
@_onbuild.concat(args)
|
42
|
+
end
|
43
|
+
|
44
|
+
def workdir(path)
|
45
|
+
@_workdir = path_format(path)
|
46
|
+
end
|
47
|
+
|
48
|
+
def user(val)
|
49
|
+
@_user = val
|
50
|
+
end
|
51
|
+
|
52
|
+
def entrypoint(*cmd_with_args)
|
53
|
+
@_entrypoint = cmd_with_args.flatten
|
54
|
+
end
|
55
|
+
|
56
|
+
def _change_options
|
57
|
+
{
|
58
|
+
volume: _volume,
|
59
|
+
expose: _expose,
|
60
|
+
env: _env,
|
61
|
+
label: _label,
|
62
|
+
cmd: _cmd,
|
63
|
+
onbuild: _onbuild,
|
64
|
+
workdir: _workdir,
|
65
|
+
user: _user,
|
66
|
+
entrypoint: _entrypoint
|
67
|
+
}
|
68
|
+
end
|
69
|
+
|
70
|
+
protected
|
71
|
+
|
72
|
+
def clone_to_artifact
|
73
|
+
Artifact.new(dapp: dapp).tap do |docker|
|
74
|
+
docker.instance_variable_set('@_from', @_from)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
module Config
|
4
|
+
module Directive
|
5
|
+
class GitArtifactLocal < ArtifactBase
|
6
|
+
alias add export
|
7
|
+
undef_method :export
|
8
|
+
|
9
|
+
class Export < ArtifactBase::Export
|
10
|
+
def stage_dependencies(&blk)
|
11
|
+
@stage_dependencies ||= StageDependencies.new(&blk)
|
12
|
+
end
|
13
|
+
|
14
|
+
def _artifact_options
|
15
|
+
super.merge(stages_dependencies: stage_dependencies.to_h)
|
16
|
+
end
|
17
|
+
|
18
|
+
class StageDependencies < Base
|
19
|
+
STAGES = [:install, :setup, :before_setup, :build_artifact].freeze
|
20
|
+
|
21
|
+
STAGES.each do |stage|
|
22
|
+
define_method(stage) do |*glob|
|
23
|
+
if (globs = glob.map { |g| path_format(g) }).any? { |g| Pathname(g).absolute? }
|
24
|
+
raise Error::Config, code: :stages_dependencies_paths_relative_path_required, data: { stage: stage }
|
25
|
+
end
|
26
|
+
instance_variable_set(:"@#{stage}", globs)
|
27
|
+
end
|
28
|
+
|
29
|
+
define_method("_#{stage}") do
|
30
|
+
instance_variable_get(:"@#{stage}") || []
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def initialize(&blk)
|
35
|
+
instance_eval(&blk) if block_given?
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_h
|
39
|
+
STAGES.map { |stage| [stage, send("_#{stage}")] }.to_h
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
module Config
|
4
|
+
module Directive
|
5
|
+
class GitArtifactRemote < GitArtifactLocal
|
6
|
+
attr_reader :_url, :_name, :_branch, :_commit
|
7
|
+
|
8
|
+
def initialize(url, **kwargs, &blk)
|
9
|
+
raise Error::Config, code: :git_artifact_remote_unsupported_protocol,
|
10
|
+
data: { url: url } unless %w(http https).include? URI(url.to_s).scheme
|
11
|
+
|
12
|
+
@_url = url
|
13
|
+
@_name = url.gsub(%r{.*?([^\/ ]+)\.git}, '\\1')
|
14
|
+
|
15
|
+
super(**kwargs, &blk)
|
16
|
+
end
|
17
|
+
|
18
|
+
def _export
|
19
|
+
super do |export|
|
20
|
+
export._url = @_url
|
21
|
+
export._name = @_name
|
22
|
+
export._branch ||= @_branch
|
23
|
+
export._commit ||= @_commit
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class Export < GitArtifactLocal::Export
|
28
|
+
attr_accessor :_url, :_name, :_branch, :_commit
|
29
|
+
|
30
|
+
def _artifact_options
|
31
|
+
super.merge(name: _name, branch: _branch)
|
32
|
+
end
|
33
|
+
|
34
|
+
protected
|
35
|
+
|
36
|
+
def branch(value)
|
37
|
+
@_branch = value
|
38
|
+
end
|
39
|
+
|
40
|
+
def commit(value)
|
41
|
+
@_commit = value
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
protected
|
46
|
+
|
47
|
+
def branch(value)
|
48
|
+
@_branch = value
|
49
|
+
end
|
50
|
+
|
51
|
+
def commit(value)
|
52
|
+
@_commit = value
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
module Config
|
4
|
+
module Directive
|
5
|
+
class Mount < Base
|
6
|
+
attr_reader :_from, :_to
|
7
|
+
attr_reader :_type
|
8
|
+
|
9
|
+
def initialize(to, **kwargs, &blk)
|
10
|
+
raise Error::Config, code: :mount_to_absolute_path_required unless Pathname((to = to.to_s)).absolute?
|
11
|
+
@_to = path_format(to)
|
12
|
+
|
13
|
+
super(**kwargs, &blk)
|
14
|
+
end
|
15
|
+
|
16
|
+
protected
|
17
|
+
|
18
|
+
def from(type)
|
19
|
+
type = type.to_sym
|
20
|
+
raise Error::Config, code: :mount_from_type_required unless [:tmp_dir, :build_dir].include? type
|
21
|
+
@_type = type
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
module Config
|
4
|
+
module Directive
|
5
|
+
module Shell
|
6
|
+
class Artifact < Dimg
|
7
|
+
attr_reader :_build_artifact
|
8
|
+
stage_command_generator(:build_artifact)
|
9
|
+
|
10
|
+
def empty?
|
11
|
+
super && _build_artifact_command.empty?
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
module Config
|
4
|
+
module Directive
|
5
|
+
module Shell
|
6
|
+
class Dimg < Directive::Base
|
7
|
+
attr_reader :_version
|
8
|
+
attr_reader :_before_install, :_before_setup, :_install, :_setup
|
9
|
+
|
10
|
+
def version(value)
|
11
|
+
@_version = value
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.stage_command_generator(stage)
|
15
|
+
define_method stage do |&blk|
|
16
|
+
(variable = instance_variable_get("@_#{stage}") || StageCommand.new(dapp: dapp)).instance_eval(&blk)
|
17
|
+
instance_variable_set("@_#{stage}", variable)
|
18
|
+
end
|
19
|
+
|
20
|
+
define_method "_#{stage}_command" do
|
21
|
+
return [] if (variable = instance_variable_get("@_#{stage}")).nil?
|
22
|
+
variable._run
|
23
|
+
end
|
24
|
+
|
25
|
+
define_method "_#{stage}_version" do
|
26
|
+
return [] if (variable = instance_variable_get("@_#{stage}")).nil?
|
27
|
+
variable._version || _version
|
28
|
+
end
|
29
|
+
end
|
30
|
+
[:before_install, :before_setup, :install, :setup].each(&method(:stage_command_generator))
|
31
|
+
|
32
|
+
class StageCommand < Directive::Base
|
33
|
+
attr_reader :_version
|
34
|
+
attr_reader :_run
|
35
|
+
|
36
|
+
def initialize(**kwargs, &blk)
|
37
|
+
@_run = []
|
38
|
+
|
39
|
+
super(**kwargs, &blk)
|
40
|
+
end
|
41
|
+
|
42
|
+
def run(*args)
|
43
|
+
@_run.concat(args)
|
44
|
+
end
|
45
|
+
|
46
|
+
def version(value)
|
47
|
+
@_version = value
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
protected
|
52
|
+
|
53
|
+
def empty?
|
54
|
+
(_before_install_command + _before_setup_command + _install_command + _setup_command).empty?
|
55
|
+
end
|
56
|
+
|
57
|
+
def clone_to_artifact
|
58
|
+
_clone_to Artifact.new(dapp: dapp)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Common)
|
2
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Run)
|
3
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Build)
|
4
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Bp)
|
5
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Push)
|
6
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Spush)
|
7
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Tag)
|
8
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::List)
|
9
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Stages::CleanupLocal)
|
10
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Stages::CleanupRepo)
|
11
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Stages::FlushLocal)
|
12
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Stages::FlushRepo)
|
13
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Stages::Push)
|
14
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Stages::Pull)
|
15
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Stages::Common)
|
16
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Cleanup)
|
17
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::Mrproper)
|
18
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::StageImage)
|
19
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::BuildContext::Import)
|
20
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::BuildContext::Export)
|
21
|
+
::Dapp::Dapp.send(:include, Dapp::Dimg::Dapp::Command::BuildContext::Common)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
class Dapp
|
4
|
+
module Command
|
5
|
+
module Bp
|
6
|
+
def bp(repo)
|
7
|
+
bp_step(:build)
|
8
|
+
bp_step(:push, repo)
|
9
|
+
bp_step(:stages_cleanup_by_repo, repo)
|
10
|
+
bp_step(:cleanup)
|
11
|
+
end
|
12
|
+
|
13
|
+
def bp_step(step, *args)
|
14
|
+
log_step_with_indent(step) { send(step, *args) }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end # Dimg
|
20
|
+
end # Dapp
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
class Dapp
|
4
|
+
module Command
|
5
|
+
module Build
|
6
|
+
def build
|
7
|
+
setup_ssh_agent
|
8
|
+
|
9
|
+
build_configs.each do |config|
|
10
|
+
log_dimg_name_with_indent(config) do
|
11
|
+
Dimg.new(config: config, dapp: self).build!
|
12
|
+
end
|
13
|
+
end
|
14
|
+
rescue ::Dapp::Error::Shellout, Error::Base
|
15
|
+
build_context_export unless cli_options[:build_context_directory].nil?
|
16
|
+
raise
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end # Dimg
|
22
|
+
end # Dapp
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
class Dapp
|
4
|
+
module Command
|
5
|
+
module BuildContext
|
6
|
+
module Common
|
7
|
+
def build_context_images_tar
|
8
|
+
build_context_path('images.tar')
|
9
|
+
end
|
10
|
+
|
11
|
+
def build_context_build_tar
|
12
|
+
build_context_path('build.tar')
|
13
|
+
end
|
14
|
+
|
15
|
+
def build_context_path(*path)
|
16
|
+
path.compact.map(&:to_s).inject(Pathname.new(build_context_directory), &:+).tap { |p| p.parent.mkpath }
|
17
|
+
end
|
18
|
+
|
19
|
+
def build_context_directory
|
20
|
+
File.expand_path(cli_options[:build_context_directory].to_s)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Dapp
|
2
|
+
module Dimg
|
3
|
+
class Dapp
|
4
|
+
module Command
|
5
|
+
module BuildContext
|
6
|
+
module Export
|
7
|
+
def build_context_export
|
8
|
+
log_process(:'export context') do
|
9
|
+
with_log_indent do
|
10
|
+
export_build_context_image_tar
|
11
|
+
export_build_context_build_tar
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def export_build_context_image_tar
|
17
|
+
lock("#{name}.images", readonly: true) do
|
18
|
+
context_images_names = build_configs.map do |config|
|
19
|
+
Dimg.new(config: config, dapp: self).tagged_images.map(&:name)
|
20
|
+
end.flatten
|
21
|
+
|
22
|
+
log_secondary_process(:images, short: true) do
|
23
|
+
Image::Docker.save!(context_images_names, build_context_images_tar)
|
24
|
+
end unless context_images_names.empty?
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def export_build_context_build_tar
|
29
|
+
log_secondary_process(:build_dir, short: true) do
|
30
|
+
File.open(build_context_build_tar, File::RDWR | File::CREAT) do |f|
|
31
|
+
Gem::Package::TarWriter.new(f) do |tar|
|
32
|
+
Dir.glob(File.join(build_path, '**/*'), File::FNM_DOTMATCH).each do |path|
|
33
|
+
archive_file_path = path
|
34
|
+
.reverse
|
35
|
+
.chomp(build_path.to_s.reverse)
|
36
|
+
.chomp('/')
|
37
|
+
.reverse
|
38
|
+
if File.directory?(path)
|
39
|
+
tar.mkdir archive_file_path, File.stat(path).mode
|
40
|
+
else
|
41
|
+
tar.add_file archive_file_path, File.stat(path).mode do |tf|
|
42
|
+
tf.write File.read(path)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|