deploy-context 2.1.32 → 2.1.32.15.g7b29619

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0641cdd05afaf3ddbe57626eecc7b1cf9a10e56a9b48511d053e7d2199cf77ed
4
- data.tar.gz: 0616b4074e16796db21635fa4e4d16907a636ca693daca79ab8a446d83a3007b
3
+ metadata.gz: d27bbe5efafcb1a1684532ee7c1fbe7e57cf9084de387dbf0410f8a722b053a6
4
+ data.tar.gz: f87858265a221249dc821dc3e82bc32ebfc13130bbfd6ddb921e431602660b0f
5
5
  SHA512:
6
- metadata.gz: a63d06e61d75b11bf844cf07f8e12c1f4962c82935e0140d12ed670bb04c34178646c5b4519e1f18a5894a9962399fe84f40636e0333723138a48d4bc77769b9
7
- data.tar.gz: eb3e72642ecac5272fad2d851fa4a2377a5afbd43e31a1d860eac09601625c34e6cf8f4b814f76ab913b00efee8a9847938986d2cc156094a89200514cb68e04
6
+ metadata.gz: 51c5f18a1584b97cf3fe4c923629b6a57f306bc81d5fb4e10d6d376f052f8013ac1a25a7aafa42e58a14b20d7dc2160a069a1de3f9730f4c3ac02470e69513b2
7
+ data.tar.gz: 6d0203968751a87a77f42a46b0db253a801b55958e99cf34bcd956158e272d11f05058d479a59b829d812f8b436c45c94487f606de2e97bc623c6bc52e66d15f
checksums.yaml.gz.sig CHANGED
Binary file
data/Rakefile CHANGED
@@ -13,18 +13,4 @@ end
13
13
 
14
14
  require 'git-version-bump/rake-tasks'
15
15
 
16
- require_relative 'lib/deploy-context'
17
-
18
- deployer = Context::DeployContext.deployer
19
-
20
- task :default do
21
- deployer.execute_action(deployer, 'once')
22
- end
23
-
24
- task :bump do
25
- deployer.execute_action(deployer, 'bump')
26
- end
27
-
28
- task :test do
29
- deployer.execute_action(deployer, 'test')
30
- end
16
+ require_relative 'lib/deploy-context/helpers/rake'
data/bin/deploy-context CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env ruby
2
- require 'deploy-context/context/binary'
2
+ require 'deploy-context/helpers/binary'
@@ -1,9 +1,11 @@
1
1
  module Context
2
- module CucumberDeployerHelper
3
- def cucumber_test(context)
4
- git_build(context)
5
- puts "Working in folder #{Dir.pwd}\nAnd context #{context.context_name} is created in folder #{context.context_folder} at version #{context.version}"
6
- cucumber
2
+ module DeployHelpers
3
+ module CucumberHelper
4
+ def cucumber_test(context)
5
+ context.git_build(context)
6
+ context.log "Working in folder #{Dir.pwd}\nAnd context #{context.context_name} is created in folder #{context.context_folder} at version #{context.version}"
7
+ context.cucumber(context)
8
+ end
7
9
  end
8
10
  end
9
11
  end
