deploy_mate 0.20 → 0.25

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
  SHA1:
3
- metadata.gz: bbadfa76146d4f7da098a05d65a15b28897b5fdd
4
- data.tar.gz: 65afaa22c3d1b9a2c456de81186e072bd0ff5269
3
+ metadata.gz: 4688cb4bbaaac7d4f9ca94f23ceae0c00444bbee
4
+ data.tar.gz: d4f5f27b8e5934f6762feb513538147663e40e0d
5
5
  SHA512:
6
- metadata.gz: d21d1ba6ab3489312a6212a6af7d3ce95f156d5c86e4855ac922b207ade905722fb2fe07669d25a5b9980e932a8f434a28d0fb17cd1d7d355b36387cca43401c
7
- data.tar.gz: 63330fdd41d6364f9068869ab1c2c360f93f9fc8bd827d5566928c3c191eee2e8af55f6b5d693a201740c4f65052d175d0eafac5994b076e5f309d42d7a17994
6
+ metadata.gz: 6efc0d11872ede6f98f931fc4c719794fb173f9ae4ef79986c8998d8318aabbe24fff6e9e091be334b2c8a7c3db6b53c91ec8083ae06124514a89a251a5e5352
7
+ data.tar.gz: 0afcd367fd83b0ac36871375038d3d72d97b347b9123f17b83aa7c2f603dbf5025993a092c0499ead7d7770e72ec68d8e29d3295ff85db8df221a00259c3451f
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.3.0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,4 @@
1
+ * **0.25 (2016-05-23)**: Support multiple stages in YAML-file.
1
2
  * **0.2 (2016-05-18)**: Configuration moved to YAML-file. SSH-Keys optional. Config-templates overwritable locally.
2
3
  * **0.18.4 (2016-03-22)**: Added mandatory task to install `ssh_key`s
3
4
  * **0.18.2 (2016-03-08)**: Added basic DDoS and flooding-proof via nginx `req_limit` and `fail2ban`
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
1
  source "https://rubygems.org"
2
- gemspec
2
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- deploy_mate (0.18.4)
4
+ deploy_mate (0.20)
5
5
  capistrano (~> 3.0)
6
6
  capistrano-bundler
7
7
  capistrano-rails
@@ -10,6 +10,7 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
+ ast (2.2.0)
13
14
  capistrano (3.4.0)
14
15
  i18n
15
16
  rake (>= 10.0.0)
@@ -24,16 +25,29 @@ GEM
24
25
  net-scp (1.2.1)
25
26
  net-ssh (>= 2.6.5)
26
27
  net-ssh (3.0.2)
28
+ parser (2.3.0.4)
29
+ ast (~> 2.2)
30
+ powerpack (0.1.1)
31
+ rainbow (2.1.0)
27
32
  rake (10.5.0)
33
+ rubocop (0.37.1)
34
+ parser (>= 2.3.0.4, < 3.0)
35
+ powerpack (~> 0.1)
36
+ rainbow (>= 1.99.1, < 3.0)
37
+ ruby-progressbar (~> 1.7)
38
+ unicode-display_width (~> 0.3)
39
+ ruby-progressbar (1.7.5)
28
40
  sshkit (1.8.1)
29
41
  net-scp (>= 1.1.2)
30
42
  net-ssh (>= 2.8.0)
43
+ unicode-display_width (0.3.1)
31
44
 
32
45
  PLATFORMS
33
46
  ruby
34
47
 
35
48
  DEPENDENCIES
36
49
  deploy_mate!
50
+ rubocop
37
51
 
38
52
  BUNDLED WITH
39
- 1.11.2
53
+ 1.12.4
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Hanse Ventures BSJ GmbH
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # The sturdy d'ploy-mate
1
+ # The sturdy d'ploy-mate [![Build Status](https://travis-ci.org/johanness/deploy-mate.svg?branch=master)](https://travis-ci.org/johanness/deploy-mate) [![Code Climate](https://codeclimate.com/github/johanness/deploy-mate/badges/gpa.svg)](https://codeclimate.com/github/johanness/deploy-mate)
2
2
  <img src="http://hanseventures.s3.amazonaws.com/github/pirate-redbeard_1024.png" width="300" />
