groundskeeper-bitcore 0.12.0 → 0.17.0

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: 7dd59271068fce2a191e0d04f505184024ca82e372dc1abd8ac44ac5a41b2220
4
- data.tar.gz: 3119cc55d3664dfbd7411a208f9c03104eb8cba9f3a3d0edb78fd49588b22bce
3
+ metadata.gz: 76a66b65c4de7ff36bc401d84e100417c577bd6fc79fa82a3a25e3068303afba
4
+ data.tar.gz: cbebbf63ed96160aacaf9df0d8b51a8064d747ec7a99f51f4b47e708dac74af3
5
5
  SHA512:
6
- metadata.gz: 58ac93ac2c78209e47fe65b9d30728a7929acb84b0d1f927dfc9bc6525fbd007fe3506e4e8b8ccdba82d18d8cddaab96f0262454ad41c42801b2139b6eaa4a01
7
- data.tar.gz: ba3c313d92a17492acadb94521ece6718842b2483d58db64c4679b214926abfb8b4d077dd547644438b45af90e6ca545bf9856f0d62927b52bf17b9cec4335e9
6
+ metadata.gz: 668833b27cf2c40c28f8124db0ffc95d3452bf6d163408de22de3b0440b556c6276091260003e5d7d2fe7ddcfb40b7d2ad9fdf5a9911237c1bf0c933d9c6dac0
7
+ data.tar.gz: 025d383dd7bed00e1eaf0b64cbd8aead02392798d1051228eb977b1d15ae4f119e95d59eaaccd9165c9d6ad17170cc0c8a45c83928093e03b74451e474b1357f
@@ -39,3 +39,6 @@ Style/SingleLineMethods:
39
39
 
40
40
  Style/StringLiterals:
41
41
  EnforcedStyle: double_quotes
42
+
43
+ Style/IfUnlessModifier:
44
+ Enabled: false
@@ -1 +1 @@
1
- 2.6.2
1
+ 2.7.1
data/README.md CHANGED
@@ -70,10 +70,11 @@ application directory:
70
70
  ground release
71
71
  ```
72
72
 
73
- To prepare the server (only required the first time) for deployment:
73
+ To prepare the server (only required the first time) for deployment, add nginx
74
+ flag if deploying to nginx server:
74
75
 
75
76
  ```bash
