deploy-context 2.13.17 → 2.13.20
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- metadata +2 -49
- 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
|