deploy-context 2.13.17 → 2.13.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +1 -4
- data.tar.gz.sig +0 -0
- metadata +1 -34
- metadata.gz.sig +0 -0
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/context-knife-context.rb +0 -26
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/context-manager.rb +0 -100
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/cookbook-studio.rb +0 -72
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/cucumber-studio.rb +0 -45
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/cucumber-suite.rb +0 -179
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/default-studio.rb +0 -174
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/chef.rb +0 -57
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/context.rb +0 -42
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/cookbook.rb +0 -121
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/cucumber.rb +0 -42
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/deployer.rb +0 -83
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/git.rb +0 -62
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/habitat.rb +0 -112
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/ruby.rb +0 -138
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/vagrant.rb +0 -7
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/habitat-studio.rb +0 -50
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/helpers/command.rb +0 -91
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/helpers/gemspec.rb +0 -91
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/helpers/rake_tasks.rb +0 -150
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/knife/default_knife_context.rb +0 -35
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/knife/dummy_knife.rb +0 -43
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/ruby-studio.rb +0 -56
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/deploy.rb +0 -61
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/studio/base.rb +0 -167
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/studio/default.rb +0 -38
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/studio/deployer.rb +0 -24
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context.rb +0 -65
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-cucumber.rb +0 -18
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-git.rb +0 -47
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-habitat.rb +0 -82
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-kitchen.rb +0 -67
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-knife.rb +0 -45
- data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-rake.rb +0 -12
data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/chef.rb
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
module Context
|
2
|
-
module DeployHelpers
|
3
|
-
module ChefHelper
|
4
|
-
def prepare_workplan
|
5
|
-
FileUtils.mkdir 'workstation-space' unless Dir.exist?('workstation-space')
|
6
|
-
prepare_chef
|
7
|
-
prepare_gem
|
8
|
-
prepare_ssh
|
9
|
-
prepare_git
|
10
|
-
end
|
11
|
-
|
12
|
-
def prepare_chef
|
13
|
-
FileUtils.cp_r '/etc/chef', 'workstation-space/chef-client'
|
14
|
-
|
15
|
-
chef_user_keys_folder = 'workstation-space/chef_user_keys'
|
16
|
-
|
17
|
-
FileUtils.mkdir chef_user_keys_folder unless Dir.exist?(chef_user_keys_folder)
|
18
|
-
|
19
|
-
FileUtils.cp File.join(ENV['HOME'],'.chef/credentials'), 'workstation-space/chef_credentials'
|
20
|
-
client_keys = File.read('workstation-space/chef_credentials').split("\n").select do |line_str|
|
21
|
-
line_str.include?('client_key')
|
22
|
-
end
|
23
|
-
client_keys.each do |key_line|
|
24
|
-
key_file = key_line.split('=')[1].strip.split("'")[1]
|
25
|
-
debug_context_log 'Knife keys', "Copy file #{key_file} to #{chef_user_keys_folder}"
|
26
|
-
FileUtils.cp key_file, File.join(chef_user_keys_folder, File.basename(key_file))
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def prepare_gem
|
31
|
-
FileUtils.cp File.join(ENV['HOME'],'.local/share/gem/credentials'), 'workstation-space/gem_credentials'
|
32
|
-
end
|
33
|
-
|
34
|
-
def prepare_ssh
|
35
|
-
FileUtils.cp_r File.join(ENV['HOME'],'.ssh'), 'workstation-space/ssh'
|
36
|
-
end
|
37
|
-
|
38
|
-
def prepare_git
|
39
|
-
FileUtils.cp File.join(ENV['HOME'],'.gitconfig'), 'workstation-space/gitconfig'
|
40
|
-
end
|
41
|
-
|
42
|
-
def generate_user_json
|
43
|
-
warning_context_log 'Habitat origin secrets', JSON.pretty_generate({
|
44
|
-
HAB_STUDIO_SECRET_CHEF_SERVER_URL: 'https://api.chef.io/organizations/jimbodragon',
|
45
|
-
HAB_STUDIO_SECRET_CHEFVALIDATORKEY: File.read('workstation-space/chef-client/validation.pem'),
|
46
|
-
HAB_STUDIO_SECRET_SSHPRIVATEKEY: File.read('workstation-space/ssh/id_rsa'),
|
47
|
-
HAB_STUDIO_SECRET_SSHPUBLICKEY: File.read('workstation-space/ssh/id_rsa.pub'),
|
48
|
-
HAB_STUDIO_SECRET_CLIENT_NAME: 'jprovencher',
|
49
|
-
HAB_STUDIO_SECRET_CLIENT_KEY: File.read('workstation-space/chef_user_keys/jprovencher.pem'),
|
50
|
-
HAB_STUDIO_SECRET_GEMAPI: File.read('workstation-space/gem_credentials'),
|
51
|
-
HAB_STUDIO_SECRET_EMAIL: 'jimmy.provencher@hotmail.ca',
|
52
|
-
HAB_STUDIO_SECRET_FULLNAME: 'Jimmy Provencher'
|
53
|
-
})
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
module Context
|
2
|
-
module DeployHelpers
|
3
|
-
module ContextHelper
|
4
|
-
def present_localy?
|
5
|
-
Dir.exist?(context_folder)
|
6
|
-
end
|
7
|
-
|
8
|
-
def shorten_version(context)
|
9
|
-
context. debug_context_log "Shorten Version", "Getting shorten version #{context.version}"
|
10
|
-
context.version.canonical_segments[0..2].join('.')
|
11
|
-
end
|
12
|
-
|
13
|
-
def actual_working_directory?
|
14
|
-
Dir.pwd == context_folder
|
15
|
-
end
|
16
|
-
|
17
|
-
def move_folder(folder)
|
18
|
-
@context_folder = folder.include?(context_name) ? folder : File.join(folder, context_name)
|
19
|
-
end
|
20
|
-
|
21
|
-
def check_folder(folder)
|
22
|
-
FileUtils.mkdir_p(context_folder) unless present_localy?
|
23
|
-
end
|
24
|
-
|
25
|
-
def show_new_version(level)
|
26
|
-
context_log "#{level} bump #{context_name} at newer version #{version}"
|
27
|
-
end
|
28
|
-
|
29
|
-
def is_present_publicly?
|
30
|
-
ruby_check_if_available_public(self)
|
31
|
-
end
|
32
|
-
|
33
|
-
def new_update_available?
|
34
|
-
git_update_available?(self)
|
35
|
-
end
|
36
|
-
|
37
|
-
def ready_for_major_update?
|
38
|
-
false
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,121 +0,0 @@
|
|
1
|
-
|
2
|
-
module Context
|
3
|
-
module DeployHelpers
|
4
|
-
module CookbookHelper
|
5
|
-
def bundle_chef(context, commands, command_type = :system)
|
6
|
-
context.debug_context_log context.context_name, "Executing chef command #{commands}"
|
7
|
-
context.execute_command(%w(chef) + commands, command_type)
|
8
|
-
end
|
9
|
-
|
10
|
-
def chef_exec(context, commands, command_type = :system)
|
11
|
-
context.bundle_chef(context, %w(exec) + commands, command_type)
|
12
|
-
end
|
13
|
-
|
14
|
-
def knife(context, commands, command_type = :system)
|
15
|
-
context.chef_exec(context, %w(knife) + commands, command_type)
|
16
|
-
end
|
17
|
-
|
18
|
-
def kitchen(context, commands = %w(test), command_type = :system)
|
19
|
-
context.execute_command(%w(kitchen) + commands, command_type)
|
20
|
-
end
|
21
|
-
|
22
|
-
def cookbook_path(context)
|
23
|
-
File.dirname(context.context_folder)
|
24
|
-
end
|
25
|
-
|
26
|
-
def chef_generate(context, commands)
|
27
|
-
context.debug_context_log(context.context_name, "\n\nGenerating Chef components with command #{commands}")
|
28
|
-
context.bundle_chef(context, %w(generate) + commands)
|
29
|
-
end
|
30
|
-
|
31
|
-
def generate_cookbook(context, cookbookname)
|
32
|
-
context.chef_generate(context, %w(cookbook) + cookbookname)
|
33
|
-
end
|
34
|
-
|
35
|
-
def cookbook_build(context)
|
36
|
-
context.debug_context_log(context.context_name, "\n\nBuilding cookbook #{context.context_name}\n\n")
|
37
|
-
context.git_build(context)
|
38
|
-
|
39
|
-
Dir.chdir File.dirname(context.context_folder)
|
40
|
-
# context.generate_cookbook(context, [context.context_name]) unless Dir.exist?(context.get_context_file(context, 'recipes'))
|
41
|
-
|
42
|
-
Dir.chdir context.context_folder
|
43
|
-
context.debug_context_log(context.context_name, "\n\nBuilding cookbook #{context.context_name} in path #{Dir.pwd} for folder #{context.context_folder}\n\n")
|
44
|
-
context.set_cookbook_version(context)
|
45
|
-
end
|
46
|
-
|
47
|
-
def cookbook_test(context)
|
48
|
-
context.cookbook_build(context)
|
49
|
-
context.debug_context_log context.context_name, "\n\nExecuting kitchen in folder #{Dir.pwd}\nAnd context #{context.context_name} is created in folder #{context.context_folder} at version #{context.version}"
|
50
|
-
context.kitchen(context)
|
51
|
-
end
|
52
|
-
|
53
|
-
def cookbook_test_successful?(context)
|
54
|
-
result = cookbook_test(context)
|
55
|
-
context.debug_context_log context.context_name, "\n\nCookbook test result: #{result}"
|
56
|
-
result
|
57
|
-
end
|
58
|
-
|
59
|
-
def cookbook_install(context)
|
60
|
-
cookbook_build(context)
|
61
|
-
context.debug_context_log context.context_name, "\n\nInstalling cookbook in folder #{Dir.pwd}\nAnd context #{context.context_name} is created in folder #{context.context_folder} at version #{context.version}"
|
62
|
-
context.bundle_chef(context, %w(install))
|
63
|
-
end
|
64
|
-
|
65
|
-
def knife_push(context)
|
66
|
-
cookbook_build(context)
|
67
|
-
context.debug_context_log context.context_name, "\n\nKnife pushing cookbook in folder #{Dir.pwd}\nAnd context #{context.context_name} is created in folder #{context.context_folder} at version #{context.version}"
|
68
|
-
context.knife context, ['cookbook', 'upload', context.context_name, '--cookbook-path', context.cookbook_path(context)]
|
69
|
-
end
|
70
|
-
|
71
|
-
def cookbook_push(context)
|
72
|
-
cookbook_build(context)
|
73
|
-
context.debug_context_log context.context_name, "\n\nChef pushing cookbook in folder #{Dir.pwd}\nAnd context #{context.context_name} is created in folder #{context.context_folder} at version #{context.version}"
|
74
|
-
context.bundle_chef(context, ['push', context.context_name, 'Policyfile.lock.json'])
|
75
|
-
end
|
76
|
-
|
77
|
-
def supermarket_push(context)
|
78
|
-
cookbook_build(context)
|
79
|
-
context.debug_context_log context.context_name, "\n\nPushing cookbook in folder #{Dir.pwd}\nAnd context #{context.context_name} is created in folder #{context.context_folder} at version #{context.version}"
|
80
|
-
context.bundle_chef(context, ['supermarket', 'share', context.context_name, '--cookbook-path', context.cookbook_path(context)])
|
81
|
-
end
|
82
|
-
|
83
|
-
def clean_file(context, file)
|
84
|
-
clean_file = context.get_context_file(context, file)
|
85
|
-
context.debug_context_log context.context_name, "Clean file #{clean_file}"
|
86
|
-
FileUtils.rm(clean_file) if File.exist?(clean_file)
|
87
|
-
end
|
88
|
-
|
89
|
-
def cookbook_clean(context)
|
90
|
-
context.cookbook_build(context)
|
91
|
-
context.debug_context_log context.context_name, "\n\nCleaning cookbook in folder #{Dir.pwd}\nAnd context #{context.context_name} is created in folder #{context.context_folder} at version #{context.version}"
|
92
|
-
context.clean_file(context, 'Policyfile.lock.json')
|
93
|
-
end
|
94
|
-
|
95
|
-
def mix_run_list(context, run_list)
|
96
|
-
context.bundle_exec(context, ['chef-client', '-o', run_list])
|
97
|
-
end
|
98
|
-
|
99
|
-
def cookbook_version(context)
|
100
|
-
context_version_file = context.get_context_file(context, 'VERSION')
|
101
|
-
context_version_file = if File.exist? context_version_file
|
102
|
-
context_version_file
|
103
|
-
else
|
104
|
-
File.join(__dir__, '../../../VERSION')
|
105
|
-
end
|
106
|
-
context.context_log "context_version_file = #{context_version_file}"
|
107
|
-
File.read(context_version_file)
|
108
|
-
end
|
109
|
-
|
110
|
-
def set_cookbook_version(context)
|
111
|
-
context.git_build(context)
|
112
|
-
if(defined?(GVB))
|
113
|
-
File.write(context.get_context_file(context, 'VERSION'), context.shorten_version(context).strip)
|
114
|
-
File.write(context.get_context_file(context, 'DATE'), GVB.date)
|
115
|
-
else
|
116
|
-
context.warning_context_log(context.context_name, "Unable to set the cookbook version as GVB is not defined")
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
module Context
|
2
|
-
module DeployHelpers
|
3
|
-
module CucumberHelper
|
4
|
-
def cucumber_configuration(context, commands)
|
5
|
-
context.existing_cucumber_configuration = Cucumber::Cli::Main.new(commands.dup).configuration unless context.existing_cucumber_configuration
|
6
|
-
context.existing_cucumber_configuration
|
7
|
-
end
|
8
|
-
|
9
|
-
def cucumber_runtime(context, commands)
|
10
|
-
return Cucumber::Runtime.new(context.cucumber_configuration(context, commands)) unless context.existing_cucumber_runtime
|
11
|
-
|
12
|
-
context.existing_cucumber_runtime.configure(context.cucumber_configuration(context, commands))
|
13
|
-
context.existing_cucumber_runtime
|
14
|
-
end
|
15
|
-
|
16
|
-
def cucumber(context, commands = [])
|
17
|
-
# begin
|
18
|
-
# require 'cucumber'
|
19
|
-
# context.existing_cucumber_runtime = context.cucumber_runtime(context, commands)
|
20
|
-
# context.cucumber_runtime(context, commands).run!
|
21
|
-
# rescue Exception => e
|
22
|
-
# context.warning_context_log context.context_name, "Cucumber library not available", "Unable to use internal cucumber, using external application instead for command #{commands}"
|
23
|
-
# context.execute_command(%w(chef exec cucumber) + commands)
|
24
|
-
# end
|
25
|
-
# # context.bundle_exec(context,['cucumber'] + commands)
|
26
|
-
context.execute_command(%w(chef exec cucumber) + commands)
|
27
|
-
end
|
28
|
-
|
29
|
-
def cucumber_test(context)
|
30
|
-
context.git_build(context)
|
31
|
-
context.debug_context_log context.context_name, "Working in folder #{Dir.pwd}\nAnd context #{context.context_name} is created in folder #{context.context_folder} at version #{context.version}"
|
32
|
-
context.cucumber(context)
|
33
|
-
end
|
34
|
-
|
35
|
-
def cucumber_test_successful?(context)
|
36
|
-
result = cucumber_test(context)
|
37
|
-
context.debug_context_log context.context_name, "\n\nCucumber test result: #{result}"
|
38
|
-
result
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
module Context
|
2
|
-
module DeployHelpers
|
3
|
-
module DeployerHelper
|
4
|
-
def load_public_dependencies
|
5
|
-
require 'rubygems'
|
6
|
-
require 'bundler'
|
7
|
-
# require 'bundler/setup'
|
8
|
-
# require 'bundler/installer'
|
9
|
-
|
10
|
-
require 'rdoc/task'
|
11
|
-
|
12
|
-
require 'git-version-bump'
|
13
|
-
require 'git-version-bump/rake-tasks'
|
14
|
-
|
15
|
-
require 'cucumber'
|
16
|
-
require 'cucumber/rake/task'
|
17
|
-
|
18
|
-
require_relative '../../deploy-context'
|
19
|
-
end
|
20
|
-
|
21
|
-
def get_context_file(context, file)
|
22
|
-
File.join(context.context_folder, file)
|
23
|
-
end
|
24
|
-
|
25
|
-
def build_folder(context)
|
26
|
-
context.get_context_file(context, 'build')
|
27
|
-
end
|
28
|
-
|
29
|
-
def contexts_container(context)
|
30
|
-
context.get_context_file(context, 'contexts')
|
31
|
-
end
|
32
|
-
|
33
|
-
def show_help(context)
|
34
|
-
help_message = <<MESSAGE_END
|
35
|
-
#{
|
36
|
-
context.actions_permitted.each do |action|
|
37
|
-
puts "Available action '#{action}'"
|
38
|
-
end
|
39
|
-
}
|
40
|
-
Use not option or the option 'cycle' to cycle through the deployer once
|
41
|
-
Use the option 'agent' to made a continual loop of the cycle
|
42
|
-
Use the option 'bump' to bump the patch version
|
43
|
-
Use the option 'release' to bump the minor version
|
44
|
-
Use the option 'upgrade' to bump the major version
|
45
|
-
Use the option 'test' to test the context
|
46
|
-
Use the option 'reset' to execute the local cycle once
|
47
|
-
Use the option 'help' to show this message
|
48
|
-
MESSAGE_END
|
49
|
-
context.warning_context_log(context.context_name, help_message)
|
50
|
-
end
|
51
|
-
|
52
|
-
def actions_permitted?(action)
|
53
|
-
context_log "Is Default action '#{action}' permitted?"
|
54
|
-
action_is_permit = actions_permitted.include?(action)
|
55
|
-
|
56
|
-
context_log "The answer is #{action_is_permit} through '#{actions_permitted}'"
|
57
|
-
action_is_permit
|
58
|
-
end
|
59
|
-
|
60
|
-
def execute_action(context, action)
|
61
|
-
state_action = if action.nil?
|
62
|
-
show_help(context)
|
63
|
-
false
|
64
|
-
else
|
65
|
-
if context.respond_to?(action)
|
66
|
-
context.debug_context_log(context.context_name, "\n\nStarting Action '#{action}'")
|
67
|
-
context.send(action)
|
68
|
-
else
|
69
|
-
context.error_context_log(context, "Action '#{action}' is unavailable")
|
70
|
-
false
|
71
|
-
end
|
72
|
-
end
|
73
|
-
# context.commit
|
74
|
-
if state_action || ! state_action.kind_of?(Integer)
|
75
|
-
context.debug_context_log context.context_name, "\n\nAction #{action} executed correctly in context #{context}.context_name"
|
76
|
-
state_action.perform unless state_action.kind_of?(TrueClass)
|
77
|
-
else
|
78
|
-
context.error_context_log(context.context_name, "Failed to execute action #{action} in context #{context.context_name} resulting to a #{state_action}")
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/git.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
module Context
|
2
|
-
module DeployHelpers
|
3
|
-
module GitHelper
|
4
|
-
def bundle_git(context, commands, command_type = :system)
|
5
|
-
context.execute_command(%w(git) + commands, command_type)
|
6
|
-
end
|
7
|
-
|
8
|
-
def git_build(context)
|
9
|
-
if context.present_localy?
|
10
|
-
Dir.chdir(context.context_folder)
|
11
|
-
context.git_pull(context)
|
12
|
-
true
|
13
|
-
else
|
14
|
-
context.error_context_log context.context_name, "Cloning from source in #{Dir.pwd}"
|
15
|
-
local_dir = File.join(Dir.pwd, context.context_name)
|
16
|
-
context.bundle_git context, ["clone git@github.com:JimboDragonGit/#{context.context_name}.git"] unless ::Dir.exist?(local_dir)
|
17
|
-
context.move_folder(local_dir)
|
18
|
-
true
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def git_pull(context)
|
23
|
-
context.git_build(context) unless context.actual_working_directory?
|
24
|
-
context.debug_context_log context.context_name, "Git pull result: #{context.bundle_git context, %w(pull origin master)}"
|
25
|
-
end
|
26
|
-
|
27
|
-
def git_commit(context)
|
28
|
-
context.git_build(context)
|
29
|
-
context.bundle_git context, ['add .']
|
30
|
-
context.bundle_git context, ["commit -m 'Create #{context.context_name} automatic commit'"]
|
31
|
-
end
|
32
|
-
|
33
|
-
# def git_release(context)
|
34
|
-
# context.git_build(context)
|
35
|
-
# context.git context, ['push', '--follow-tags']
|
36
|
-
# end
|
37
|
-
|
38
|
-
# def git_bump(context, level)
|
39
|
-
# context.git_build(context)
|
40
|
-
# context.git context, ['version-bump', level]
|
41
|
-
# context.git_commit(context)
|
42
|
-
# end
|
43
|
-
|
44
|
-
# def patch_reset(context)
|
45
|
-
# context.git_build(context)
|
46
|
-
# context.git_bump(context, 'minor')
|
47
|
-
# end
|
48
|
-
|
49
|
-
def git_update_available?(context)
|
50
|
-
context.git_build(context)
|
51
|
-
# context.git ['log', "v#{context.version}"]
|
52
|
-
context.bundle_git(context, ['ls-remote origin', "v#{context.version}"], :get_data)
|
53
|
-
end
|
54
|
-
|
55
|
-
def git_dirty_state?(context)
|
56
|
-
context.git_build(context)
|
57
|
-
# context.git ['log', "v#{context.version}"]
|
58
|
-
context.bundle_git(context, ["status --porcelain"], :get_data).split('\n').count > 0
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,112 +0,0 @@
|
|
1
|
-
module Context
|
2
|
-
module DeployHelpers
|
3
|
-
module HabitatHelper
|
4
|
-
def habitat_organisation_name(context)
|
5
|
-
context.organisation_name
|
6
|
-
end
|
7
|
-
|
8
|
-
def habitat(context, commands = [], command_type = :system)
|
9
|
-
context.bundle_exec(context, ['hab'] + commands, command_type)
|
10
|
-
end
|
11
|
-
|
12
|
-
def intialize_habitat(context, commands = [], command_type = :system)
|
13
|
-
context.habitat(context, ['plan', 'init'] + commands, command_type)
|
14
|
-
end
|
15
|
-
|
16
|
-
def render_habitat(context, commands = [], command_type = :system)
|
17
|
-
context.habitat(context, ['plan', 'render'] + commands, command_type)
|
18
|
-
end
|
19
|
-
|
20
|
-
def build_habitat(context, commands = [], command_type = :system)
|
21
|
-
context.habitat(context, ['studio', 'build', 'habitat/plan.sh'] + commands, command_type)
|
22
|
-
end
|
23
|
-
|
24
|
-
def start_habitat_job(context, commands = [], command_type = :system)
|
25
|
-
context.debug_context_log(context.context_name, "Starting an Habitat job #{context.get_shell_data(['hab', 'bldr', 'job', 'start', 'habitat/plan.sh'])}", command_type)
|
26
|
-
true
|
27
|
-
end
|
28
|
-
|
29
|
-
def promote_habitat(context, job_id = File.read(get_context_file(context, 'HAB_BUILD_ID')), channel = 'unstable')
|
30
|
-
if ! context.already_promoted?(context) && context.latest_hab_build_succeed?(context)
|
31
|
-
context.set_hab_build_id(context, context.hab_latest_build_status(context).id)
|
32
|
-
context.habitat(context, ['bldr', 'job', 'promote', job_id, channel])
|
33
|
-
else
|
34
|
-
context.error_context_log(context.context_name, "Promote context #{context.context_name} impossible")
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def load_habitat(context, commands = [], command_type = :system)
|
39
|
-
supervisor_command = %w(hab svc load) + ["#{habitat_organisation_name(context)}/#{context.context_name}", '--strategy at-once']
|
40
|
-
if context.is_admin?
|
41
|
-
context.habitat(context, supervisor_command + commands, command_type)
|
42
|
-
else
|
43
|
-
context.execute_command(%w(sudo hab) + supervisor_command + commands, command_type) unless Gem.win_platform?
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def run_habitat_supervisor(context, commands = [], command_type = :system)
|
48
|
-
supervisor_command = %w(sup run)
|
49
|
-
if context.is_admin?
|
50
|
-
context.habitat(context, supervisor_command + commands, command_type)
|
51
|
-
else
|
52
|
-
context.execute_command(%w(sudo hab) + supervisor_command + commands, command_type) unless Gem.win_platform?
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def install_habitat_supervisor(context, commands = [], command_type = :system)
|
57
|
-
supervisor_command = %w(sup run)
|
58
|
-
if context.is_admin?
|
59
|
-
context.habitat(context, supervisor_command + commands, command_type)
|
60
|
-
else
|
61
|
-
context.execute_command(%w(sudo hab) + supervisor_command + commands, command_type) unless Gem.win_platform?
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def hab_latest_build_status(context)
|
66
|
-
build_result = OpenStruct.new
|
67
|
-
build_result.command = [
|
68
|
-
'hab bldr job status',
|
69
|
-
'--showjobs -l 25 --origin',
|
70
|
-
context.organisation_name,
|
71
|
-
"| grep '#{context.context_name}' | head -n 1",
|
72
|
-
]
|
73
|
-
# build_result.result_file = File.join(context.temp_dir, 'raw_return.txt')
|
74
|
-
# context.debug_context_log context.context_name, "Getting data from command #{build_result.command} and result at #{build_result.result_file}"
|
75
|
-
# File.write(build_result.result_file, context.get_shell_data(build_result.command))
|
76
|
-
# build_result.build_id_raw = "#{File.read(build_result.result_file)}"
|
77
|
-
# context.debug_context_log context.context_name, "And raw return from file is #{build_result.build_id_raw}"
|
78
|
-
# build_result.return_arr = build_result.build_id_raw.split("\n")
|
79
|
-
# context.debug_context_log context.context_name, "And return array is #{build_result.return_arr}"
|
80
|
-
# build_result.return_str = build_result.return_arr[3]
|
81
|
-
# context.debug_context_log context.context_name, "And return string is #{build_result.return_str}"
|
82
|
-
# build_result.result_arr = build_result.return_str.split(' ')
|
83
|
-
# context.debug_context_log context.context_name, "And result array is #{build_result.result_arr}"
|
84
|
-
|
85
|
-
result_array = context.get_shell_data(build_result.command).split("\n")[0].split(' ')
|
86
|
-
build_result.id = result_array[1]
|
87
|
-
build_result.status = result_array[2]
|
88
|
-
build_result
|
89
|
-
end
|
90
|
-
|
91
|
-
def hab_build_id(context)
|
92
|
-
File.read(context.get_context_file(context, 'HAB_BUILD_ID'))
|
93
|
-
end
|
94
|
-
|
95
|
-
def already_promoted?(context)
|
96
|
-
context.hab_latest_build_status(context).id == context.hab_build_id(context)
|
97
|
-
end
|
98
|
-
|
99
|
-
def latest_hab_build_succeed?(context)
|
100
|
-
context.hab_latest_build_status(context).status == 'Complete'
|
101
|
-
end
|
102
|
-
|
103
|
-
def set_hab_build_id(context, new_build_id)
|
104
|
-
context.git_build(context)
|
105
|
-
# , "#{organisation_name}/#{context_name}"
|
106
|
-
context.debug_context_log context.context_name, "Setting the build ID from #{context.hab_build_id(context)} to #{new_build_id}"
|
107
|
-
|
108
|
-
File.write(context.get_context_file(context, 'HAB_BUILD_ID'), new_build_id)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/ruby.rb
DELETED
@@ -1,138 +0,0 @@
|
|
1
|
-
module Context
|
2
|
-
module DeployHelpers
|
3
|
-
module RubyHelper
|
4
|
-
def bundle(context, commands, command_type = :system)
|
5
|
-
context.debug_context_log context.context_name, "Executing chef command #{commands}"
|
6
|
-
context.execute_command(%w(bundle) + commands, command_type)
|
7
|
-
end
|
8
|
-
|
9
|
-
def bundle_exec(context, commands, command_type = :system)
|
10
|
-
context.bundle(context, %w(exec) + commands, command_type)
|
11
|
-
end
|
12
|
-
|
13
|
-
def bundle_install(context, commands, command_type = :system)
|
14
|
-
context.bundle(context, %w(install) + commands, command_type)
|
15
|
-
end
|
16
|
-
|
17
|
-
def bundle_gem(context, commands, command_type = :system)
|
18
|
-
context.execute_command(%w(gem) + commands, command_type)
|
19
|
-
end
|
20
|
-
|
21
|
-
def bundle_rake(context, commands = [], command_type = :system)
|
22
|
-
context.execute_command(%w(rake) + commands, command_type)
|
23
|
-
end
|
24
|
-
|
25
|
-
def ruby_build(context)
|
26
|
-
context.git_build(context)
|
27
|
-
context.debug_context_log context.context_name, "Working in folder #{Dir.pwd}\nAnd context #{context.context_name} is created"
|
28
|
-
check_folder get_context_file(context, 'build')
|
29
|
-
end
|
30
|
-
|
31
|
-
def ruby_release(context)
|
32
|
-
context.git_build(context)
|
33
|
-
# gem ["push #{context.context_name}-#{GVB.version}.gem"]
|
34
|
-
# context.patch_bump if gem_installed?(context, context.context_name)
|
35
|
-
context.bundle_rake context, ['release']
|
36
|
-
# context.commit
|
37
|
-
end
|
38
|
-
|
39
|
-
def ruby_install(context)
|
40
|
-
context.bundle_gem context, ['install', context.context_name]
|
41
|
-
end
|
42
|
-
|
43
|
-
def clean_folder(context, folder)
|
44
|
-
clean_folder = context.get_context_file(context, folder)
|
45
|
-
puts "Clean folder #{clean_folder}"
|
46
|
-
FileUtils.remove_dir(clean_folder) if Dir.exist?(clean_folder)
|
47
|
-
end
|
48
|
-
|
49
|
-
def ruby_clean(context)
|
50
|
-
context.bundle_gem('cleanup')
|
51
|
-
context.clean_folder(context, 'pkg')
|
52
|
-
end
|
53
|
-
|
54
|
-
def ruby_remove_gem(context)
|
55
|
-
context.bundle_gem(['remove', context.context_name])
|
56
|
-
end
|
57
|
-
|
58
|
-
def ruby_check_if_available_public(context)
|
59
|
-
context.context_log "Waiting a minute before installing #{context.context_name} in folder #{context.context_folder}"
|
60
|
-
`chef gem list #{context.context_name}`
|
61
|
-
# sleep(60)
|
62
|
-
end
|
63
|
-
|
64
|
-
def gem_available?(context, gemname, compare_version = nil)
|
65
|
-
begin
|
66
|
-
available_version = Gem::Specification.find_by_name(gemname)
|
67
|
-
rescue Gem::MissingSpecError => e
|
68
|
-
context.error_context_log(context, "The gem '#{gemname}' is missing")
|
69
|
-
# sleep(5)
|
70
|
-
available_version = nil
|
71
|
-
rescue Exception => e
|
72
|
-
context.error_context_log(context, "The gem '#{gemname}' got issue with #{e}")
|
73
|
-
sleep(5)
|
74
|
-
available_version = nil
|
75
|
-
end
|
76
|
-
# context.debug_context_log(context.context_name, "Compare #{context.context_name} available_version #{available_version} with #{context.version} in folder #{context.context_folder}")
|
77
|
-
available = if compare_version.nil? || available_version.nil?
|
78
|
-
not available_version.nil?
|
79
|
-
else
|
80
|
-
available_version.version == context.version
|
81
|
-
end
|
82
|
-
puts "available = #{available}"
|
83
|
-
available
|
84
|
-
end
|
85
|
-
|
86
|
-
def gem_installed?(context, gemname, compare_version = nil)
|
87
|
-
gem_list = context.bundle_gem(context, ['list', gemname, "| grep #{gemname}"], :get_data)
|
88
|
-
context.debug_context_log context.context_name, "gemlist = #{gem_list}"
|
89
|
-
is_installed = gem_list.include?(gemname)
|
90
|
-
is_correct_version = gem_list.split(',').detect do |gem_app|
|
91
|
-
gem_app.include?(gemname)
|
92
|
-
end
|
93
|
-
context.debug_context_log context.context_name, "is_correct_version = #{is_correct_version}"
|
94
|
-
is_correct_version.include?(gemname)
|
95
|
-
end
|
96
|
-
|
97
|
-
def load_dependency(context, gemname, require_file)
|
98
|
-
context.gem(context, ['install', gemname]) unless context.gem_installed?(context, gemname)
|
99
|
-
context.debug_context_log(context.context_name, "Loading file #{require_file} for gem #{gemname}")
|
100
|
-
sleep 3
|
101
|
-
require require_file
|
102
|
-
end
|
103
|
-
|
104
|
-
def load_all_dependencies(context)
|
105
|
-
context.load_dependencies
|
106
|
-
end
|
107
|
-
|
108
|
-
def ruby_cycle(context)
|
109
|
-
context.debug_context_log context.context_name, "\n\nBuilding Ruby application for #{context.context_name}"
|
110
|
-
if context.new_update_available?
|
111
|
-
context.debug_context_log context.context_name, "\n\nNew update available for #{context.context_name}\nCleaning the building space"
|
112
|
-
context.clean
|
113
|
-
# if git_dirty_state?(context)
|
114
|
-
# context.patch_bump
|
115
|
-
# context.commit
|
116
|
-
# end
|
117
|
-
context.debug_context_log context.context_name, "\n\nBuilding project #{context.context_name} now ..."
|
118
|
-
context.build
|
119
|
-
# context.commit
|
120
|
-
context.debug_context_log context.context_name, "\n\nReleasing project #{context.context_name}"
|
121
|
-
context.release
|
122
|
-
context.wait_until_release_available
|
123
|
-
context.debug_context_log context.context_name, "\n\nInstalling project #{context.context_name}"
|
124
|
-
context.install
|
125
|
-
if context.test_context_successful?
|
126
|
-
context.debug_context_log context.context_name, "newer version installed successfully for #{context.context_name} on version #{context.version}"
|
127
|
-
# context.patch_bump
|
128
|
-
# patch_reset(context)
|
129
|
-
else
|
130
|
-
context.debug_context_log context.context_name, "newer version not installed for #{context.context_name} on version #{context.version}"
|
131
|
-
end
|
132
|
-
else
|
133
|
-
context.debug_context_log context.context_name, "No update available"
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|