deploy_rubygem 0.4.1 → 0.5.1

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: b79e22ccc11d8c9d7d839d9f569af876daa5f45063b4a83fbf44ba36e0963bce
4
- data.tar.gz: 83b316d9f3bc73ce252513ded224bd2097bc4eee957d3eda406c11dc6e4a149e
3
+ metadata.gz: 23d1273d42eb686f7cdeeb309035ca0d629403d38fa4e7a8e340df2f51d76ff8
4
+ data.tar.gz: cada978b8538b0b13cc9181e351df7b295b1ec905881fc5d1c18757153a884c0
5
5
  SHA512:
6
- metadata.gz: cb3ac7b50d969c63c98f88f51201b61679f54d00166b177eb05f101d547a533ce2268ba1278c8711ed88f6e0f9e1cc1fbb21ecf789488d40a4f563b0bbabc7d5
7
- data.tar.gz: ef0d8d60a973745096af2e623626c005a762b153c88607dcf9fbd4842eb79505968c0d5662b877ae4d3ffcaef4ea37efd5218297d4598394368bcdfeb65c2869
6
+ metadata.gz: 48a7136d42231df13f15424fcf0879765a04303fc4b3d8973779e59e2843c5ea14ccd59e0a8c59ede2908ccbf753ad1dd707eac00082c3b36cffee931be26590
7
+ data.tar.gz: 5182acf36da916d2288d5222b4e39324d51c2c2646bc78ffa85ed8287cb98a7b86a0b55efcbc3cf46dbc5570fb072a978e3c71ece5fb1dad501b5df83d7db782
checksums.yaml.gz.sig CHANGED
Binary file
@@ -0,0 +1,8 @@
1
+ #!/opt/chef-workstation/embedded/bin/ruby
2
+ Signal.trap('INT') { exit 1 }
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), %w(.. lib))
5
+ require 'rubygems' unless defined?(Gem)
6
+ require 'deploy_rubygem'
7
+
8
+ DeployRubygem.deploy_jimbo_management_site
data/bin/deploy_rubygem CHANGED
@@ -1,23 +1,9 @@
1
1
  #!/opt/chef-workstation/embedded/bin/ruby
2
+ Signal.trap('INT') { exit 1 }
2
3
 
3
- %w(
4
- deploy_rubygem
5
- prepare_workstation
6
- ).each do |executable|
7
- system("git add bin/#{executable}")
8
- end
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), %w(.. lib))
5
+ require 'rubygems' unless defined?(Gem)
6
+ require 'deploy_rubygem'
9
7
 
10
- system('git add deploy_rubygem.gemspec')
11
- system('git add .circleci/config.yml')
12
-
13
- system('git add lib')
14
-
15
- system('git commit -m "Deploying deploy_rugygem_$(git version-bump show)"')
16
-
17
- system('git version-bump patch') # <major|minor|patch|show>
18
-
19
- system('gem build')
20
-
21
- system('gem push deploy_rubygem-$(git version-bump show).gem')
22
-
23
- system('git version-bump minor') # <major|minor|patch|show>
8
+ DeployRubygem.self_deploy
9
+ DeployRubygem.deploy_jimbo_management_site
@@ -1,9 +1,5 @@
1
1
  #!/opt/chef-workstation/embedded/bin/ruby
2
2
 
3
- puts "environments context = #{ENV.inspect}"
4
3
 
5
- puts "environments methods = #{self.methods}"
6
4
 
7
5
  system('chef-client')
8
-
9
- system('ssh root@jimbodragon.qc.to chef-client')
@@ -51,6 +51,8 @@ require 'git-version-bump'
51
51
 
52
52
  s.add_runtime_dependency('git-version-bump')
53
53
 
54
+ s.add_runtime_dependency('deploy-context')
55
+
54
56
  # s.add_runtime_dependency('colorator', '~> 1.0')
55
57
  # s.add_runtime_dependency('em-websocket', '~> 0.5')
56
58
  # s.add_runtime_dependency('i18n', '~> 1.0')