@@ -0,0 +1,87 @@
1
+ module Context
2
+ module DeployHelpers
3
+ module DeployerHelper
4
+ def get_context_folder(context, folder)
5
+ File.join(context.context_folder, folder)
6
+ end
7
+
8
+ def build_folder(context)
9
+ context.get_context_folder(context, 'build')
10
+ end
11
+
12
+ def contexts_container(context)
13
+ context.get_context_folder(context, 'contexts')
14
+ end
15
+
16
+ def chef_exec(context, commands)
17
+ context.execute_command(%w(chef exec) + commands)
18
+ end
19
+
20
+ def git(context, commands)
21
+ context.chef_exec(context,['git'] + commands)
22
+ end
23
+
24
+ def gem(context, commands)
25
+ context.chef_exec(context,['gem'] + commands)
26
+ end
27
+
28
+ def rake(context, commands)
29
+ context.chef_exec(context,['rake'] + commands)
30
+ end
31
+
32
+ def cucumber(context, commands = [])
33
+ context.chef_exec(context,['cucumber'] + commands)
34
+ end
35
+
36
+ def execute_action(context, action)
37
+ state_action = if action.nil?
38
+ context.cycle
39
+ false
40
+ else
41
+ case action
42
+ when 'once'
43
+ context.log "\nExecute only once\n"
44
+ context.cycle
45
+ true
46
+ when 'always'
47
+ context.log "\nAlways in execution\n"
48
+ while true do
49
+ context.cycle
50
+ end
51
+ true
52
+ when 'bump'
53
+ context.log "\nBump minor version\n"
54
+ context.patch_bump
55
+ true
56
+ when 'release'
57
+ context.log "\nBump major version\n"
58
+ context.minor_bump
59
+ true
60
+ when 'upgrade'
61
+ context.log "\nBump major version\n"
62
+ context.major_bump
63
+ true
64
+ when 'test'
65
+ context.log "\nExecute tests\n"
66
+ context.cucumber_test(context)
67
+ true
68
+ when 'reset'
69
+ context.log "\nReset versionning\n"
70
+ system('rake')
71
+ # context.cucumber_test(deployer)
72
+ true
73
+ else
74
+ context.log "Unknown setting #{action}"
75
+ false
76
+ end
77
+ end
78
+ context.commit
79
+ if state_action
80
+ context.log "Action #{action} executed correctly in context #{context}"
81
+ else
82
+ context.abort("Failed to execute action #{action} in context #{context}")
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -1,53 +1,55 @@
1
1
  module Context
2
- module GitDeployerHelper
3
- def git_build(context)
4
- if context.present_localy?
5
- Dir.chdir(context.context_folder)
6
- git_pull(context)
7
- else
8
- local_dir = File.join(Dir.pwd, context.context_name)
9
- git ["clone git@github.com:JimboDragonGit/#{context.context_name}.git"] unless ::Dir.exist?(local_dir)
10
- context.move_folder(local_dir)
2
+ module DeployHelpers
3
+ module GitHelper
4
+ def git_build(context)
5
+ if context.present_localy?
6
+ Dir.chdir(context.context_folder)
7
+ context.git_pull(context)
8
+ else
9
+ local_dir = File.join(Dir.pwd, context.context_name)
10
+ context.git ["clone git@github.com:JimboDragonGit/#{context.context_name}.git"] unless ::Dir.exist?(local_dir)
11
+ context.move_folder(local_dir)
12
+ end
11
13
  end
12
- end
13
14
 
14
- def git_pull(context)
15
- git_build(context) unless context.actual_working_directory?
16
- git ['pull']
17
- end
15
+ def git_pull(context)
16
+ context.git_build(context) unless context.actual_working_directory?
17
+ context.git context, ['pull']
18
+ end
18
19
 
19
- def git_commit(context)
20
- git_build(context)
21
- git ['add .']
22
- git ["commit -m 'Create #{context.context_name} automatic commit'"]
23
- end
20
+ def git_commit(context)
21
+ context.git_build(context)
22
+ context.git context, ['add .']
23
+ context.git context, ["commit -m 'Create #{context.context_name} automatic commit'"]
24
+ end
24
25
 
25
- def git_release(context)
26
- git_build(context)
27
- git ['push', '--follow-tags']
28
- end
26
+ def git_release(context)
27
+ context.git_build(context)
28
+ context.git context, ['push', '--follow-tags']
29
+ end
29
30
 
30
- def git_bump(context, level)
31
- git_build(context)
32
- git ['version-bump', level]
33
- git_commit(context)
34
- end
31
+ def git_bump(context, level)
32
+ context.git_build(context)
33
+ context.git context, ['version-bump', level]
34
+ context.git_commit(context)
35
+ end
35
36
 