76
- tag=0.0.0 stage=production ground predeploy
77
+ tag=0.0.0 stage=production ground predeploy [--nginx]
77
78
  ```
78
79
 
79
80
  To deploy the release (note that `stage` is optional and will be set to staging
@@ -1,4 +1,4 @@
1
- image: 'isgmhradd/rails-ruby26:2019-10-07'
1
+ image: 'isgmhradd/rails-ruby27:2020-04-01'
2
2
 
3
3
  pipelines:
4
4
  default:
@@ -21,9 +21,11 @@ task :before_run do
21
21
  set :domain, project.full_dns(fetch(:stage))
22
22
  set :user, "deploy"
23
23
  set :repository, project.repo_url
24
+ set :repo_name, project.repo_name
24
25
  set :deploy_to, project.deploy_to
25
26
  set :forward_agent, true
26
27
  set :bundle_path, "bundle"
28
+ set :smtp_domain, project.smtp_domain
27
29
 
28
30
  set :rvm_ruby_version, project.rvm_ruby_version
29
31
  set :rvm_type, :system
@@ -39,6 +41,7 @@ task :before_run do
39
41
  end
40
42
 
41
43
  set :branch, "master"
42
- set :tag, "tags/#{tag}"
44
+ set :tag, tag
45
+ set :nginx, fetch(:nginx)
43
46
  end
44
47
  # rubocop:enable Metrics/BlockLength
@@ -28,6 +28,14 @@ def vhost_config_file
28
28
  "/etc/httpd/conf.d/#{fetch :application_name}.conf"
29
29
  end
30
30
 
31
+ def vhost_nginx_config_file
32
+ "/etc/nginx/sites-available/#{fetch :application_name}.conf"
33
+ end
34
+
35
+ def vhost_nginx_linked_file
36
+ "/etc/nginx/sites-enabled/#{fetch :application_name}.conf"
37
+ end
38
+
31
39
  def remote_shared_path(path)
32
40
  "#{fetch(:user)}@#{fetch(:domain)}:#{fetch(:shared_path)}/#{path}"
33
41
  end
@@ -101,14 +109,25 @@ namespace :deploy_configure do
101
109
  end
102
110
  # rubocop:enable Metrics/BlockLength
103
111
 
112
+ # rubocop:disable Metrics/BlockLength
104
113
  namespace :deploy_prepare do
105
114
  desc "Write the virtual host config file. May require an Apache restart."
106
115
  task :create_vhost do
107
116
  load_project
117
+ vhost_file = vhost_config_file
108
118
  vhost_config = load_template("vhost_config.conf.erb")
109
- if !(File.exist? vhost_config_file) || FORCE_OVERWRITE
110
- comment "Writing virtual host config to #{vhost_config_file}"
111
- command "echo \"#{vhost_config}\" > #{vhost_config_file}"
119
+
120
+ if fetch(:nginx)
121
+ vhost_file = vhost_nginx_config_file
122
+ vhost_config = load_template("vhost_config_nginx.conf.erb")
123
+ command "sudo chown -R deploy:nginx /etc/nginx/sites-available"
124
+ command "sudo chown -R deploy:nginx /etc/nginx/sites-enabled"
125
+ end
126
+
127
+ if !(File.exist? vhost_file) || FORCE_OVERWRITE
128
+ comment "Writing virtual host config to #{vhost_file}"
129
+ command "echo \"#{vhost_config}\" > #{vhost_file}"
130
+ command "ln -s #{vhost_file} #{vhost_nginx_linked_file}" if fetch(:nginx)
112
131
  end
113
132
  end
114
133
 
@@ -120,7 +139,9 @@ namespace :deploy_prepare do
120
139
 
121
140
  desc "Set owner."
122
141
  task :set_owner do
123
- comment "Setting owner of #{fetch :deploy_to} apache"
124
- command "sudo chgrp -R apache #{fetch :deploy_to}"
142
+ owner = fetch(:nginx) ? "nginx" : "apache"
143
+ comment "Setting owner of #{fetch :deploy_to} #{owner}"
144
+ command "sudo chgrp -R #{owner} #{fetch :deploy_to}"
125
145
  end
126
146
  end
147
+ # rubocop:enable Metrics/BlockLength
@@ -64,7 +64,7 @@ Rails.application.configure do
64
64
  authentication: :plain,
65
65
  address: 'smtp.mailgun.org',
66
66
  port: 587,
67
- domain: 'cbits.northwestern.edu',
67
+ domain: '<%= fetch :smtp_domain %>',
68
68
  user_name: ENV['mailgun_db_username'],
69
69
  password: ENV['mailgun_db_password']
70
70
  }
@@ -11,9 +11,7 @@ end
11
11
  desc "Checks out the selected release tag"
12
12
  task :checkout_release do
13
13
  comment "Checking out release \"#{fetch :tag}\""
14
- command %(git clone -b "#{fetch :branch}" "#{fetch :repository}" .)
15
- command "git fetch"
16
- command %(git checkout "#{fetch :tag}")
14
+ command %(git clone -b "#{fetch :tag}" --depth 1 "#{fetch :repository}" .)
17
15
  end
18
16
 
19
17
  desc "Uses an RVM envionment"
@@ -0,0 +1,26 @@
1
+ <% project = fetch :project -%>
2
+ server {
3
+ listen 80;
4
+
5
+ server_name <%= fetch :domain %>;
6
+ return 301 https://<%= fetch :domain -%>/;
7
+ }
8
+
9
+ server {
10
+ listen 443 ssl;
11
+ server_name <%= fetch :domain %>;
12
+
13
+ passenger_enabled on;
14
+ passenger_friendly_error_pages off;
15
+ passenger_app_env <%= fetch :stage %>;
16
+ passenger_ruby /usr/local/rvm/gems/ruby-<%= fetch :rvm_ruby_version -%>/wrappers/ruby;
17
+ passenger_min_instances 1;
18
+ passenger_base_uri /;
19
+
20
+ root <%= fetch :deploy_to -%>/current/public;
21
+
22
+ ssl_certificate <%= project.ssl_certificate_file(fetch(:stage).to_sym) %>;
23
+ ssl_certificate_key <%= project.ssl_certificate_key_file(fetch(:stage).to_sym) %>;
24
+ ssl_protocols TLSv1.2;
25
+ ssl_ciphers HIGH:!aNULL:!MD5;
26
+ }
@@ -31,10 +31,10 @@ Gem::Specification.new do |spec|
31
31
  spec.executables = "ground"
32
32
  spec.require_paths = %w[lib config]
33
33
 
34
- spec.add_dependency "jira-ruby", "~> 1.6"
34
+ spec.add_dependency "jira-ruby", "~> 2.0"
35
35
  spec.add_dependency "mina", "~> 1.2"
36
36
  spec.add_dependency "mina-whenever", "~> 1.0.1"
37
- spec.add_dependency "thor", "~> 0.19"
37
+ spec.add_dependency "thor", "~> 1.0"
38
38
 
39
39
  spec.add_development_dependency "bundler", "~> 2.0"
40
40
  spec.add_development_dependency "byebug"
@@ -29,6 +29,7 @@ module Groundskeeper
29
29
 
30
30
  # :nocov:
31
31
  desc "predeploy", "create configuration files for the project"
32
+ option :nginx, type: :boolean
32
33
  def predeploy
33
34
  commands.info options
34
35
  commands.predeploy options
@@ -5,6 +5,8 @@ require "mina"
5
5
  require "pp"
6
6
  require "open3"
7
7
 
8
+ class VersionError < StandardError; end
9
+
8
10
  module Groundskeeper
9
11
  # Formulas for managing releases and deployments.
10
12
  # rubocop:disable Metrics/ClassLength
@@ -191,6 +193,7 @@ module Groundskeeper
191
193
  cmd << " -s" if options[:simulate]
192
194
  cmd << " -v" if options[:verbose]
193
195
  cmd << " force_asset_precompile=true" if options[:force_asset_precompile]
196
+ cmd << " nginx=true" if options[:nginx]
194
197
  run_mina cmd
195
198
  end
196
199
 
@@ -372,18 +375,26 @@ module Groundskeeper
372
375
  end
373
376
  end
374
377
 
375
- # rubocop:disable Metrics/MethodLength
378
+ # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
376
379
  def update_deployed_issues
380
+ tries = 0
381
+
377
382
  announce_step(
378
383
  "Check deployed version at #{website.uri}/#{Website::VERSION_PATH}"
379
384
  )
380
- deployed_version = website.version
381
385
 
382
- if deployed_version == ENV[TAG]
386
+ begin
387
+ deployed_version = website.version
388
+
389
+ raise VersionError unless deployed_version == ENV[TAG]
390
+
383
391
  console.say("# deployment successful", :green)
384
392
  transition_remote_issues deployed_version
385
393
  announce_in_slack deployed_version
386
- else
394
+ rescue VersionError
395
+ tries += 1
396
+ sleep 5
397
+ retry if tries < 3
387
398
  # :nocov:
388
399
  console.say(
389
400
  "something went wrong: expected version #{ENV[TAG]}, " \
@@ -393,7 +404,7 @@ module Groundskeeper
393
404
  # :nocov:
394
405
  end
395
406
  end
396
- # rubocop:enable Metrics/MethodLength
407
+ # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
397
408
 
398
409
  # :nocov:
399
410
  def release_version
@@ -17,6 +17,7 @@ module Groundskeeper
17
17
  DB_ENV_VARIABLES_KEY = "db_env_variables"
18
18
  SENTRY_DSN_KEY = "sentry_dsn"
19
19
  SENTRY_PROJECT_KEY = "sentry_project"
20
+ SMTP_DOMAIN = "smtp_domain"
20
21
  SSL_CERTIFICATE_FILE_KEY = "SSLCertificateFile"
21
22
  SSL_CERTIFICATE_CHAIN_FILE_KEY = "SSLCertificateChainFile"
22
23
  SSL_CERTIFICATE_KEY_FILE_KEY = "SSLCertificateKeyFile"
@@ -65,6 +66,12 @@ module Groundskeeper
65
66
  end
66
67
  # :nocov:
67
68
 
69
+ # :nocov:
70
+ def smtp_domain
71
+ details[SMTP_DOMAIN] || ""
72
+ end
73
+ # :nocov:
74
+
68
75
  # :nocov:
69
76
  def rvm_ruby_version
70
77
  details[RVM_RUBY_VERSION_KEY] || ""
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Groundskeeper
4
- VERSION = "0.12.0"
4
+ VERSION = "0.17.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: groundskeeper-bitcore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BIT Core
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - certs/ericcf.pem
12
- date: 2019-12-12 00:00:00.000000000 Z
12
+ date: 2020-06-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jira-ruby
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.6'
20
+ version: '2.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.6'
27
+ version: '2.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: mina
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -59,14 +59,14 @@ dependencies:
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '0.19'
62
+ version: '1.0'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '0.19'
69
+ version: '1.0'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: bundler
72
72
  requirement: !ruby/object:Gem::Requirement
@@ -181,6 +181,7 @@ files:
181
181
  - config/secrets_config.yml.erb
182
182
  - config/tasks.rb
183
183
  - config/vhost_config.conf.erb
184
+ - config/vhost_config_nginx.conf.erb
184
185
  - groundskeeper.gemspec
185
186
  - lib/groundskeeper.rb
186
187
  - lib/groundskeeper/application.rb
@@ -223,7 +224,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
224
  - !ruby/object:Gem::Version
224
225
  version: '0'
225
226
  requirements: []
226
- rubygems_version: 3.0.6
227
+ rubygems_version: 3.1.2
227
228
  signing_key:
228
229
  specification_version: 4
229
230
  summary: A gem for managing releases and deployments.