@@ -0,0 +1,7 @@
1
+
2
+ module DeployRubygem
3
+ class ChefSupermarket
4
+ def download
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,116 @@
1
+
2
+ require 'deploy_rubygem/inspec'
3
+
4
+ module DeployRubygem
5
+ class Cookbook
6
+ attr_reader :cookbook_name
7
+ attr_reader :cookbook_info
8
+
9
+ def initialize(new_cookbook_name, new_cookbook_info)
10
+ @cookbook_name = new_cookbook_name.to_s
11
+ @cookbook_info = new_cookbook_info
12
+ end
13
+
14
+ def chef_repo
15
+ cookbook_info[__method__]
16
+ end
17
+
18
+ def cookbook_path
19
+ ::File.join(chef_repo, 'cookbooks', cookbook_name)
20
+ end
21
+
22
+ def git
23
+ cookbook_info[__method__]
24
+ end
25
+
26
+ def check_file
27
+ ::File.join("#{kitchen}_check.log")
28
+ end
29
+
30
+ def connect_cookbook
31
+ system("git submodule add #{git}")
32
+ system("git submodule init cookbooks/#{cookbook_name}")
33
+ system("git submodule sync cookbooks/#{cookbook_name}")
34
+ system("git submodule foreach --recursive 'pwd && git pull'")
35
+ end
36
+
37
+ def switch_to_cookbook
38
+ Dir.chdir(chef_repo)
39
+ connect_cookbook
40
+ Dir.chdir(cookbook_path)
41
+ end
42
+
43
+ def kitchen
44
+ cookbook_info[:kitchens].first
45
+ end
46
+
47
+ def profile
48
+ cookbook_info[:profiles].first
49
+ end
50
+
51
+ def kitchen_ip
52
+ switch_to_cookbook
53
+ system("kitchen exec #{kitchen} -c 'hostname -I'")
54
+ end
55
+
56
+ def kitchen_verify(showing = true)
57
+ switch_to_cookbook
58
+ if showing
59
+ system("kitchen verify #{kitchen}")
60
+ else
61
+ system("kitchen verify #{kitchen} > #{check_file}")
62
+ end
63
+ end
64
+
65
+ def kitchen_target
66
+ kitchen_verify(false)
67
+ system("grep -n Target #{check_file}")
68
+ end
69
+
70
+ def upload_cookbook
71
+ system('git pull')
72
+
73
+ system("knife cookbook upload --cookbook-path '../' #{cookbook_name}")
74
+
75
+ system("chef install Policyfile.rb")
76
+ system("chef push jimbodragon_website_prod Policyfile.lock.json")
77
+ end
78
+
79
+ def prepare_test_environment
80
+ system("kitchen converge #{kitchen}")
81
+ end
82
+
83
+ def destroy_test_environment
84
+ system("kitchen destroy #{kitchen}")
85
+ end
86
+
87
+ def deploy
88
+ save_progress
89
+ switch_to_cookbook
90
+ save_progress
91
+ upload_cookbook
92
+ prepare_test_environment
93
+ verify
94
+ save_progress
95
+ end
96
+
97
+ def verify
98
+ puts "Verify cookbook #{cookbook_name} on target #{kitchen_target}"
99
+
100
+ kitchen_verify
101
+
102
+ cookbook_info[:profiles].each do |profile|
103
+ system("inspec vendor compliance/profiles/#{profile}")
104
+ system("inspec exec compliance/profiles/#{profile}")
105
+ end
106
+ end
107
+
108
+ def save_progress
109
+ system('git add .')
110
+ system("git commit -m \"Saving: hostname=#{ENV['HOSTNAME']}\"")
111
+ system("git push")
112
+ end
113
+
114
+ # system('sudo chef-client --override-runlist jimbo_management_site')
115
+ end
116
+ end
@@ -0,0 +1,34 @@
1
+
2
+ module DeployRubygem
3
+ class Inspec
4
+ attr_reader :project_options
5
+
6
+ def initialize(new_project_options)
7
+ @project_options = new_project_options
8
+ end
9
+
10
+ def deploy
11
+ %w(
12
+ deploy_rubygem
13
+ prepare_workstation
14
+ ).each do |executable|
15
+ system("git add bin/#{executable}")
16
+ end
17
+
18
+ system('git add deploy_rubygem.gemspec')
19
+ system('git add .circleci/config.yml')
20
+
21
+ system('git add lib')
22
+
23
+ system("git commit -m \"Deploying #{project_name}_$(git version-bump show)\"")
24
+
25
+ system('git version-bump patch') # <major|minor|patch|show>
26
+
27
+ system('gem build')
28
+
29
+ system('gem push deploy_rubygem-$(git version-bump show).gem')
30
+
31
+ system('git version-bump minor') # <major|minor|patch|show>
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,39 @@
1
+
2
+ module DeployRubygem
3
+ class Rubygem
4
+ attr_reader :project_options
5
+
6
+ def initialize(new_project_options)
7
+ @project_options = new_project_options
8
+ end
9
+
10
+ def project_name
11
+ project_options[__method__]
12
+ end
13
+
14
+ def binaries
15
+ project_options[__method__]
16
+ end
17
+
18
+ def deploy
19
+ binaries.each do |executable|
20
+ system("git add bin/#{executable}")
21
+ end
22
+
23
+ system('git add deploy_rubygem.gemspec')
24
+ system('git add .circleci/config.yml')
25
+
26
+ system('git add lib')
27
+
28
+ system("git commit -m \"Deploying #{project_name}_$(git version-bump show)\"")
29
+
30
+ system('git version-bump patch') # <major|minor|patch|show>
31
+
32
+ system('gem build')
33
+
34
+ system('gem push deploy_rubygem-$(git version-bump show).gem')
35
+
36
+ system('git version-bump minor') # <major|minor|patch|show>
37
+ end
38
+ end
39
+ end
@@ -1,8 +1,34 @@
1
1
 