36
- def patch_reset(context)
37
- git_build(context)
38
- git_bump(context, 'minor')
39
- end
37
+ def patch_reset(context)
38
+ context.git_build(context)
39
+ context.git_bump(context, 'minor')
40
+ end
40
41
 
41
- def git_update_available?(context)
42
- git_build(context)
43
- # git ['log', "v#{context.version}"]
44
- git ['ls-remote origin', "v#{context.version}"]
45
- end
42
+ def git_update_available?(context)
43
+ context.git_build(context)
44
+ # context.git ['log', "v#{context.version}"]
45
+ context.git context, ['ls-remote origin', "v#{context.version}"]
46
+ end
46
47
 
47
- def git_dirty_state?(context)
48
- git_build(context)
49
- # git ['log', "v#{context.version}"]
50
- `git status --porcelain`.split('\n').count > 0
48
+ def git_dirty_state?(context)
49
+ context.git_build(context)
50
+ # context.git ['log', "v#{context.version}"]
51
+ context.get_data(["git status --porcelain"]).split('\n').count > 0
52
+ end
51
53
  end
52
54
  end
53
55
  end
@@ -1,74 +1,81 @@
1
1
  require 'rubygems'
2
2
 
3
3
  module Context
4
- module RubyDeployerHelper
5
- def ruby_build(context)
6
- git_build(context)
7
- puts "Working in folder #{Dir.pwd}\nAnd context #{context.context_name} is created"
8
- check_folder get_context_folder(context, 'build')
9
- end
4
+ module DeployHelpers
5
+ module RubyHelper
6
+ def ruby_build(context)
7
+ git_build(context)
8
+ context.log "Working in folder #{Dir.pwd}\nAnd context #{context.context_name} is created"
9
+ check_folder get_context_folder(context, 'build')
10
+ end
10
11
 
11
- def ruby_release(context)
12
- git_build(context)
13
- # gem ["push #{context.context_name}-#{GVB.version}.gem"]
14
- # context.patch_bump if gem_installed?(context)
15
- rake ['release']
16
- # context.commit
17
- end
12
+ def ruby_release(context)
13
+ context.git_build(context)
14
+ # gem ["push #{context.context_name}-#{GVB.version}.gem"]
15
+ # context.patch_bump if gem_installed?(context)
16
+ context.rake context, ['release']
17
+ # context.commit
18
+ end
18
19
 
19
- def ruby_install(context)
20
- gem ['install', context.context_name]
21
- end
20
+ def ruby_install(context)
21
+ context.gem context, ['install', context.context_name]
22
+ end
22
23
 
23
- def clean_folder(context, folder)
24
- clean_folder = get_context_folder(context, folder)
25
- puts "Clean folder #{clean_folder}"
26
- FileUtils.remove_dir(clean_folder) if Dir.exist?(clean_folder)
27
- end
24
+ def clean_folder(context, folder)
25
+ clean_folder = get_context_folder(context, folder)
26
+ puts "Clean folder #{clean_folder}"
27
+ FileUtils.remove_dir(clean_folder) if Dir.exist?(clean_folder)
28
+ end
28
29
 
29
- def ruby_clean(context)
30
- clean_folder(context, 'pkg')
31
- end
30
+ def ruby_clean(context)
31
+ clean_folder(context, 'pkg')
32
+ end
32
33
 
33
- def ruby_remove_gem(context)
34
- clean_folder(context, 'pkg')
35
- end
34
+ def ruby_remove_gem(context)
35
+ clean_folder(context, 'pkg')
36
+ end
36
37
 
37
- def ruby_check_if_available_public(context)
38
- puts "Waiting a minute before installing #{context.context_name} in folder #{context.context_folder}"
39
- `chef gem list #{context.context_name}`
40
- # sleep(60)
41
- end
38
+ def ruby_check_if_available_public(context)
39
+ puts "Waiting a minute before installing #{context.context_name} in folder #{context.context_folder}"
40
+ `chef gem list #{context.context_name}`
41
+ # sleep(60)
42
+ end
42
43
 
