deploy_rubygem 0.3.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: 88168b3f751779172e009c42c0be37afcc00346ec0cdb77a403c26f0202ba2bf
4
- data.tar.gz: 3d1b66ab3ac7c7578af03f2bf76f4de7d3a686b7a51b22506a29c5a937534d89
3
+ metadata.gz: 23d1273d42eb686f7cdeeb309035ca0d629403d38fa4e7a8e340df2f51d76ff8
4
+ data.tar.gz: cada978b8538b0b13cc9181e351df7b295b1ec905881fc5d1c18757153a884c0
5
5
  SHA512:
6
- metadata.gz: ab99e1565d737452885426ec53da4737efeb20cebd7d48928353d67375012209df560f1f0d6457e54767bb5b85f08d830c7f07761091e44c3c20e51cb9567f36
7
- data.tar.gz: 4d1c980b0e51f47acf9102e6b2d182ef8510d51f4c225753e8ae04524a3db3cbe8ad8eba04bc833008411126d0f65044f25bbefddf1bf039642af1ae5de3153e
6
+ metadata.gz: 48a7136d42231df13f15424fcf0879765a04303fc4b3d8973779e59e2843c5ea14ccd59e0a8c59ede2908ccbf753ad1dd707eac00082c3b36cffee931be26590
7
+ data.tar.gz: 5182acf36da916d2288d5222b4e39324d51c2c2646bc78ffa85ed8287cb98a7b86a0b55efcbc3cf46dbc5570fb072a978e3c71ece5fb1dad501b5df83d7db782
checksums.yaml.gz.sig CHANGED
@@ -1,3 +1,2 @@
1
- P���ٓ��^�wP>sxER��i���-(�Kie�J"��~οYf^2$�NKHn�:-�Bd�z9�&fҁ=�C篜�}V�j�M���
2
- (��YUV��5����%��z���P���'�/���r,I4
3
- �x����O1$g
1
+ q YeI��BWu~��jlSw�Pna�촱�yE��;{��M<�J�0ܲ�u-
2
+ n՟vp��:�J�����CzrgXZ:
data/.circleci/config.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  version: 2.1
2
2
 
3
3
  jobs:
4
- install_deploy_rubygem:
4
+ latest_install:
5
5
  docker:
6
6
  - image: cimg/ruby:3.1.2
7
7
  auth:
@@ -20,7 +20,7 @@ jobs:
20
20
  cat ~/.ssh/known_hosts
21
21
  ssh git@github.com || echo
22
22
  gem install deploy_rubygem
23
- using_deploy_rubygem:
23
+ execute_local:
24
24
  docker:
25
25
  - image: cimg/ruby:3.1.2
26
26
  auth:
@@ -32,7 +32,7 @@ jobs:
32
32
  steps:
33
33
  - checkout
34
34
  - run: |
35
- deploy_rubygem
35
+ ruby bin/prepare_workstation
36
36
  install_and_deploy_rubygem:
37
37
  docker:
38
38
  - image: cimg/ruby:3.1.2
@@ -40,27 +40,6 @@ jobs:
40
40
  username: $DOCKERHUB_USER
41
41
  password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
42
42
 
43
- environment: {}
44
- working_directory: /tmp/jimbodragon
45
- steps:
46
- - checkout
47
- - run: |
48
- set -xu
49
- echo 'github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl' >> ~/.ssh/known_hosts
50
- echo 'github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=' >> ~/.ssh/known_hosts
51
- echo 'github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=' >> ~/.ssh/known_hosts
52
- cat ~/.ssh/known_hosts
53
- ssh git@github.com || echo
54
- gem install deploy_rubygem
55
- prepare_workstation
56
- deploy_rubygem
57
- install_and_prepare_for_deployement:
58
- docker:
59
- - image: cimg/ruby:3.1.2
60
- auth:
61
- username: $DOCKERHUB_USER
62
- password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
63
-
64
43
  environment: {}
65
44
  working_directory: /tmp/jimbodragon
66
45
  steps:
@@ -79,15 +58,11 @@ workflows:
79
58
  version: 2
80
59
  deploy_rubygem:
81
60
  jobs:
82
- - install_deploy_rubygem:
83
- filters:
84
- branches:
85
- only: master
86
- - install_and_prepare_for_deployement:
61
+ - latest_install:
87
62
  filters:
88
63
  branches:
89
64
  only: master
90
- - install_and_deploy_rubygem:
65
+ - execute_local:
91
66
  filters:
92
67
  branches:
93
68
  only: master
@@ -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.3.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