3
3
  > T'arrust me, bucko. I can do it.
4
4
 
data/Rakefile CHANGED
@@ -1 +1,5 @@
1
- load 'lib/deploy_mate/tasks.rake'
1
+ load 'lib/deploy_mate/tasks.rake'
2
+
3
+ require 'rubocop/rake_task'
4
+ RuboCop::RakeTask.new
5
+ task(:default).clear.enhance [:rubocop]
data/deploy-mate.gemspec CHANGED
@@ -1,22 +1,24 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "deploy_mate"
3
- s.version = "0.20"
3
+ s.version = "0.25"
4
4
 
5
5
  s.authors = ["Tim Adler", "Marcus Geißler", "Johannes Strampe"]
6
- s.date = %q{2016-05-18}
7
- s.description = %q{This is how we deploy around here.}
6
+ s.date = '2016-05-23'
7
+ s.description = 'This is how we deploy around here.'
8
8
  s.summary = s.description
9
- s.email = %q{development (at) hanseventures (dot) com}
9
+ s.email = 'development (at) hanseventures (dot) com'
10
10
  s.license = "MIT"
11
11
 
12
12
  s.files = `git ls-files`.split("\n")
13
13
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
- s.homepage = %q{https://github.com/hanseventures/deploy-mate}
14
+ s.homepage = 'https://github.com/hanseventures/deploy-mate'
15
15
  s.require_paths = ["lib"]
16
- s.rubygems_version = %q{1.6.2}
16
+ s.rubygems_version = '1.6.2'
17
17
 
18
18
  s.add_dependency 'capistrano', '~> 3.0'
19
19
  s.add_dependency 'capistrano-bundler'
20
20
  s.add_dependency 'capistrano-rails'
21
21
  s.add_dependency 'rake'
22
+
23
+ s.add_development_dependency 'rubocop'
22
24
  end
@@ -1,22 +1,22 @@
1
1
  # This file contains default values for all projects
2
- set :log_level, :info
2
+ set :log_level, fetch(:log_level, :info)
3
3
 
4
4
  set :user, "ubuntu"
5
5
  set :group, "www-data"
6
6
 
7
7
  set :pty, true
8
8
  set :rvm_ruby_version, "ruby-2.2.0"
9
- set :rvm_map_bins, %w{gem rake ruby rvmsudo bundle}
9
+ set :rvm_map_bins, %w(gem rake ruby rvmsudo bundle)
10
10
 
11
11
  set :deploy_to, "/srv/#{fetch(:application)}"
12
- set :linked_dirs, fetch(:linked_dirs, []).push(*%w{log vendor/bundle system/pids system/sockets public/assets})
12
+ set :linked_dirs, fetch(:linked_dirs, []).push(*%w(log vendor/bundle system/pids system/sockets public/assets))
13
13
 
14
14
  set :keep_releases, 3
15
- set :ssh_options, { forward_agent: true }
15
+ set :ssh_options, forward_agent: true
16
16
 
17
17
  # bundler config
18
18
  set :bundle_flags, "--deployment"
19
- set :bundle_without, %w{development test}.join(' ')
19
+ set :bundle_without, %w(development test).join(' ')
20
20
  set :bundle_exec, "bundle exec"
21
21
 
22
22
  # app server
@@ -3,7 +3,7 @@
3
3
 
4
4
  def template(from, to)
5
5
  path = File.expand_path("lib/capistrano/configs/#{from}", ENV['PWD'])
6
- path = File.expand_path("../configs/#{from}", __FILE__) unless File.exists?(path)
6
+ path = File.expand_path("../configs/#{from}", __FILE__) unless File.exist?(path)
7
7
  erb = File.read(path)
8
8
  compiled = ERB.new(erb).result(binding)
9
9
  io = StringIO.new(compiled)
@@ -15,7 +15,7 @@ def set_default(name, *args, &block)
15
15
  end
16
16
 
17
17
  def execute_script(name, params = "")
18
- upload! File.expand_path("../scripts/#{name}", __FILE__), "#{name}"
18
+ upload! File.expand_path("../scripts/#{name}", __FILE__), name.to_s
19
19
  execute "chmod 755 #{name}"
20
20
  execute "./#{name} #{params}"
21
21
  execute "rm #{name}"
@@ -1,5 +1,4 @@
1
1
  module Aptitude
2
-
3
2
  def apt_get_update
4
3
  sudo "apt-get -y update"
5
4
  end
@@ -12,8 +11,7 @@ module Aptitude
12
11
  sudo "sudo apt-get -y autoremove #{package_name}"
13
12
  end
14
13
 
15
- def is_package_installed?(package_name)
16
- !(/(Installed: \(none\)|Unable to locate package)/.match(capture("apt-cache policy #{package_name}")))
14
+ def package_installed?(package_name)
15
+ !/(Installed: \(none\)|Unable to locate package)/.match(capture("apt-cache policy #{package_name}"))
17
16
  end
18
-
19
17
  end
@@ -1,5 +1,4 @@
1
1
  module Bluepill
2
-
3
2
  def bluepill_running?
4
3
  /running/.match(capture(:status, :bluepill))
5
4
  end
@@ -7,5 +6,4 @@ module Bluepill
7
6
  def pill_running?(pill_name)
8
7
  /up/.match(capture(:rvmsudo, :bluepill, :status, pill_name))
9
8
  end
10
-
11
9
  end
@@ -1,7 +1,5 @@
1
1
  module Shell
2
-
3
2
  def file_exists?(file)
4
3
  test("[ -f #{file} ]")
5
4
  end
6
-
7
5
  end
@@ -1,7 +1,5 @@
1
1
  module Upstart
2
-
3
2
  def service_running?(service)
4
3
  /running/.match(capture("status #{service}"))
5
4
  end
6
-
7
5
  end
@@ -1,5 +1,4 @@
1
1
  module UserManagement
2
-
3
2
  def whoami
4
3
  capture(:whoami)
5
4
  end
@@ -7,5 +6,4 @@ module UserManagement
7
6
  def am_i?(user_name)
8
7
  whoami == user_name
9
8
  end
10
-
11
9
  end
@@ -4,8 +4,8 @@ namespace :elasticsearch do
4
4
  include Aptitude
5
5
  task :install do
6
6
  on roles(:search) do
7
- unless is_package_installed?("elasticsearch")
8
- apt_get_install("openjdk-7-jre-headless") unless is_package_installed?("openjdk-7-jre-headless")
7
+ unless package_installed?("elasticsearch")
8
+ apt_get_install("openjdk-7-jre-headless") unless package_installed?("openjdk-7-jre-headless")
9
9
  execute "wget -qO - https://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -"
10
10
  sudo "add-apt-repository 'deb http://packages.elasticsearch.org/elasticsearch/#{fetch(:elasticsearch_version)}/debian stable main'"
11
11
  apt_get_update
@@ -9,5 +9,4 @@ namespace :logrotate do
9
9
  sudo "chown root:root /etc/logrotate.d/#{fetch(:application)}"
10
10
  end
11
11
  end
12
-
13
12
  end
@@ -36,7 +36,7 @@ namespace :machine do
36
36
  unless am_i?("ubuntu")
37
37
  execute_script("create_ubuntu_user.sh") # Creates an Amazon AWS-style 'ubuntu'-user on machines with only 'root'
38
38
  error "Please use a use a user named 'ubuntu' to login to the machine."
39
- fail
39
+ raise
40
40
  end
41
41
  end
42
42
  end
@@ -70,7 +70,7 @@ namespace :machine do
70
70
 
71
71
  task :language_pack_de do
72
72
  on roles(:app) do
73
- apt_get_install("language-pack-de") unless is_package_installed?("language-pack-de")
73
+ apt_get_install("language-pack-de") unless package_installed?("language-pack-de")
74
74
  end
75
75
  end
76
76
 
@@ -104,44 +104,44 @@ namespace :machine do
104
104
 
105
105
  task :imagemagick do
106
106
  on roles(:app) do
107
- apt_get_install("imagemagick") unless is_package_installed?("imagemagick")
107
+ apt_get_install("imagemagick") unless package_installed?("imagemagick")
108
108
  end
109
109
  end
110
110
 
111
111
  task :memcached do
112
112
  on roles(:app) do
113
- apt_get_install("memcached") unless is_package_installed?("memcached")
113
+ apt_get_install("memcached") unless package_installed?("memcached")
114
114
  end
115
115
  end
116
116
 
117
117
  task :mysql_dev do
118
118
  on roles(:app) do
119
- apt_get_install("libmysqlclient-dev") unless is_package_installed?("libmysqlclient-dev")
119
+ apt_get_install("libmysqlclient-dev") unless package_installed?("libmysqlclient-dev")
120
120
  end
121
121
  end
122
122
 
123
123
  task :postgres_dev do
124
124
  on roles(:app) do
125
- apt_get_install("libpq-dev") unless is_package_installed?("libpq-dev")
126
- apt_get_install("postgresql-client") unless is_package_installed?("postgresql-client")
125
+ apt_get_install("libpq-dev") unless package_installed?("libpq-dev")
126
+ apt_get_install("postgresql-client") unless package_installed?("postgresql-client")
127
127
  end
128
128
  end
129
129
 
130
130
  task :htop do
131
131
  on roles(:app) do
132
- apt_get_install("htop") unless is_package_installed?("htop")
132
+ apt_get_install("htop") unless package_installed?("htop")
133
133
  end
134
134
  end
135
135
 
136
136
  task :nodejs do
137
137
  on roles(:app) do
138
- apt_get_install("nodejs") unless is_package_installed?("nodejs")
138
+ apt_get_install("nodejs") unless package_installed?("nodejs")
139
139
  end
140
140
  end
141
141
 
142
142
  task :ntp do
143
143
  on roles(:app) do
144
- apt_get_install("ntp") unless is_package_installed?("ntp")
144
+ apt_get_install("ntp") unless package_installed?("ntp")
145
145
  sudo "chmod 666 /etc/timezone"
146
146
  execute 'echo "Europe/Berlin" > /etc/timezone'
147
147
  sudo "chmod 644 /etc/timezone"
@@ -151,25 +151,25 @@ namespace :machine do
151
151
 
152
152
  task :git do
153
153
  on roles(:app) do
154
- apt_get_install("git") unless is_package_installed?("git")
154
+ apt_get_install("git") unless package_installed?("git")
155
155
  end
156
156
  end
157
157
 
158
158
  task :nginx do
159
159
  on roles(:app) do
160
- apt_get_install("nginx") unless is_package_installed?("nginx")
160
+ apt_get_install("nginx") unless package_installed?("nginx")
161
161
  end
162
162
  end
163
163
 
164
164
  task :fail2ban do
165
165
  on roles(:app) do
166
- apt_get_install("fail2ban") unless is_package_installed?("fail2ban")
166
+ apt_get_install("fail2ban") unless package_installed?("fail2ban")
167
167
  end
168
168
  end
169
169
 
170
170
  task :imagemagick do
171
171
  on roles(:app) do
172
- unless is_package_installed?("imagemagick")
172
+ unless package_installed?("imagemagick")
173
173
  apt_get_install("imagemagick")
174
174
  apt_get_install("libmagickcore-dev")
175
175
  apt_get_install("libmagickwand-dev")
@@ -179,7 +179,7 @@ namespace :machine do
179
179
 
180
180
  task :unattended_upgrades do
181
181
  on roles(:app) do
182
- unless is_package_installed?("unattended-upgrades")
182
+ unless package_installed?("unattended-upgrades")
183
183
  apt_get_install("unattended-upgrades")
184
184
  end
185
185
  end
@@ -209,7 +209,7 @@ namespace :machine do
209
209
  end
210
210
  end
211
211
 
212
- fail "No ssh-keys found in #{file_patterns.join(',')}." unless keys.any?
212
+ raise "No ssh-keys found in #{file_patterns.join(',')}." unless keys.any?
213
213
 
214
214
  upload!(StringIO.new(keys.join("")), 'new_keys')
215
215
  sudo "rm ~/.ssh/authorized_keys"
@@ -224,5 +224,4 @@ namespace :machine do
224
224
  end
225
225
  before "machine:install:rvm", "machine:install:update_rvm_key"
226
226
  end
227
-
228
227
  end
@@ -73,5 +73,4 @@ namespace :nginx do
73
73
  end
74
74
 
75
75
  after "nginx:setup", "nginx:reload"
76
-
77
76
  end
@@ -14,5 +14,4 @@ namespace :puma do
14
14
  template "puma.rb.erb", "#{shared_path}/config/puma.rb"
15
15
  end
16
16
  end
17
-
18
17
  end
@@ -1,5 +1,5 @@
1
- RVM_SYSTEM_PATH = "/usr/local/rvm"
2
- RVM_USER_PATH = "~/.rvm"
1
+ RVM_SYSTEM_PATH = "/usr/local/rvm".freeze
2
+ RVM_USER_PATH = "~/.rvm".freeze
3
3
 
4
4
  namespace :rvm do
5
5
  desc "Prints the RVM and Ruby version on the target host"
@@ -19,19 +19,19 @@ namespace :rvm do
19
19
  on roles(fetch(:rvm_roles, :all)) do
20
20
  rvm_path = fetch(:rvm_custom_path)
21
21
  rvm_path ||= case fetch(:rvm_type)
22
- when :auto
23
- if test("[ -d #{RVM_USER_PATH} ]")
24
- RVM_USER_PATH
25
- elsif test("[ -d #{RVM_SYSTEM_PATH} ]")
26
- RVM_SYSTEM_PATH
27
- else
28
- RVM_USER_PATH
29
- end
30
- when :system, :mixed
31
- RVM_SYSTEM_PATH
32
- else # :user
33
- RVM_USER_PATH
34
- end
22
+ when :auto
23
+ if test("[ -d #{RVM_USER_PATH} ]")
24
+ RVM_USER_PATH
25
+ elsif test("[ -d #{RVM_SYSTEM_PATH} ]")
26
+ RVM_SYSTEM_PATH
27
+ else
28
+ RVM_USER_PATH
29
+ end
30
+ when :system, :mixed
31
+ RVM_SYSTEM_PATH
32
+ else # :user
33
+ RVM_USER_PATH
34
+ end
35
35
 
36
36
  set :rvm_path, rvm_path
37
37
  end
@@ -49,7 +49,7 @@ before :deploy, 'rvm:hook'
49
49
 
50
50
  namespace :load do
51
51
  task :defaults do
52
- set :rvm_map_bins, %w{gem rake ruby bundle}
52
+ set :rvm_map_bins, %w(gem rake ruby bundle)
53
53
  set :rvm_type, :auto
54
54
  set :rvm_ruby_version, "default"
55
55
  end
@@ -1,5 +1,4 @@
1
1
  namespace :seeds do
2
-
3
2
  desc "Reload seeds from scratch"
4
3
  task :reload do
5
4
  on roles(:app) do
@@ -11,6 +10,4 @@ namespace :seeds do
11
10
  end
12
11
  end
13
12
  end
14
-
15
13
  end
16
-
@@ -13,5 +13,4 @@ namespace :unicorn do
13
13
  template "unicorn.rb.erb", "#{shared_path}/config/unicorn.rb"
14
14
  end
15
15
  end
16
-
17
16
  end
@@ -19,5 +19,4 @@ namespace :upstart do
19
19
  sudo "chown root:root /etc/init/bluepill.conf"
20
20
  end
21
21
  end
22
-
23
22
  end
@@ -7,6 +7,7 @@ namespace :deploy_mate do
7
7
  @imagemagick = to_h(imagemagick?)
8
8
  @sidekiq = to_h(sidekiq?)
9
9
  @memcached = to_h(memcached?)
10
+ @stages = %w(prestage production)
10
11
 
11
12
  puts "Creating default template:\n\n"
12
13
  puts "\t" + config_template('deploy_mate.yml.erb', 'config/deploy_mate.yml')
@@ -15,11 +16,16 @@ namespace :deploy_mate do
15
16
 
16
17
  task :install do
17
18
  @config = YAML.load_file(File.expand_path('config/deploy_mate.yml', ENV['PWD']))
19
+
18
20
  puts "Creating capistrano deployment files:\n"
19
- FileUtils.mkdir_p("config/deploy") unless File.exists?("config/deploy")
21
+ FileUtils.mkdir_p("config/deploy") unless File.exist?("config/deploy")
20
22
  puts config_template("Capfile.erb", "Capfile")
21
23
  puts config_template("deploy.rb.erb", "config/deploy.rb")
22
- puts config_template("deploy/stage.rb.erb", "config/deploy/#{@config['stage_name']}.rb")
24
+
25
+ @config['stages'].each do |stage_config|
26
+ @stage_config = stage_config
27
+ puts config_template("deploy/stage.rb.erb", "config/deploy/#{@stage_config['stage_name']}.rb")
28
+ end
23
29
  end
24
30
  end
25
31
 
@@ -51,16 +57,13 @@ def guess_app_name
51
57
  end
52
58
 
53
59
  def guess_ruby_version
54
- ruby_version = nil
55
60
  ruby_version = cat_file(".ruby-version")
56
61
  ruby_version.strip! if ruby_version
57
62
  unless ruby_version
58
63
  gem_file_content = cat_file("Gemfile")
59
64
  if gem_file_content
60
- match = gem_file_content.match("^ruby '(?<version>[0-9.]*)'")
61
- if match
62
- ruby_version = "ruby-" + match["version"]
63
- end
65
+ match = gem_file_content.match("^ruby '(?<version>[0-9.]*)'")
66
+ ruby_version = "ruby-" + match["version"] if match
64
67
  end
65
68
  end
66
69
  ruby_version
@@ -71,5 +74,5 @@ def to_h(value)
71
74
  end
72
75
 
73
76
  def cat_file(filename)
74
- File.open(filename, "rb") { |f| f.read } if File.exist?(filename)
77
+ File.open(filename, "rb", &:read) if File.exist?(filename)
75
78
  end
@@ -1,7 +1,7 @@
1
- server "<%= @config['ssh_name'] %>", roles: [:app, :db, :web<% if @config['elasticsearch'] %>, :search<% end %>], :primary => true
1
+ server "<%= @stage_config['ssh_name'] %>", roles: [:app, :db, :web<% if @config['elasticsearch'] %>, :search<% end %>], :primary => true
2
2
 
3
3
  set :unicorn_workers, "2"
4
- set :nginx_server_name, "<%= @config['host_name'] %>"
4
+ set :nginx_server_name, "<%= @stage_config['host_name'] %>"
5
5
 
6
- set :environment, "<%= @config['environment'] %>"
7
- set :branch, ENV.fetch("branch", "<%= @config['branch_name'] %>")
6
+ set :environment, "<%= @stage_config['environment'] %>"
7
+ set :branch, ENV.fetch("branch", "<%= @stage_config['branch_name'] %>")
@@ -6,8 +6,7 @@ require "capistrano/deploy_mate_defaults"
6
6
  set :rvm_ruby_version, '<%= @config['ruby_version'] %>'
7
7
 
8
8
  # Set app specific vars
9
- set :stages, %w(<%= @config['stage_name'] %>)
10
- set :default_stage, '<%= @config['stage_name'] %>'
9
+ set :default_stage, '<%= @config['stages'][0]['stage_name'] %>'
11
10
  set :repo_url, '<%= @config['repo_url'] %>'
12
11
  set :db_engine, '<%= @config['db_engine'] %>'
13
12
  set :app_server, '<%= @config['app_server'] %>'
@@ -13,40 +13,44 @@
13
13
  # The url of your GIT repository.
14
14
  repo_url: "git@github.com:your-github-name/<%= @app_name %>.git"
15
15
 
16
- # For which stage should the server-setup/deployment be generated. It is
17
- # recommended to start with a prestage system and afterwards configure
18
- # the production system when it is ready.
19
- stage_name: prestage
20
-
21
- # Under which rails environment will the application run.
22
- environment: prestage
23
-
24
- # Which GIT branch should be deployed to the defined server by default?
25
- # You can overrule this value by providing a branch on the deployment command:
26
- #
27
- # bundle exec cap prestage deploy branch=feature/xyz
28
- branch_name: dev
29
-
30
- # Which is the ssh shortcut to connect to the server. It should be configured
31
- # in your ~/.ssh/config. You should be able to connect to the server using:
32
- #
33
- # ssh specified_ssh_name
34
- #
35
- ssh_name: prestage-server
36
-
37
- # Since you are able to connect to the server with the specified ssh shortcurt,
38
- # usually more persons should be able to access it. You can specify a list of
16
+
17
+ # The following lists the configs for every stage that a deployment will
18
+ # be generated for
19
+ stages:
20
+ <% @stages.each do |stage| %>
21
+ # Name of the stage
22
+ - stage_name: <%= stage %>
23
+
24
+ # Under which rails environment will the application run on <%= stage %>.
25
+ environment: <%= stage %>
26
+
27
+ # Which GIT branch should be deployed to <%= stage %> by default?
28
+ # You can overrule this value by providing a branch on the deployment command:
29
+ #
30
+ # bundle exec cap <%= stage %> deploy branch=feature/xyz
31
+ branch_name: <%= (stage == 'production' ? 'master' : 'dev') %>
32
+
33
+ # Which is the ssh shortcut to connect to the <%= stage %>-server. It should be configured
34
+ # in your ~/.ssh/config. You should be able to connect to the server using:
35
+ #
36
+ # ssh specified_ssh_name
37
+ #
38
+ ssh_name: <%= stage %>-server
39
+
40
+ # Under which URL should your server be available? An IP address does the job
41
+ # too
42
+ host_name: example.com
43
+ <% end %>
44
+
45
+ # Since you are able to connect to your with the specified ssh shortcurt,
46
+ # usually more persons should be able to access them. You can specify a list of
39
47
  # public ssh keys which will be copied to the ~/.ssh/authorized_keys file on the
40
48
  # server. If the list is empty, the current key setting will be left untouched on
41
49
  # the server.
42
50
  ssh_file_names:
43
51
  - "~/.ssh/*.pub"
44
52
 
45
- # Under which URL should your server be available? An IP address does the job
46
- # too
47
- host_name: example.com
48
-
49
- # The ruby version, that will be installed and used on the server. It is used
53
+ # The ruby version, that will be installed and used on the servers. It is used
50
54
  # by RVM and must have a compatible syntax like '2.3.0' or 'ruby-2.3.0'.
51
55
  ruby_version: <%= @ruby_version %>
52
56
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deploy_mate
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.20'
4
+ version: '0.25'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Adler
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-05-18 00:00:00.000000000 Z
13
+ date: 2016-05-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: capistrano
@@ -68,6 +68,20 @@ dependencies:
68
68
  - - ">="
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: rubocop
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
71
85
  description: This is how we deploy around here.
72
86
  email: development (at) hanseventures (dot) com
73
87
  executables: []
@@ -78,9 +92,11 @@ files:
78
92
  - ".rubocop.yml"
79
93
  - ".ruby-gemset"
80
94
  - ".ruby-version"
95
+ - ".travis.yml"
81
96
  - CHANGELOG.md
82
97
  - Gemfile
83
98
  - Gemfile.lock
99
+ - LICENSE.txt
84
100
  - README.md
85
101
  - Rakefile
86
102
  - deploy-mate.gemspec