43
- def gem_installed?(context)
44
- installed_version = Gem::Specification.find_by_name(context.context_name).version
45
- puts "Compare #{context.context_name} installed_version #{installed_version} with #{context.version} in folder #{context.context_folder}"
46
- installed = installed_version == context.version
47
- puts "installed = #{installed}"
48
- installed
49
- end
44
+ def gem_installed?(context)
45
+ installed_version = Gem::Specification.find_by_name(context.context_name).version
46
+ puts "Compare #{context.context_name} installed_version #{installed_version} with #{context.version} in folder #{context.context_folder}"
47
+ installed = installed_version == context.version
48
+ puts "installed = #{installed}"
49
+ installed
50
+ end
50
51
 
51
- def ruby_cycle(context)
52
- if context.new_update_available?
53
- context.clean
54
- if git_dirty_state?(context)
55
- context.patch_bump
56
- context.commit
57
- end
58
- context.build
59
- # context.commit
60
- context.release
61
- context.wait_until_release_available
62
- context.install
63
- if context.test_context_successful?
64
- puts "newer version installed successfully for #{context.context_name} on version #{context.version}"
65
- # context.patch_bump
66
- # patch_reset(context)
52
+ def ruby_cycle(context)
53
+ context.log "\n\nBuilding Ruby application for #{context.context_name}"
54
+ if context.new_update_available?
55
+ context.log "\n\nNew update available for #{context.context_name}\nCleaning the building space"
56
+ context.clean
57
+ if git_dirty_state?(context)
58
+ context.patch_bump
59
+ context.commit
60
+ end
61
+ context.log "\n\nBuilding project #{context.context_name} now ..."
62
+ context.build
63
+ # context.commit
64
+ context.log "\n\nReleasing project #{context.context_name}"
65
+ context.release
66
+ context.wait_until_release_available
67
+ context.log "\n\nInstalling project #{context.context_name}"
68
+ context.install
69
+ if context.test_context_successful?
70
+ context.log "newer version installed successfully for #{context.context_name} on version #{context.version}"
71
+ # context.patch_bump
72
+ # patch_reset(context)
73
+ else
74
+ context.log "newer version not installed for #{context.context_name} on version #{context.version}"
75
+ end
67
76
  else
68
- puts "newer version not installed for #{context.context_name} on version #{context.version}"
77
+ context.log "No update available"
69
78
  end
70
- else
71
- puts "No update available"
72
79
  end
73
80
  end
74
81
  end
@@ -1,8 +1,13 @@
1
- require_relative 'context/deploy'
1
+ require_relative 'helpers/command'
2
+ require_relative 'deploy/deployer'
3
+ require_relative 'deploy/git'
4
+
2
5
 
3
6
  module Context
4
7
  class Deploy
5
- include DeployHelper
8
+ include CommandHelper
9
+ include DeployHelpers::DeployerHelper
10
+ include DeployHelpers::GitHelper
6
11
 
7
12
  attr_reader :context_name
8
13
  attr_reader :context_folder
@@ -30,7 +35,7 @@ module Context
30
35
 
31
36
  def version
32
37
  git_build(self)
33
- puts "Getting version info for #{context_folder} and version should be #{GitVersionBump.version(true)}"
38
+ log "Getting version info for #{context_folder} and version should be #{GitVersionBump.version(true)}"
34
39
  Gem::Version.new(GitVersionBump.version(true))
35
40
  end
36
41
 
@@ -39,7 +44,7 @@ module Context
39
44
  end
40
45
 
41
46
  def test_context_successful?
42
- puts "Check if #{context_name} is install #{version}"
47
+ log "Check if #{context_name} is install #{version}"
43
48
  if gem_installed?(self)
44
49
  puts "Test context #{context_name} was successfully install on version #{version}"
45
50
  true
@@ -58,6 +63,7 @@ module Context
58
63
  end
59
64
 
60
65
  def release
66
+ debug_log "Release #{context_name} at version #{version}"
61
67
  ruby_release(self)
62
68
  git_release(self)
63
69
  end
