deploy-context 2.13.23 → 2.13.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/bin/deploy-context +15 -1
  4. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/context-knife-context.rb +26 -0
  5. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/context-manager.rb +100 -0
  6. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/cookbook-studio.rb +72 -0
  7. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/cucumber-studio.rb +45 -0
  8. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/cucumber-suite.rb +201 -0
  9. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/default-studio.rb +172 -0
  10. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/chef.rb +57 -0
  11. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/context.rb +42 -0
  12. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/cookbook.rb +121 -0
  13. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/cucumber.rb +42 -0
  14. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/deployer.rb +83 -0
  15. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/git.rb +62 -0
  16. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/habitat.rb +112 -0
  17. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/ruby.rb +138 -0
  18. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/deploy/vagrant.rb +7 -0
  19. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/habitat-studio.rb +50 -0
  20. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/helpers/command.rb +91 -0
  21. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/helpers/gemspec.rb +93 -0
  22. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/helpers/rake_tasks.rb +150 -0
  23. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/knife/default_knife_context.rb +35 -0
  24. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/knife/dummy_knife.rb +43 -0
  25. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/ruby-studio.rb +56 -0
  26. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/cucumber.rb +22 -0
  27. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/deploy.rb +61 -0
  28. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/git.rb +54 -0
  29. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/habitat.rb +67 -0
  30. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/inspec.rb +26 -0
  31. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/kitchen.rb +59 -0
  32. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/knife.rb +43 -0
  33. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/rake.rb +18 -0
  34. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/ruby.rb +14 -0
  35. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/steps/supermarket.rb +14 -0
  36. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/studio/base.rb +167 -0
  37. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/studio/default.rb +38 -0
  38. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context/studio/deployer.rb +24 -0
  39. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-context.rb +65 -0
  40. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-cucumber.rb +18 -0
  41. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-git.rb +53 -0
  42. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-habitat.rb +74 -0
  43. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-inspec.rb +29 -0
  44. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-kitchen.rb +59 -0
  45. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-knife.rb +45 -0
  46. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-rake.rb +12 -0
  47. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-ruby.rb +10 -0
  48. data/home/jimboadmin/deploy-context/habitat/plan.sh/x86_64-linux/lib/deploy-definitions/deploy-context-supermarket.rb +10 -0
  49. data.tar.gz.sig +0 -0
  50. metadata +47 -2
  51. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f04cdf13f2287108ce8ff79432487343ab0e68871d5a849d12b49dee6475f46c
4
- data.tar.gz: 234244ced77d2ca13c704c4e6dd3e48258a49ca7bc8bcc09a88cf2fe6f7c976a
3
+ metadata.gz: adc75e3709c186a614c550f41b7287cc231c771d0c3239ea43e02d9499e57fbd
4
+ data.tar.gz: 3c0d35d9edea0db50060c2924149d11fbefdc39bc673769bc3c20a070342dcc3
5
5
  SHA512:
6
- metadata.gz: 1984e561d48094d696cab22934ce3fc6f4ba868400fe95d757b68b00da0582df28973d2b9c32f6f30057ecbb0a3850d2b5da3fbe054de0657a273f1336f583b7
7
- data.tar.gz: 8fb881367991df090d023da1a54380eae959edc43a0e2f2c362e42a35662be48dc058c1e2f576641f2c1f6ce6eb102c701a61b189c63225f9f3e0eae969b7850
6
+ metadata.gz: d03063b288a3322a1d6673ab52e9c0c71aa8715af571bcd1703e941da54603489acfed3455d65a59a246ac242f2abc00a088f4652e1fd3a6e3fa9dd742c39cdb
7
+ data.tar.gz: 7ee5a9589fd348913b3625e4bb5f75ad84ea83c7640a0263f7a16cc5c277eb940c4d34f942c94a07fcff48980b889f71197f5eeb0f64608f96005b147058c7f5
checksums.yaml.gz.sig CHANGED
Binary file
data/bin/deploy-context CHANGED
@@ -1,3 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- system("knife deploy context cucumber #{ARGV.join(' ')}")
3
+ apps = %w(git kitchen knife git habitat git inspect supermarket git rake install git)
4
+ steps = %w(initialize planning execution closure)
5
+
6
+ %w(git kitchen knife habitat inspect supermarket rake install).each do |app|
7
+ system("knife deploy-context cucumber initialize #{app}")
8
+ end
9
+
10
+ %w(git kitchen knife git habitat git inspect supermarket git rake install git).each do |app|
11
+ system("knife deploy-context cucumber planning #{app}")
12
+ system("knife deploy-context cucumber execution #{app}")
13
+ end
14
+
15
+ %w(git kitchen knife habitat inspect supermarket rake install).each do |app|
16
+ system("knife deploy-context cucumber closure #{app}")
17
+ end
@@ -0,0 +1,26 @@
1
+
2
+ require_relative 'context-manager'
3
+
4
+ module Context
5
+ class ContextKnifeContext < DefaultStudio
6
+ banner "knife context knife context"
7
+
8
+ deps do
9
+ Knife::DefaultKnifeContext.load_deps
10
+ end
11
+
12
+ option :context,
13
+ :description => "Load an object internally on it"
14
+
15
+ def run
16
+ # Context::DeployContext.deployer.send(config[:omg])
17
+ if config[:omg]
18
+ # Oh yeah, we are pumped.
19
+ puts "OMG HELLO WORLD!!!8!!88"
20
+ else
21
+ # meh
22
+ puts "I am just a fucking example. 8"
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,100 @@
1
+
2
+ require_relative 'deploy-context/cucumber-studio'
3
+
4
+ module Context
5
+ class Manager < DefaultStudio
6
+ attr_reader :contexts
7
+
8
+ # 2
9
+ def do_download
10
+ super
11
+ contexts.each do |context|
12
+ context.do_download
13
+ end
14
+ true
15
+ end
16
+
17
+ # 3
18
+ def do_verify
19
+ super
20
+ contexts.each do |context|
21
+ context.do_verify
22
+ end
23
+ true
24
+ end
25
+
26
+ # 4
27
+ def do_clean
28
+ super
29
+ contexts.each do |context|
30
+ context.do_clean
31
+ end
32
+ true
33
+ end
34
+
35
+ # 5
36
+ def do_unpack
37
+ super
38
+ contexts.each do |context|
39
+ context.do_unpack
40
+ end
41
+ true
42
+ end
43
+
44
+ # 6
45
+ def do_prepare
46
+ super
47
+ contexts.each do |context|
48
+ context.do_prepare
49
+ end
50
+ true
51
+ end
52
+
53
+ # 7
54
+ def do_build
55
+ super
56
+ contexts.each do |context|
57
+ context.do_build
58
+ end
59
+ true
60
+ end
61
+
62
+ # 8
63
+ def do_check
64
+ super
65
+ contexts.each do |context|
66
+ context.do_check
67
+ end
68
+ true
69
+ end
70
+
71
+ # 9
72
+ def do_install
73
+ super
74
+ contexts.each do |context|
75
+ context.do_install
76
+ end
77
+ true
78
+ end
79
+
80
+ # 10
81
+ def do_strip
82
+ super
83
+ def do_install
84
+ contexts.each do |context|
85
+ context.do_strip
86
+ end
87
+ true
88
+ end
89
+ end
90
+
91
+ # 11
92
+ def do_end
93
+ super
94
+ contexts.each do |context|
95
+ context.do_end
96
+ end
97
+ true
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,72 @@
1
+ require_relative 'ruby-studio'
2
+
3
+ module Context
4
+ class ContextCookbookStudio < DefaultStudio
5
+ banner "knife context cookbook studio"
6
+
7
+ deps do
8
+ Knife::DefaultKnifeContext.load_deps
9
+ end
10
+
11
+ def run
12
+ case name_args[0]
13
+ when 'converge'
14
+ kitchen(self, name_args)
15
+ when 'verify'
16
+ kitchen(self, name_args)
17
+ when 'destroy'
18
+ kitchen(self, name_args)
19
+ end
20
+ end
21
+
22
+ # 4
23
+ def do_clean
24
+ super
25
+ delete_file_only_if_exist(get_context_file(self, 'Policyfile.lock.json'))
26
+ kitchen(%w(destroy))
27
+ true
28
+ end
29
+
30
+ # 6
31
+ def do_prepare
32
+ cookbook_build(self)
33
+ true
34
+ end
35
+
36
+ # 7
37
+ def do_build
38
+ cookbook_install(self)
39
+ true
40
+ end
41
+
42
+ # 8
43
+ def do_check
44
+ cookbook_test(self)
45
+ true
46
+ end
47
+
48
+ # 9
49
+ def do_install
50
+ knife_push(self)
51
+ true
52
+ end
53
+
54
+ # 10
55
+ def do_strip
56
+ super
57
+ cookbook_push(self)
58
+ true
59
+ end
60
+
61
+ # 11
62
+ def do_end
63
+ super
64
+ supermarket_push(self)
65
+ true
66
+ end
67
+
68
+ def studio_available?
69
+ is_binary_available?('kitchen') && is_binary_available?('knife') && super
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,45 @@
1
+ require_relative 'habitat-studio'
2
+
3
+ module Context
4
+ class ContextCucumberStudio < DefaultStudio
5
+ banner "knife context cucumber studio"
6
+
7
+ deps do
8
+ Knife::DefaultKnifeContext.load_deps
9
+ end
10
+
11
+ def run
12
+ case name_args[1]
13
+ when 'destroy'
14
+ execute_command(%w(knife context cookbook studio destroy)) if name_args[0] == 'kitchen'
15
+ when 'enter'
16
+ execute_command(%w(knife context habitat studio enter)) if name_args[0] == 'habitat'
17
+ when 'build'
18
+ execute_command(%w(knife context habitat studio build) + name_args) if name_args[0] == 'habitat'
19
+ else
20
+ if name_args[0]
21
+ additionnal_tag = name_args[1].nil? ? [] : ['--tags', "@#{name_args[1]}"]
22
+ case name_args[0]
23
+ when 'cycle'
24
+ cucumber(self, ['--profile', 'preinit'] + additionnal_tag)
25
+ cucumber(self, ['--profile', 'initialize'] + additionnal_tag)
26
+ cucumber(self, ['--profile', 'planning'] + additionnal_tag)
27
+ cucumber(self, ['--profile', 'execution'] + additionnal_tag)
28
+ cucumber(self, ['--profile', 'closure'] + additionnal_tag)
29
+ cucumber(self, ['--profile', 'post_mortem'] + additionnal_tag)
30
+ when 'bump'
31
+ execute_command(%w(chef exec git version-bump patch))
32
+ else
33
+ cucumber(self, ['--profile', name_args[0]] + additionnal_tag)
34
+ end
35
+ # else
36
+ # cucumber(self)
37
+ end
38
+ end
39
+ end
40
+
41
+ def studio_available?
42
+ is_binary_available?('cucumber') && super
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,201 @@
1
+
2
+ require_relative 'deploy/context'
3
+ require_relative 'deploy/chef'
4
+ require_relative 'deploy/cookbook'
5
+ require_relative 'deploy/cucumber'
6
+ require_relative 'deploy/deployer'
7
+ require_relative 'deploy/git'
8
+ require_relative 'deploy/habitat'
9
+ require_relative 'deploy/ruby'
10
+ require_relative 'deploy/vagrant'
11
+
12
+ require_relative 'steps/cucumber'
13
+ require_relative 'steps/git'
14
+ require_relative 'steps/habitat'
15
+ require_relative 'steps/inspec'
16
+ require_relative 'steps/kitchen'
17
+ require_relative 'steps/knife'
18
+ require_relative 'steps/rake'
19
+ require_relative 'steps/ruby'
20
+ require_relative 'steps/supermarket'
21
+
22
+ require_relative 'steps/deploy'
23
+
24
+ module Context
25
+ module CucumberSuiteHelper
26
+ include Context::CommandHelper
27
+ include DeployHelpers::DeployerHelper
28
+ include DeployHelpers::ChefHelper
29
+ include DeployHelpers::GitHelper
30
+ include DeployHelpers::RubyHelper
31
+ include DeployHelpers::ContextHelper
32
+ include DeployHelpers::CookbookHelper
33
+ include DeployHelpers::HabitatHelper
34
+ include DeployHelpers::CucumberHelper
35
+
36
+ include Studio::Base
37
+ include Studio::Default
38
+
39
+ include Steps::Deploy
40
+ include Steps::CucumberSteps
41
+ include Steps::GitSteps
42
+ include Steps::HabitatSteps
43
+ include Steps::InspecSteps
44
+ include Steps::KitchenSteps
45
+ include Steps::KnifeSteps
46
+ include Steps::RakeSteps
47
+ include Steps::RubySteps
48
+ include Steps::SupermarketSteps
49
+
50
+ def context_suite
51
+ if @context_suite.nil?
52
+ @context_suite = OpenStruct.new
53
+ @context_suite.status_file = 'deploy-status.json'
54
+ # @context_suite.suite_kitchen = "patatae"
55
+ @context_suite.status = :initialisation
56
+ end
57
+ @context_suite
58
+ end
59
+
60
+ def verify_kitchen_status
61
+ context_suite.status = case kitchen_status['last_action']
62
+ when "verify"
63
+ kitchen_status['last_error'].nil? ? :verified : :verification_fail
64
+ when "converge"
65
+ kitchen_status['last_error'].nil? ? :converged : :converge_fail
66
+ when nil
67
+ :destroyed
68
+ else
69
+ warning_context_log("Kitchen status", kitchen_status['last_action'].inspect)
70
+ :unknown
71
+ end
72
+ end
73
+
74
+ def dirty_branch?
75
+ `git status --porcelain`.split('\n').count > 0
76
+ end
77
+
78
+ def branch_exist?
79
+ system("git branch --list #{context_suite.branch_name}")
80
+ end
81
+
82
+ def git_commit_successfully?(context_suite)
83
+ system("git commit --message 'Automatic cucumber commit on branch #{context_suite.branch_name}'")
84
+ end
85
+
86
+ def merge_with_branch_successfull?(source_branch)
87
+ system("git merge #{source_branch} #{context_suite.branch_name}")
88
+ end
89
+
90
+ def merge_to_master_successfull?
91
+ merge_with_branch_successfull?(context_suite.branch_name, 'master')
92
+ end
93
+
94
+ def switch_branch_successful?
95
+ system("git checkout #{context_suite.branch_name}")
96
+ end
97
+
98
+ def kitchen_suite_exist?
99
+ system("kitchen list #{context_suite.suite_kitchen}")
100
+ end
101
+
102
+ def verify_kitchen?
103
+ system("kitchen verify #{context_suite.suite_kitchen}")
104
+ end
105
+
106
+ def verify_secret?(secret_key)
107
+ system("hab origin secret list | grep #{secret_key}")
108
+ end
109
+
110
+ def kitchen_converged_successfully?
111
+ system("kitchen converge #{context_suite.suite_kitchen}")
112
+ end
113
+
114
+ def kitchen_destroyed_correctly?
115
+ system("kitchen destroy #{context_suite.suite_kitchen}")
116
+ end
117
+
118
+ def kitchen_tested_successfully?
119
+ system("kitchen test #{context_suite.suite_kitchen}")
120
+ end
121
+
122
+ def habitat_task_different?
123
+ jop_id = last_job_status[1]
124
+ jop_id != File.read('HAB_BUILD_ID')
125
+ end
126
+
127
+ def habitat_task_completed?
128
+ jop_status = last_job_status[2]
129
+ jop_status == 'Complete'
130
+ end
131
+
132
+ def job_status_raw
133
+ `hab bldr job status --origin #{context_suite.organisation_name} | grep #{context_suite.organisation_name}/#{context_suite.application_name}`
134
+ end
135
+
136
+ def last_job_status
137
+ job_status_arr = job_status_raw.split('\n')
138
+ jop_status = job_status_arr[0].split(' ')
139
+ end
140
+
141
+ def habitat_new_task?
142
+ jop_status = last_job_status[2]
143
+ jop_status == 'Dispatching'
144
+ end
145
+
146
+ def write_build_id
147
+ jop_id = last_job_status[1]
148
+ File.write('HAB_BUILD_ID', jop_id)
149
+ end
150
+
151
+ def write_cookbook_version
152
+ short_version = Gem::Version.new(GVB.version).canonical_segments[0..2].join('.')
153
+ File.write('VERSION', short_version)
154
+ File.write('DATE', GVB.date)
155
+ File.write('habitat/plan.sh/VERSION', short_version)
156
+ File.write('habitat/plan.sh/DATE', GVB.date)
157
+ end
158
+
159
+ def verify_habitat?
160
+ system("hab studio run echo")
161
+ end
162
+
163
+ def plan_build_successfully?
164
+ system("hab studio build #{context_suite.plan_path}")
165
+ end
166
+
167
+ def context_status
168
+ JSON.parse(File.read(context_suite.status_file))[:status]
169
+ end
170
+
171
+ def kitchen_status
172
+ JSON.parse(`kitchen list #{context_suite.suite_kitchen} --json`).detect{|suite| suite['instance'].include?(context_suite.suite_kitchen)}
173
+ end
174
+
175
+ def command_available?(app_name, sub_command)
176
+ system("knife #{app_name} #{sub_command}")
177
+ end
178
+
179
+ def stop_test(message, status)
180
+ wrap_message = "#{status}:: #{message}"
181
+ update_status status
182
+ abort(wrap_message)
183
+ end
184
+
185
+ def update_status(new_status)
186
+ context_suite.status = new_status
187
+ update_status_file
188
+ end
189
+
190
+ def update_status_file
191
+ File.write(context_suite.status_file, JSON.pretty_generate({
192
+ status_file: context_suite.status_file,
193
+ kitchen_suite: context_suite.kitchen_suite,
194
+ plan_path: context_suite.plan_path,
195
+ branch_name: context_suite.branch_name,
196
+ status: context_suite.status,
197
+ }
198
+ ))
199
+ end
200
+ end
201
+ end
@@ -0,0 +1,172 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ require 'fileutils'
4
+ require 'json'
5
+
6
+ require 'git-version-bump'
7
+
8
+ require_relative 'helpers/command'
9
+ require_relative 'helpers/rake_tasks'
10
+
11
+ require_relative 'studio/default'
12
+ require_relative 'studio/deployer'
13
+
14
+ require_relative 'knife/default_knife_context'
15
+ require_relative 'cucumber-suite'
16
+
17
+ # require_relative 'ruby-studio'
18
+ # require_relative 'cookbook-studio'
19
+ # require_relative 'habitat-studio'
20
+ # require_relative 'cucumber-studio'
21
+
22
+ module Context
23
+ class DefaultStudio < Knife::DefaultKnifeContext
24
+ include CucumberSuiteHelper
25
+
26
+ # attr_reader :context_name
27
+ # attr_reader :context_folder
28
+
29
+ # attr_accessor :existing_cucumber_runtime
30
+ # attr_accessor :existing_cucumber_configuration
31
+
32
+ # attr_reader :organisation_name
33
+
34
+ attr_reader :ruby_studio
35
+ attr_reader :cookbook_studio
36
+ attr_reader :habitat_studio
37
+ attr_reader :cucumber_studio
38
+
39
+ # attr_reader :context_state
40
+
41
+ banner 'knife default studio'
42
+
43
+ deps do
44
+ end
45
+
46
+ option :context_name,
47
+ :short => '-N',
48
+ :long => '--context-name',
49
+ :description => "Name of the context"
50
+
51
+ option :ruby_studio,
52
+ :short => '-B',
53
+ :long => '--ruby-studio',
54
+ :description => "Path of the ruby studio"
55
+
56
+ option :cookbook_studio,
57
+ :short => '-B',
58
+ :long => '--cookbook-studio',
59
+ :description => "Path of the cookbook studio"
60
+
61
+ option :habitat_studio,
62
+ :short => '-H',
63
+ :long => '--habitat-studio',
64
+ :description => "Path of the habitat studio"
65
+
66
+ option :cucumber_studio,
67
+ :short => '-C',
68
+ :long => '--cucumber-studio',
69
+ :description => "Path of the cucumber studio"
70
+
71
+ option :context_state,
72
+ :short => '-S',
73
+ :long => '--context-state',
74
+ :description => "Set the value of the state before run"
75
+
76
+ # def initialize(argv)
77
+ # end
78
+
79
+ # def initialize(context_organisation_name, deployer_context_name, deploycontext_folder, default_ruby_studio = nil)
80
+ # @context_name = deployer_context_name
81
+ # @context_folder = deploycontext_folder # move_folder(deploycontext_folder)
82
+ # @organisation_name = context_organisation_name
83
+ # @ruby_studio = default_ruby_studio
84
+ # end
85
+
86
+ def context_name
87
+ config[:context_name]
88
+ end
89
+
90
+ def context_folder
91
+ config[:context_folder]
92
+ end
93
+
94
+ def existing_cucumber_runtime
95
+ config[:existing_cucumber_runtime]
96
+ end
97
+
98
+ def existing_cucumber_configuration
99
+ config[:existing_cucumber_configuration]
100
+ end
101
+
102
+ def organisation_name
103
+ config[:organisation_name]
104
+ end
105
+
106
+ def ruby_studio
107
+ @ruby_studio = RubyStudio.new if @ruby_studio.nil?
108
+ @ruby_studio
109
+ end
110
+
111
+ def cookbook_studio
112
+ @cookbook_studio = CookbookStudio.new if @cookbook_studio.nil?
113
+ @cookbook_studio
114
+ end
115
+
116
+ def habitat_studio
117
+ @habitat_studio = HabitatStudio.new if @habitat_studio.nil?
118
+ @habitat_studio
119
+ end
120
+
121
+ def cucumber_studio
122
+ @cucumber_studio = CucumberStudio.new if @cucumber_studio.nil?
123
+ @cucumber_studio
124
+ end
125
+
126
+ def studio_order
127
+ [ruby_studio, cookbook_studio, habitat_studio, cucumber_studio]
128
+ end
129
+
130
+ def do_begin
131
+ # @ruby_studio = Context::RubyStudio.new(organisation_name, context_name, context_folder) if ruby_studio.nil?
132
+
133
+ # @cookbook_studio = Context::CookbookStudio.new(organisation_name, context_name, context_folder, ruby_studio) if cookbook_studio.nil?
134
+
135
+ # @habitat_studio = Context::HabitatStudio.new(organisation_name, context_name, context_folder, ruby_studio) if habitat_studio.nil?
136
+
137
+ # @cucumber_studio = Context::CucumberStudio.new(organisation_name, context_name, context_folder, ruby_studio) if cucumber_studio.nil?
138
+
139
+ studio_order
140
+ end
141
+
142
+ # 2
143
+ def do_download
144
+ git_build(self)
145
+ end
146
+
147
+ # 3
148
+ def do_verify
149
+ git_build(self)
150
+ end
151
+
152
+ # 4
153
+ def do_clean
154
+ delete_file_only_if_exist(get_context_file(self, 'respond.txt'))
155
+ true
156
+ end
157
+
158
+ # 10
159
+ def do_strip
160
+ git_build(self)
161
+ end
162
+
163
+ # 11
164
+ def do_end
165
+ git_commit(self)
166
+ end
167
+
168
+ def studio_available?
169
+ is_binary_available?('git')
170
+ end
171
+ end
172
+ end