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
data/lib/dapp/dapp/dappfile.rb
CHANGED
|
@@ -1,41 +1,67 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
class Dapp
|
|
3
3
|
module Dappfile
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def build_configs
|
|
13
|
-
@configs ||= begin
|
|
14
|
-
dimgs(dappfile_path).flatten.tap do |dimgs|
|
|
15
|
-
raise Error::Dapp, code: :no_such_dimg, data: { dimgs_patterns: dimgs_patterns.join(', ') } if dimgs.empty?
|
|
4
|
+
module Error
|
|
5
|
+
class DappfileYmlErrorResponse < ::Dapp::Error::Default
|
|
6
|
+
def initialize(error_code, response)
|
|
7
|
+
net_status = {}
|
|
8
|
+
net_status[:code] = error_code
|
|
9
|
+
net_status[:message] = response["message"] if response["message"]
|
|
10
|
+
super(net_status)
|
|
16
11
|
end
|
|
17
12
|
end
|
|
18
13
|
end
|
|
19
14
|
|
|
20
|
-
def dappfile_path
|
|
21
|
-
raise Error::Dapp, code: :dappfile_not_found unless (dappfile_path = search_file_upward('Dappfile'))
|
|
22
|
-
dappfile_path
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def work_dir
|
|
26
|
-
File.expand_path(cli_options[:dir] || Dir.pwd)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
15
|
def expand_path(path, number = 1)
|
|
30
16
|
path = File.expand_path(path)
|
|
31
17
|
number.times.each { path = File.dirname(path) }
|
|
32
18
|
path
|
|
33
19
|
end
|
|
34
20
|
|
|
35
|
-
def
|
|
36
|
-
|
|
21
|
+
def dappfile_exists?
|
|
22
|
+
File.exist?(path("dappfile.yml")) ||
|
|
23
|
+
File.exist?(path("dappfile.yaml")) ||
|
|
24
|
+
File.exist?(path("Dappfile")) ||
|
|
25
|
+
ENV["DAPP_LOAD_CONFIG_PATH"]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def config
|
|
29
|
+
@config ||= begin
|
|
30
|
+
config = nil
|
|
31
|
+
|
|
32
|
+
dappfile_yml = path("dappfile.yml").to_s
|
|
33
|
+
dappfile_yaml = path("dappfile.yaml").to_s
|
|
34
|
+
dappfile_ruby = path("Dappfile").to_s
|
|
35
|
+
|
|
36
|
+
if ENV["DAPP_LOAD_CONFIG_PATH"]
|
|
37
|
+
config = YAML.load_file ENV["DAPP_LOAD_CONFIG_PATH"]
|
|
38
|
+
elsif File.exist? dappfile_yml
|
|
39
|
+
config = load_dappfile_yml(dappfile_yml)
|
|
40
|
+
elsif File.exist? dappfile_yaml
|
|
41
|
+
config = load_dappfile_yml(dappfile_yaml)
|
|
42
|
+
elsif File.exist? dappfile_ruby
|
|
43
|
+
config = load_dappfile_ruby(dappfile_ruby)
|
|
44
|
+
else
|
|
45
|
+
raise ::Dapp::Error::Dapp, code: :dappfile_not_found
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
if ENV["DAPP_DUMP_CONFIG"]
|
|
49
|
+
puts "-- DAPP_DUMP_CONFIG BEGIN"
|
|
50
|
+
puts YAML.dump(config)
|
|
51
|
+
puts "-- DAPP_DUMP_CONFIG END"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
config.tap do
|
|
55
|
+
config.after_parsing!
|
|
56
|
+
config.validate!
|
|
57
|
+
end
|
|
58
|
+
end # begin
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def load_dappfile_ruby(dappfile_path)
|
|
62
|
+
::Dapp::Config::Config.new(dapp: self).tap do |config|
|
|
37
63
|
begin
|
|
38
|
-
|
|
64
|
+
config.instance_eval File.read(dappfile_path), dappfile_path
|
|
39
65
|
rescue SyntaxError, StandardError => e
|
|
40
66
|
backtrace = e.backtrace.find { |line| line.start_with?(dappfile_path) }
|
|
41
67
|
message = begin
|
|
@@ -49,12 +75,67 @@ module Dapp
|
|
|
49
75
|
end
|
|
50
76
|
end
|
|
51
77
|
message = "#{backtrace[/.*(?=:in)/]}: #{message}" if backtrace
|
|
52
|
-
raise Error::Dappfile, code: :incorrect, data: { error: e.class.name, message: message }
|
|
78
|
+
raise ::Dapp::Error::Dappfile, code: :incorrect, data: { error: e.class.name, message: message }
|
|
79
|
+
end # begin-rescue
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def load_dappfile_yml(dappfile_path)
|
|
84
|
+
if dappfile_yml_bin_path = ENV["DAPP_BIN_DAPPFILE_YML"]
|
|
85
|
+
unless File.exists? dappfile_yml_bin_path
|
|
86
|
+
raise ::Dapp::Error::Dapp, code: :dappfile_yml_bin_path_not_found, data: {path: dappfile_yml_bin_path}
|
|
53
87
|
end
|
|
54
|
-
|
|
55
|
-
|
|
88
|
+
else
|
|
89
|
+
dappfile_yml_bin_path = File.join(::Dapp::Dapp.home_dir, "bin", "dappfile-yml", ::Dapp::VERSION, "dappfile-yml")
|
|
90
|
+
unless File.exists? dappfile_yml_bin_path
|
|
91
|
+
download_dappfile_yml_bin(dappfile_yml_bin_path)
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
cmd_res = shellout "#{dappfile_yml_bin_path} -dappfile #{dappfile_path}"
|
|
96
|
+
|
|
97
|
+
raw_json_response = nil
|
|
98
|
+
if cmd_res.exitstatus == 0
|
|
99
|
+
raw_json_response = cmd_res.stdout
|
|
100
|
+
elsif cmd_res.exitstatus == 16
|
|
101
|
+
raw_json_response = cmd_res.stderr
|
|
102
|
+
else
|
|
103
|
+
shellout_cmd_should_succeed! cmd_res
|
|
56
104
|
end
|
|
105
|
+
|
|
106
|
+
response = JSON.parse(raw_json_response)
|
|
107
|
+
|
|
108
|
+
log_warning(response["warning"]) unless response["warning"].empty?
|
|
109
|
+
raise ::Dapp::Dapp::Dappfile::Error::DappfileYmlErrorResponse.new(response["error"], response) if response["error"]
|
|
110
|
+
|
|
111
|
+
YAML.load response["dappConfig"]
|
|
57
112
|
end
|
|
113
|
+
|
|
114
|
+
def download_dappfile_yml_bin(dappfile_yml_bin_path)
|
|
115
|
+
lock("downloader.bin.dappfile-yml", default_timeout: 1800) do
|
|
116
|
+
return if File.exists? dappfile_yml_bin_path
|
|
117
|
+
|
|
118
|
+
log_process("Downloading dappfile-yml dapp dependency") do
|
|
119
|
+
location = URI("https://dl.bintray.com/dapp/ruby2go/#{::Dapp::VERSION}/dappfile-yml")
|
|
120
|
+
|
|
121
|
+
tmp_bin_path = File.join(self.class.tmp_base_dir, "dappfile-yml-#{SecureRandom.uuid}")
|
|
122
|
+
::Dapp::Downloader.download(location, tmp_bin_path, show_progress: true, progress_titile: dappfile_yml_bin_path)
|
|
123
|
+
|
|
124
|
+
checksum_location = URI("https://dl.bintray.com/dapp/ruby2go/#{::Dapp::VERSION}/dappfile-yml.sha")
|
|
125
|
+
tmp_bin_checksum_path = tmp_bin_path + ".checksum"
|
|
126
|
+
::Dapp::Downloader.download(checksum_location, tmp_bin_checksum_path)
|
|
127
|
+
|
|
128
|
+
if Digest::SHA256.hexdigest(File.read(tmp_bin_path)) != File.read(tmp_bin_checksum_path).strip
|
|
129
|
+
raise ::Dapp::Error::Dapp, code: :download_failed_bad_dappfile_yml_checksum, data: {url: location.to_s, checksum_url: checksum_location.to_s}
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
File.chmod(0755, tmp_bin_path)
|
|
133
|
+
FileUtils.mkdir_p File.dirname(dappfile_yml_bin_path)
|
|
134
|
+
FileUtils.mv tmp_bin_path, dappfile_yml_bin_path
|
|
135
|
+
end # log_process
|
|
136
|
+
end # lock
|
|
137
|
+
end
|
|
138
|
+
|
|
58
139
|
end # Dappfile
|
|
59
140
|
end # Dapp
|
|
60
141
|
end # Dapp
|
data/lib/dapp/dapp/deps/base.rb
CHANGED
|
@@ -2,46 +2,23 @@ module Dapp
|
|
|
2
2
|
class Dapp
|
|
3
3
|
module Deps
|
|
4
4
|
module Base
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def base_container_name # FIXME: hashsum(image) or dockersafe()
|
|
8
|
-
"dappdeps_base_#{BASE_VERSION}"
|
|
5
|
+
def base_container
|
|
6
|
+
dappdeps_container(:base)
|
|
9
7
|
end
|
|
10
8
|
|
|
11
|
-
def
|
|
12
|
-
|
|
13
|
-
if shellout("docker inspect #{base_container_name}").exitstatus.nonzero?
|
|
14
|
-
log_secondary_process(t(code: 'process.base_container_creating'), short: true) do
|
|
15
|
-
shellout!(
|
|
16
|
-
['docker create',
|
|
17
|
-
"--name #{base_container_name}",
|
|
18
|
-
"--volume /.dapp/deps/base/#{BASE_VERSION} dappdeps/base:#{BASE_VERSION}"].join(' ')
|
|
19
|
-
)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
base_container_name
|
|
23
|
-
end
|
|
9
|
+
def dappdeps_base_path
|
|
10
|
+
ruby2go_dappdeps_command(dappdeps: :base, command: :path)
|
|
24
11
|
end
|
|
25
12
|
|
|
26
13
|
%w(rm rsync diff date cat
|
|
27
|
-
stat test sleep mkdir
|
|
28
|
-
install sed cp true
|
|
29
|
-
bash tar sudo).each do |
|
|
30
|
-
define_method("#{
|
|
14
|
+
stat readlink test sleep mkdir
|
|
15
|
+
install sed cp true find
|
|
16
|
+
bash tar sudo base64).each do |bin|
|
|
17
|
+
define_method("#{bin}_bin") { ruby2go_dappdeps_command(dappdeps: :base, command: :bin, options: { bin: bin }) }
|
|
31
18
|
end
|
|
32
19
|
|
|
33
20
|
def sudo_command(owner: nil, group: nil)
|
|
34
|
-
|
|
35
|
-
if owner || group
|
|
36
|
-
sudo = "#{sudo_bin} -E "
|
|
37
|
-
sudo += "-u #{sudo_format_user(owner)} " if owner
|
|
38
|
-
sudo += "-g #{sudo_format_user(group)} " if group
|
|
39
|
-
end
|
|
40
|
-
sudo
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def sudo_format_user(user)
|
|
44
|
-
user.to_s.to_i.to_s == user.to_s ? "\\\##{user}" : user
|
|
21
|
+
ruby2go_dappdeps_command(dappdeps: :base, command: :sudo_command, options: { owner: owner, group: group })
|
|
45
22
|
end
|
|
46
23
|
end # Base
|
|
47
24
|
end # Deps
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Dapp
|
|
2
|
+
class Dapp
|
|
3
|
+
module Deps
|
|
4
|
+
module Common
|
|
5
|
+
def dappdeps_container(dappdeps)
|
|
6
|
+
dappdeps_containers[dappdeps] ||= ruby2go_dappdeps_command(dappdeps: dappdeps, command: :container)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def dappdeps_containers
|
|
10
|
+
@dappdeps_containers ||= {}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def ruby2go_dappdeps_command(dappdeps:, command:, **options)
|
|
14
|
+
(options[:options] ||= {}).merge!(host_docker_config_dir: self.class.host_docker_config_dir)
|
|
15
|
+
ruby2go_dappdeps(dappdeps: dappdeps, command: command, **options).tap do |res|
|
|
16
|
+
unless res["error"].nil?
|
|
17
|
+
raise Error::Dapp, code: :ruby2go_dappdeps_command_failed_unexpected_error,
|
|
18
|
+
data: { dappdeps: dappdeps, command: command, message: res["error"] }
|
|
19
|
+
end
|
|
20
|
+
break res['data']
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end # Base
|
|
24
|
+
end # Deps
|
|
25
|
+
end # Dapp
|
|
26
|
+
end # Dapp
|
|
@@ -2,30 +2,12 @@ module Dapp
|
|
|
2
2
|
class Dapp
|
|
3
3
|
module Deps
|
|
4
4
|
module Gitartifact
|
|
5
|
-
GITARTIFACT_VERSION = '0.1.7'.freeze
|
|
6
|
-
|
|
7
|
-
def gitartifact_container_name # FIXME: hashsum(image) or dockersafe()
|
|
8
|
-
"dappdeps_gitartifact_#{GITARTIFACT_VERSION}"
|
|
9
|
-
end
|
|
10
|
-
|
|
11
5
|
def gitartifact_container
|
|
12
|
-
|
|
13
|
-
if shellout("docker inspect #{gitartifact_container_name}").exitstatus.nonzero?
|
|
14
|
-
log_secondary_process(t(code: 'process.gitartifact_container_creating'), short: true) do
|
|
15
|
-
shellout!(
|
|
16
|
-
['docker create',
|
|
17
|
-
"--name #{gitartifact_container_name}",
|
|
18
|
-
"--volume /.dapp/deps/gitartifact/#{GITARTIFACT_VERSION}",
|
|
19
|
-
"dappdeps/gitartifact:#{GITARTIFACT_VERSION}"].join(' ')
|
|
20
|
-
)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
gitartifact_container_name
|
|
24
|
-
end
|
|
6
|
+
dappdeps_container(:gitartifact)
|
|
25
7
|
end
|
|
26
8
|
|
|
27
9
|
def git_bin
|
|
28
|
-
|
|
10
|
+
ruby2go_dappdeps_command(dappdeps: :gitartifact, command: :bin)
|
|
29
11
|
end
|
|
30
12
|
end # Gitartifact
|
|
31
13
|
end # Deps
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
class Dapp
|
|
3
3
|
module GitArtifact
|
|
4
|
-
def
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
def dimgstage_g_a_commit_label(paramshash)
|
|
5
|
+
"dapp-git-#{paramshash}-commit"
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def dimgstage_g_a_type_label(paramshash)
|
|
9
|
+
"dapp-git-#{paramshash}-type"
|
|
8
10
|
end
|
|
9
11
|
end # GitArtifact
|
|
10
12
|
end # Dapp
|
data/lib/dapp/dapp/lock.rb
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
module Dapp
|
|
2
2
|
class Dapp
|
|
3
3
|
module Lock
|
|
4
|
-
def
|
|
5
|
-
|
|
4
|
+
def locks_dir
|
|
5
|
+
File.join(self.class.home_dir, "locks")
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
def _lock(name)
|
|
9
9
|
@_locks ||= {}
|
|
10
|
-
@_locks[name] ||= ::Dapp::Dimg::Lock::File.new(
|
|
10
|
+
@_locks[name] ||= ::Dapp::Dimg::Lock::File.new(locks_dir, name)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
# default_timeout 24 hours
|
|
14
|
+
def lock(name, *_args, default_timeout: 86400, **kwargs, &blk)
|
|
14
15
|
if dry_run?
|
|
15
16
|
yield if block_given?
|
|
16
17
|
else
|
|
17
|
-
timeout =
|
|
18
|
+
timeout = options[:lock_timeout] || default_timeout
|
|
18
19
|
_lock(name).synchronize(
|
|
19
20
|
timeout: timeout,
|
|
20
21
|
on_wait: proc do |&do_wait|
|
|
@@ -2,32 +2,48 @@ module Dapp
|
|
|
2
2
|
class Dapp
|
|
3
3
|
module Logging
|
|
4
4
|
module Base
|
|
5
|
+
class << self
|
|
6
|
+
def included(base)
|
|
7
|
+
base.send(:extend, ClassMethods)
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
module ClassMethods
|
|
12
|
+
def log_time
|
|
13
|
+
"#{DateTime.now.strftime('%Y-%m-%dT%T%z')} "
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
5
17
|
def log_quiet?
|
|
6
|
-
|
|
18
|
+
option_quiet
|
|
7
19
|
end
|
|
8
20
|
|
|
9
21
|
def log_time?
|
|
10
|
-
|
|
22
|
+
option_time
|
|
11
23
|
end
|
|
12
24
|
|
|
13
25
|
def log_verbose?
|
|
14
|
-
|
|
26
|
+
option_verbose
|
|
15
27
|
end
|
|
16
28
|
|
|
17
29
|
def ignore_config_warning?
|
|
18
|
-
|
|
30
|
+
!!options[:ignore_config_warning]
|
|
19
31
|
end
|
|
20
32
|
|
|
21
33
|
def introspect_error?
|
|
22
|
-
|
|
34
|
+
!!options[:introspect_error]
|
|
23
35
|
end
|
|
24
36
|
|
|
25
37
|
def introspect_before_error?
|
|
26
|
-
|
|
38
|
+
!!options[:introspect_before_error]
|
|
27
39
|
end
|
|
28
40
|
|
|
29
41
|
def dry_run?
|
|
30
|
-
|
|
42
|
+
option_dry_run
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def dev_mode?
|
|
46
|
+
option_dev
|
|
31
47
|
end
|
|
32
48
|
|
|
33
49
|
def log_info(*args, **kwargs)
|
|
@@ -42,9 +58,7 @@ module Dapp
|
|
|
42
58
|
|
|
43
59
|
def log_step_with_indent(step)
|
|
44
60
|
log_step(step)
|
|
45
|
-
with_log_indent
|
|
46
|
-
yield
|
|
47
|
-
end
|
|
61
|
+
with_log_indent { yield }
|
|
48
62
|
end
|
|
49
63
|
|
|
50
64
|
def log_step(*args, **kwargs)
|
|
@@ -82,7 +96,7 @@ module Dapp
|
|
|
82
96
|
end
|
|
83
97
|
|
|
84
98
|
def log_time
|
|
85
|
-
|
|
99
|
+
self.class.log_time
|
|
86
100
|
end
|
|
87
101
|
|
|
88
102
|
def log_format_string(str, time: true, indent: true, style: nil)
|
|
@@ -92,12 +106,6 @@ module Dapp
|
|
|
92
106
|
end.join
|
|
93
107
|
end
|
|
94
108
|
|
|
95
|
-
def log_with_indent(message = '', **kwargs)
|
|
96
|
-
with_log_indent do
|
|
97
|
-
log(message, **kwargs)
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
|
|
101
109
|
def with_log_indent(with = true)
|
|
102
110
|
log_indent_next if with
|
|
103
111
|
yield
|
|
@@ -121,9 +129,13 @@ module Dapp
|
|
|
121
129
|
end
|
|
122
130
|
end
|
|
123
131
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
132
|
+
def service_stream
|
|
133
|
+
@@service_stream ||= begin
|
|
134
|
+
fd = IO.sysopen("/tmp/dapp-service.log", "a")
|
|
135
|
+
|
|
136
|
+
stream = IO.new(fd)
|
|
137
|
+
stream.sync = true
|
|
138
|
+
stream
|
|
127
139
|
end
|
|
128
140
|
end
|
|
129
141
|
|
|
@@ -2,6 +2,10 @@ module Dapp
|
|
|
2
2
|
class Dapp
|
|
3
3
|
module Logging
|
|
4
4
|
module I18n
|
|
5
|
+
class I18nError < ::NetStatus::Exception
|
|
6
|
+
include ::Dapp::Error::Mod::User
|
|
7
|
+
end
|
|
8
|
+
|
|
5
9
|
def self.initialize
|
|
6
10
|
::I18n.load_path << Dir[File.join(::Dapp.root, 'config', '**', '*')].select { |path| File.file?(path) }
|
|
7
11
|
::I18n.reload!
|
|
@@ -16,7 +20,7 @@ module Dapp
|
|
|
16
20
|
paths << [:common, code].join('.')
|
|
17
21
|
::I18n.t(*paths, **data, raise: true)
|
|
18
22
|
rescue ::I18n::MissingTranslationData => _e
|
|
19
|
-
raise
|
|
23
|
+
raise I18nError, code: :missing_translation, data: { code: code }
|
|
20
24
|
end
|
|
21
25
|
end
|
|
22
26
|
end # Helper
|
|
@@ -36,24 +36,24 @@ module Dapp
|
|
|
36
36
|
|
|
37
37
|
if quiet
|
|
38
38
|
log_process_quiet(message.to_s, style: style, status: status, &blk)
|
|
39
|
-
elsif
|
|
39
|
+
elsif short
|
|
40
|
+
log_process_short(message.to_s, style: style, status: status, &blk)
|
|
41
|
+
else
|
|
40
42
|
process ||= t(code: 'status.process.default')
|
|
41
43
|
log_process_verbose(message.to_s, process: process, style: style, status: status, &blk)
|
|
42
|
-
else
|
|
43
|
-
log_process_short(message.to_s, style: style, status: status, &blk)
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
# rubocop:enable Metrics/ParameterLists
|
|
47
47
|
|
|
48
48
|
def log_secondary_process(message, **kwargs, &blk)
|
|
49
|
-
log_process(message, **kwargs.merge(style: { message: :secondary, success: :secondary }
|
|
49
|
+
log_process(message, **kwargs.merge(style: { message: :secondary, success: :secondary }), &blk)
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
protected
|
|
53
53
|
|
|
54
54
|
def log_process_quiet(message, style: {}, status: {})
|
|
55
55
|
yield
|
|
56
|
-
rescue Error::
|
|
56
|
+
rescue Error::Default => e
|
|
57
57
|
info = paint_string(slice(message), style[:message])
|
|
58
58
|
failed_message = paint_string(rjust(status[:failed], info), style[:failed])
|
|
59
59
|
before_error_messages = [log_indent + info + failed_message, e.net_status[:data][:before_error_messages]].flatten
|
|
@@ -80,7 +80,7 @@ module Dapp
|
|
|
80
80
|
log info, inline: inline
|
|
81
81
|
message = success_message
|
|
82
82
|
start = Time.now
|
|
83
|
-
yield
|
|
83
|
+
with_log_indent { yield }
|
|
84
84
|
rescue Error::Base, SignalException, StandardError => _e
|
|
85
85
|
message = failed_message
|
|
86
86
|
raise
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
module Dapp
|
|
2
|
+
class Dapp
|
|
3
|
+
module OptionTags
|
|
4
|
+
def tagging_schemes
|
|
5
|
+
%w(git_tag git_branch git_commit custom ci)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def tags_by_scheme
|
|
9
|
+
@tags_by_scheme_name ||= begin
|
|
10
|
+
if slug_tags[:custom].any?
|
|
11
|
+
if settings.fetch("sentry", {}).fetch("detect-push-tag-usage", false)
|
|
12
|
+
sentry_message("--tag or --tag-slug usage detected", extra: {"slug_tags" => slug_tags})
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
{}.tap do |tags_by_scheme|
|
|
17
|
+
[slug_tags, branch_tags, ci_tags].each do |_tags_by_scheme|
|
|
18
|
+
_tags_by_scheme.each do |scheme, tags|
|
|
19
|
+
tags_by_scheme[scheme] ||= []
|
|
20
|
+
tags_by_scheme[scheme] += tags.map(&method(:consistent_uniq_slugify))
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
[plain_tags, commit_tags, build_tags].each do |_tags_by_scheme|
|
|
25
|
+
_tags_by_scheme.each do |scheme, tags|
|
|
26
|
+
tags_by_scheme[scheme] ||= []
|
|
27
|
+
tags_by_scheme[scheme] += tags
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
tags_by_scheme[:custom] = [:latest] if tags_by_scheme.values.flatten.empty?
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def option_tags
|
|
37
|
+
tags_by_scheme.values.flatten
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def slug_tags
|
|
41
|
+
{ custom: [*options[:tag], *options[:tag_slug]]}
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def plain_tags
|
|
45
|
+
{ custom: options[:tag_plain] }
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def branch_tags
|
|
49
|
+
return {} unless options[:tag_branch]
|
|
50
|
+
raise Error::Dapp, code: :git_branch_without_name if (branch = git_own_repo.head_branch_name) == 'HEAD'
|
|
51
|
+
{ git_branch: [branch] }
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def commit_tags
|
|
55
|
+
return {} unless options[:tag_commit]
|
|
56
|
+
{ git_commit: [git_own_repo.head_commit] }
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def build_tags
|
|
60
|
+
return {} unless options[:tag_build_id]
|
|
61
|
+
|
|
62
|
+
if ENV['GITLAB_CI']
|
|
63
|
+
build_id = ENV['CI_BUILD_ID'] || ENV['CI_JOB_ID']
|
|
64
|
+
elsif ENV['TRAVIS']
|
|
65
|
+
build_id = ENV['TRAVIS_BUILD_NUMBER']
|
|
66
|
+
else
|
|
67
|
+
raise Error::Dapp, code: :ci_environment_required
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
{ ci: [build_id] }
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def ci_tags
|
|
74
|
+
return {} unless options[:tag_ci]
|
|
75
|
+
|
|
76
|
+
{}.tap do |tags_by_scheme|
|
|
77
|
+
if ENV['GITLAB_CI']
|
|
78
|
+
if ENV['CI_BUILD_TAG'] || ENV['CI_COMMIT_TAG']
|
|
79
|
+
tags_by_scheme[:git_tag] = [ENV['CI_BUILD_TAG'] || ENV['CI_COMMIT_TAG']]
|
|
80
|
+
elsif ENV['CI_BUILD_REF_NAME'] || ENV['CI_COMMIT_REF_NAME']
|
|
81
|
+
tags_by_scheme[:git_branch] = [ENV['CI_BUILD_REF_NAME'] || ENV['CI_COMMIT_REF_NAME']]
|
|
82
|
+
end
|
|
83
|
+
elsif ENV['TRAVIS']
|
|
84
|
+
if ENV['TRAVIS_TAG']
|
|
85
|
+
tags_by_scheme[:git_tag] = [ENV['TRAVIS_TAG']]
|
|
86
|
+
elsif ENV['TRAVIS_BRANCH']
|
|
87
|
+
tags_by_scheme[:git_branch] = [ENV['TRAVIS_BRANCH']]
|
|
88
|
+
end
|
|
89
|
+
else
|
|
90
|
+
raise Error::Dapp, code: :ci_environment_required
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
tags_by_scheme.delete_if { |_, tags| tags.first.nil? }
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end # Tags
|
|
97
|
+
end # Dapp
|
|
98
|
+
end # Dapp
|