@@ -71,16 +77,23 @@ module Context
71
77
  ruby_clean(self)
72
78
  end
73
79
 
80
+ def show_new_version(level)
81
+ log "#{level} bump #{context_name} at newer version #{version}"
82
+ end
83
+
74
84
  def patch_bump
75
85
  GitVersionBump.tag_version("#{GitVersionBump.major_version(true)}.#{GitVersionBump.minor_version(true)}.#{GitVersionBump.patch_version(true) + 1}")
86
+ show_new_version('Patch')
76
87
  end
77
88
 
78
89
  def minor_bump
79
90
  GitVersionBump.tag_version("#{GitVersionBump.major_version(true)}.#{GitVersionBump.minor_version(true) + 1}.0")
91
+ show_new_version('Minor')
80
92
  end
81
93
 
82
94
  def major_bump
83
95
  GitVersionBump.tag_version("#{GitVersionBump.major_version(true) + 1}.0.0")
96
+ show_new_version('Major')
84
97
  end
85
98
 
86
99
  def wait_until_release_available
@@ -0,0 +1,51 @@
1
+ module Context
2
+ module CommandHelper
3
+ def debug?
4
+ ENV.key?('CONTEXTDEBUG') && ! ENV['CONTEXTDEBUG'].nil? && ENV['CONTEXTDEBUG']
5
+ true
6
+ end
7
+
8
+ def log(message)
9
+ puts message
10
+ end
11
+
12
+ def debug_log(message)
13
+ log message if debug?
14
+ end
15
+
16
+ def is_admin?
17
+ Process::Sys.getuid != 0
18
+ end
19
+
20
+ def temp_dir
21
+ @temp_dir = Dir.tmpdir() if @temp_dir.nil?
22
+ @temp_dir
23
+ end
24
+
25
+ def get_data(command_line)
26
+ debug_log "Get data from command #{command_line.join(' ')}"
27
+ `#{command_line.join(' ')}`
28
+ end
29
+
30
+ def execute_command(command)
31
+ command_status = system(command.join(' '))
32
+ debug_log "executed command #{command.join(' ')}"
33
+ command_status
34
+ end
35
+
36
+ def sudo_command(command)
37
+ if ! Gem.win_platform? && Process::Sys.getuid != 0
38
+ ['sudo'] + command
39
+ else
40
+ command
41
+ end
42
+ end
43
+
44
+ def write_in_system_file(file, content)
45
+ debug_log "write_in_system_file #{[file, content]}"
46
+ system("touch #{file}")
47
+ ::File.write(file, content)
48
+ system("chmod 644 #{file}") unless Gem.win_platform?
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,15 @@
1
+ require_relative '../../deploy-context'
2
+
3
+ deployer = Context::DeployContext.deployer
4
+
5
+ task :default => "test" do
6
+ deployer.execute_action(deployer, 'once')
7
+ end
8
+
9
+ task :bump do
10
+ deployer.execute_action(deployer, 'bump')
11
+ end
12
+
13
+ task :test do
14
+ deployer.execute_action(deployer, 'test')
15
+ end
@@ -3,15 +3,13 @@ require 'fileutils'
3
3
  require 'git-version-bump'
4
4
 
5
5
  require_relative 'deploy-context/deploy'
6
- require_relative 'deploy-context/deploy/git'
7
6
  require_relative 'deploy-context/deploy/ruby'
8
7
  require_relative 'deploy-context/deploy/cucumber'
9
8
 
10
9
  module Context
11
10
  class DeployContext < Deploy
12
- include GitDeployerHelper
13
- include RubyDeployerHelper
14
- include CucumberDeployerHelper
11
+ include DeployHelpers::RubyHelper
12
+ include DeployHelpers::CucumberHelper
15
13
 
16
14
  def self.deployer
17
15
  @deployer = Context::DeployContext.new(Dir.pwd) if @deployer.nil?
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deploy-context
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.32
4
+ version: 2.1.32.15.g7b29619
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Provencher
@@ -35,7 +35,7 @@ cert_chain:
35
35
  +V3ectLBpuoKM8f/ZFMnUPA0mAv5e7J6u9IBwyNj/cy+wLOAbpPdmhoKZXCpQcno