2
2
  require 'git-version-bump'
3
+ require 'deploy_rubygem/rubygem'
4
+ require 'deploy_rubygem/cookbook'
3
5
 
4
6
  module DeployRubygem
5
- def first_parameter
6
- 'Un test inutile'
7
+ def self.self_project_options
8
+ {
9
+ project_name: 'deploy_rubygem',
10
+ binaries: %w(
11
+ deploy_rubygem
12
+ prepare_workstation
13
+ ),
14
+ cookbooks: {
15
+ jimbo_management_site: {
16
+ chef_repo: '/usr/local/chef/repo/jimbodragon',
17
+ git: 'git@github.com:JimboDragonGit/jimbo_management_site.git',
18
+ kitchens: %w(base),
19
+ profiles: %w(base)
20
+ }
21
+ }
22
+ }
23
+ end
24
+
25
+ def self.self_deploy
26
+ Rubygem.new(self_project_options).deploy
27
+ end
28
+
29
+ def self.deploy_jimbo_management_site
30
+ self_project_options[:cookbooks].each do |cookbook_name, cookbook_options|
31
+ Cookbook.new(cookbook_name, cookbook_options).deploy
32
+ end
7
33
  end
8
34
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deploy_rubygem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jimmy Provencher
@@ -33,7 +33,7 @@ cert_chain:
33
33
  n6Pwa3EckU/5n8N6gUJTAmGyu6Ncu1pbsZtH450+BJ2z82JNXomdFYlnG8+1XNlj
34
34
  3M1sBFUHvqrBg2hQkQcLHokmQYrYsRK5A7HrxwKcmwM=
35
35
  -----END CERTIFICATE-----
36
- date: 2024-05-20 00:00:00.000000000 Z
36
+ date: 2024-05-21 00:00:00.000000000 Z
37
37
  dependencies:
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: chef
@@ -77,6 +77,20 @@ dependencies:
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
79
  version: '0'
80
+ - !ruby/object:Gem::Dependency
81
+ name: deploy-context
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
80
94
  description: Using Chef cookbook style and force any script using it to switch to
81
95
  chef even if it is not install. It will install it tho ;)
82
96
  email:
@@ -95,10 +109,15 @@ files:
95
109
  - Gemfile
96
110
  - LICENSE
97
111
  - README.md
112
+ - bin/deploy_jimbo_management_site_website
98
113
  - bin/deploy_rubygem
99
114
  - bin/prepare_workstation
100
115
  - deploy_rubygem.gemspec
101
116
  - lib/deploy_rubygem.rb
117
+ - lib/deploy_rubygem/chef_supermarket.rb
118
+ - lib/deploy_rubygem/cookbook.rb
119
+ - lib/deploy_rubygem/inspec.rb
120
+ - lib/deploy_rubygem/rubygem.rb
102
121
  homepage: https://github.com/JimboDragonGit/deploy_rubygem
103
122
  licenses:
104
123
  - MIT
metadata.gz.sig CHANGED
Binary file