deploy-context 2.13.23 → 2.13.25

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.
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