36
36
  ysBBJbi//0tgFWwC4vOaDMch
37
37
  -----END CERTIFICATE-----
38
- date: 2023-10-03 00:00:00.000000000 Z
38
+ date: 2023-10-04 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: chef
@@ -106,12 +106,14 @@ files:
106
106
  - features/update_deployer.feature
107
107
  - features/updated_git.feature
108
108
  - lib/deploy-context.rb
109
- - lib/deploy-context/context/binary.rb
110
- - lib/deploy-context/context/deploy.rb
111
109
  - lib/deploy-context/deploy.rb
112
110
  - lib/deploy-context/deploy/cucumber.rb
111
+ - lib/deploy-context/deploy/deployer.rb
113
112
  - lib/deploy-context/deploy/git.rb
114
113
  - lib/deploy-context/deploy/ruby.rb
114
+ - lib/deploy-context/helpers/binary.rb
115
+ - lib/deploy-context/helpers/command.rb
116
+ - lib/deploy-context/helpers/rake.rb
115
117
  homepage: https://github.com/JimboDragonGit/deploy-context
116
118
  licenses:
117
119
  - MIT
@@ -131,9 +133,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
133
  version: '0'
132
134
  required_rubygems_version: !ruby/object:Gem::Requirement
133
135
  requirements:
134
- - - ">="
136
+ - - ">"
135
137
  - !ruby/object:Gem::Version
136
- version: '0'
138
+ version: 1.3.1
137
139
  requirements: []
138
140
  rubygems_version: 3.2.32
139
141
  signing_key:
metadata.gz.sig CHANGED
Binary file
@@ -1,85 +0,0 @@
1
- module Context
2
- module DeployHelper
3
- def get_context_folder(context, folder)
4
- File.join(context.context_folder, folder)
5
- end
6
-
7
- def build_folder(context)
8
- get_context_folder(context, 'build')
9
- end
10
-
11
- def contexts_container(context)
12
- get_context_folder(context, 'contexts')
13
- end
14
-
15
- def chef_exec(commands)
16
- system("chef exec #{commands.join(' ')}")
17
- end
18
-
19
- def git(commands)
20
- chef_exec(['git'] + commands)
21
- end
22
-
23
- def gem(commands)
24
- chef_exec(['gem'] + commands)
25
- end
26
-
27
- def rake(commands)
28
- chef_exec(['rake'] + commands)
29
- end
30
-
31
- def cucumber(commands = [])
32
- chef_exec(['cucumber'] + commands)
33
- end
34
-
35
- def execute_action(context, action)
36
- state_action = if action.nil?
37
- context.cycle
38
- false
39
- else
40
- case action
41
- when 'once'
42
- puts "\nExecute only once\n"
43
- context.cycle
44
- true
45
- when 'always'
46
- puts "\nAlways in execution\n"
47
- while true do
48
- context.cycle
49
- end
50
- true
51
- when 'bump'
52
- puts "\nBump minor version\n"
53
- context.patch_bump
54
- true
55
- when 'release'
56
- puts "\nBump major version\n"
57
- context.minor_bump
58
- true
59
- when 'upgrade'
60
- puts "\nBump major version\n"
61
- context.major_bump
62
- true
63
- when 'test'
64
- puts "\nExecute tests\n"
65
- context.cucumber_test(context)
66
- true
67
- when 'reset'
68
- puts "\nReset versionning\n"
69
- system('rake')
70
- # context.cucumber_test(deployer)
71
- true
72
- else
73
- puts "Unknown setting #{action}"
74
- false
75
- end
76
- end
77
- context.commit
78
- if state_action
79
- puts "Action #{action} executed correctly in context #{context}"
80
- else
81
- abort("Failed to execute action #{action} in context #{context}")
82
- end
83
- end
84
- end
85
- end
File without changes