openteam-capistrano 1.0.12 → 1.0.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +22 -13
- data/Rakefile +1 -1
- data/lib/generators/openteam/capistrano/templates/Capfile +3 -3
- data/lib/generators/openteam/capistrano/templates/config/deploy.rb +3 -0
- data/lib/generators/openteam/capistrano/templates/config/unicorn.rb +6 -6
- data/lib/openteam/capistrano/deploy.rb +6 -1
- data/lib/openteam/capistrano/deploy_config.rb +1 -1
- data/lib/openteam/capistrano/git.rb +2 -2
- data/lib/openteam/capistrano/helpers.rb +7 -4
- data/lib/openteam/capistrano/hooks.rb +0 -1
- data/lib/openteam/capistrano/shared.rb +3 -3
- data/lib/openteam/capistrano/solr/solr.rb +11 -11
- data/lib/openteam/capistrano/ssh.rb +3 -3
- data/lib/openteam/capistrano/tagging.rb +8 -8
- data/lib/openteam/capistrano/tasks/sunspot.rake +2 -2
- data/lib/openteam/capistrano/tasks/tagging.rake +2 -3
- data/lib/openteam/capistrano/tasks.rb +1 -1
- data/lib/openteam/capistrano/unicorn.rb +1 -1
- data/openteam-capistrano.gemspec +14 -13
- metadata +31 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d955585c6c9422fa3460602caa4c252e303dcad
|
4
|
+
data.tar.gz: 1c579d7534cc7faa4fc6174d30d1ef04793a6a0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfe4eda293050b3965f7b3c379d666f9d837efc377876b8a161a5f77f726df81db6373eddab21a8a609329f42dd813b2f94bb633f74824eaf4be8c6269a75862
|
7
|
+
data.tar.gz: db4671740d357f9417cbcbd81bdb4581f1c1f2b2f05cbba12b5b82842d4ac7786722ebf8f9d31c7a1a1cb14c14ebfac58ce4a5fd16067a326e66b0e01ffc6746
|
data/README.md
CHANGED
@@ -2,20 +2,18 @@
|
|
2
2
|
|
3
3
|
Добавлена поддержка Capistrano v3.
|
4
4
|
|
5
|
+
###### Обновлен до версии 3.5
|
6
|
+
|
5
7
|
## Установка
|
6
8
|
|
7
9
|
Добавить в Gemfile:
|
8
10
|
|
9
|
-
gem 'openteam-capistrano', '~> 1.0.
|
11
|
+
gem 'openteam-capistrano', '~> 1.0.12'
|
10
12
|
|
11
13
|
Затем выполнить:
|
12
14
|
|
13
15
|
$ bundle
|
14
16
|
|
15
|
-
Или установить gem:
|
16
|
-
|
17
|
-
$ gem install openteam-capistrano
|
18
|
-
|
19
17
|
## Использование
|
20
18
|
|
21
19
|
* Удаляем все что связано с capistrano v2 (Capfile, config/deploy.rb, config/deploy/)
|
@@ -24,10 +22,18 @@
|
|
24
22
|
Запускаем генератор:
|
25
23
|
|
26
24
|
$ rails g openteam:capistrano:install
|
27
|
-
|
25
|
+
|
26
|
+
Необходимо поправить Capfile, если версия Airbrake >= 4
|
27
|
+
|
28
|
+
$ vim Capfile
|
29
|
+
|
30
|
+
Удалить строчку 4 и раскоментировать 5
|
31
|
+
|
32
|
+
Если AirBrake < 4, то ничего делать не надо.
|
33
|
+
|
28
34
|
В папке config/deploy/ должны остаться файлы соответствующие стейджам.
|
29
35
|
В Capfile необходимо раcкомментировать необходимые задачи для Sidekiq и Whenever если это необходимо.
|
30
|
-
|
36
|
+
|
31
37
|
Деплой приложения:
|
32
38
|
|
33
39
|
$ bundle exec cap STAGE deploy
|
@@ -40,11 +46,14 @@
|
|
40
46
|
|
41
47
|
В Capistrano v3 изменилась схема работы со стейджами - теперь обязательно указывать стейдж при деплое. Опция set :default_stage была удалена.
|
42
48
|
|
43
|
-
В папке config/deploy/ должен лежать пустой файл с именем стейджа, деплой должен происходить из бранча с таким же именем что и стейдж.
|
49
|
+
В папке config/deploy/ должен лежать пустой файл с именем стейджа, деплой должен происходить из бранча с таким же именем что и стейдж.
|
44
50
|
|
45
|
-
В бренч из которого производится деплой нельзя делать комиты. Разработка ведется в мастере! Перед деплоем делаем:
|
51
|
+
В бренч из которого производится деплой нельзя делать комиты. Разработка ведется в мастере! Перед деплоем делаем:
|
52
|
+
|
53
|
+
$ git checkout STAGE
|
54
|
+
$ git rebase master
|
55
|
+
$ git push
|
56
|
+
$ git checkout master
|
57
|
+
$ bundle exec cap STAGE deploy
|
46
58
|
|
47
|
-
|
48
|
-
$ git rebase master
|
49
|
-
$ bundle exec cap BRANCH deploy
|
50
|
-
|
59
|
+
###### Если нет необходимости в разделенных ветках (например, приложение очень маленькое и не относится ни к одной из веток разработки (ato, tusur, esp)), то можно использовать ветку master и деплоить из неё.
|
data/Rakefile
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'capistrano/setup'
|
2
2
|
require 'capistrano/deploy'
|
3
|
+
require 'slackistrano/capistrano'
|
3
4
|
|
4
|
-
require 'airbrake/capistrano3'
|
5
5
|
require 'capistrano-db-tasks'
|
6
6
|
require 'capistrano3/unicorn'
|
7
7
|
require 'capistrano/rvm'
|
8
8
|
require 'capistrano/bundler'
|
9
9
|
require 'capistrano/rails/assets'
|
10
10
|
require 'capistrano/rails/migrations'
|
11
|
-
#require 'capistrano/sidekiq'
|
12
|
-
#require 'whenever/capistrano'
|
11
|
+
# require 'capistrano/sidekiq'
|
12
|
+
# require 'whenever/capistrano'
|
13
13
|
|
14
14
|
require 'openteam/capistrano/tasks'
|
@@ -14,7 +14,7 @@ timeout 360
|
|
14
14
|
working_directory app_dir
|
15
15
|
|
16
16
|
# Set up socket location
|
17
|
-
listen "#{app_dir}/tmp/sockets/unicorn.sock", :
|
17
|
+
listen "#{app_dir}/tmp/sockets/unicorn.sock", backlog: 64
|
18
18
|
|
19
19
|
# Loging
|
20
20
|
stderr_path "#{app_dir}/log/unicorn.stderr.log"
|
@@ -24,9 +24,9 @@ stdout_path "#{app_dir}/log/unicorn.stdout.log"
|
|
24
24
|
pid "#{app_dir}/tmp/pids/unicorn.pid"
|
25
25
|
|
26
26
|
before_fork do |server, worker|
|
27
|
-
defined?(ActiveRecord::Base)
|
27
|
+
defined?(ActiveRecord::Base) && ActiveRecord::Base.connection.disconnect!
|
28
28
|
old_pid = "#{server.config[:pid]}.oldbin"
|
29
|
-
if File.
|
29
|
+
if File.exist?(old_pid) && server.pid != old_pid
|
30
30
|
begin
|
31
31
|
sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
|
32
32
|
Process.kill(sig, File.read(old_pid).to_i)
|
@@ -36,10 +36,10 @@ before_fork do |server, worker|
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
after_fork do |
|
40
|
-
defined?(ActiveRecord::Base)
|
39
|
+
after_fork do |_server, _worker|
|
40
|
+
defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection
|
41
41
|
end
|
42
42
|
|
43
|
-
before_exec do |
|
43
|
+
before_exec do |_server|
|
44
44
|
ENV['BUNDLE_GEMFILE'] = "#{app_dir}/Gemfile"
|
45
45
|
end
|
@@ -5,10 +5,15 @@ if fetch(:stage) && !fetch(:stage).empty?
|
|
5
5
|
require 'openteam/capistrano/app_config'
|
6
6
|
require 'openteam/capistrano/git'
|
7
7
|
require 'openteam/capistrano/hooks'
|
8
|
-
require 'openteam/capistrano/sidekiq'
|
8
|
+
require 'openteam/capistrano/sidekiq' if used_sidekiq?
|
9
9
|
require 'openteam/capistrano/shared'
|
10
10
|
require 'openteam/capistrano/ssh'
|
11
11
|
require 'openteam/capistrano/tagging'
|
12
12
|
require 'openteam/capistrano/unicorn' if used_unicorn?
|
13
13
|
require 'openteam/capistrano/whenever' if used_whenever?
|
14
|
+
|
15
|
+
if used_settings?
|
16
|
+
require 'configliere'
|
17
|
+
Settings.read('config/settings.yml')
|
18
|
+
end
|
14
19
|
end
|
@@ -1,3 +1,3 @@
|
|
1
|
-
set :repo_url,
|
1
|
+
set :repo_url, `git config --get remote.origin.url`.chomp
|
2
2
|
set :branch, fetch(:stage)
|
3
|
-
set :user,
|
3
|
+
set :user, `git config --get user.name`.chomp
|
@@ -34,7 +34,6 @@ begin
|
|
34
34
|
rescue LoadError
|
35
35
|
end
|
36
36
|
|
37
|
-
|
38
37
|
def used_db?
|
39
38
|
!@used_db.nil?
|
40
39
|
end
|
@@ -44,7 +43,7 @@ def used_delayed_job?
|
|
44
43
|
end
|
45
44
|
|
46
45
|
def used_deploy_config?
|
47
|
-
@used_deploy_config ||= File.
|
46
|
+
@used_deploy_config ||= File.exist?('config/deploy.yml')
|
48
47
|
end
|
49
48
|
|
50
49
|
def used_sidekiq?
|
@@ -52,7 +51,7 @@ def used_sidekiq?
|
|
52
51
|
end
|
53
52
|
|
54
53
|
def used_rails?
|
55
|
-
@used_rails ||= File.
|
54
|
+
@used_rails ||= File.exist?('config/application.rb') && File.exist?('config/environment.rb')
|
56
55
|
end
|
57
56
|
|
58
57
|
def used_rmq?
|
@@ -68,5 +67,9 @@ def used_unicorn?
|
|
68
67
|
end
|
69
68
|
|
70
69
|
def used_whenever?
|
71
|
-
@used_whenever ||= File.
|
70
|
+
@used_whenever ||= File.exist?('config/schedule.rb')
|
71
|
+
end
|
72
|
+
|
73
|
+
def used_settings?
|
74
|
+
@used_settings ||= File.exist?('config/settings.yml')
|
72
75
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
after 'deploy', 'deploy:tagging:create'
|
2
2
|
after 'deploy:publishing', 'unicorn:restart'
|
3
|
-
after 'unicorn:restart', 'airbrake:deploy'
|
4
3
|
before 'deploy:cleanup', 'deploy:tagging:clean'
|
5
4
|
after 'sunspot:pull', 'sunspot:reload' if used_solr?
|
6
5
|
after 'sunspot:clear', 'sunspot:reload' if used_solr?
|
@@ -1,4 +1,4 @@
|
|
1
|
-
set :linked_dirs, %w
|
2
|
-
set :linked_files, %w
|
1
|
+
set :linked_dirs, %w(bin bundle log public/system tmp/cache tmp/pids tmp/sockets)
|
2
|
+
set :linked_files, %w(config/settings.yml)
|
3
3
|
|
4
|
-
set :linked_files, fetch(:linked_files) + %w
|
4
|
+
set :linked_files, fetch(:linked_files) + %w(config/database.yml) if used_db?
|
@@ -21,9 +21,10 @@ class Solr
|
|
21
21
|
end
|
22
22
|
|
23
23
|
private
|
24
|
+
|
24
25
|
def really_replicate
|
25
26
|
print 'Wait while solr replicated '
|
26
|
-
local.send_replication_command :fetchindex, :
|
27
|
+
local.send_replication_command :fetchindex, masterUrl: remote.url.to_s
|
27
28
|
while base_local_index_version == local.index_version
|
28
29
|
print '.'
|
29
30
|
sleep 0.5
|
@@ -48,28 +49,28 @@ class Solr
|
|
48
49
|
end
|
49
50
|
|
50
51
|
def send_version_command
|
51
|
-
send_command 'replication', :
|
52
|
+
send_command 'replication', params: { command: :indexversion }
|
52
53
|
end
|
53
54
|
|
54
|
-
def send_replication_command(command, extra={})
|
55
|
-
send_command 'replication', :
|
56
|
-
puts
|
55
|
+
def send_replication_command(command, extra = {})
|
56
|
+
send_command 'replication', params: { command: command }.merge(extra)
|
57
|
+
puts 'Index has been successfully received'
|
57
58
|
end
|
58
59
|
|
59
60
|
def send_reload_core_command(core)
|
60
|
-
send_command '/cores/admin/cores',
|
61
|
+
send_command '/cores/admin/cores', params: { action: 'RELOAD', core: core }
|
61
62
|
puts "The '#{core}' core has been successfully reloaded"
|
62
63
|
end
|
63
64
|
|
64
65
|
def send_clear_command(core)
|
65
|
-
send_command 'update',
|
66
|
+
send_command 'update', params: { :commit => true, 'stream.body' => '<delete><query>*:*</query></delete>' }
|
66
67
|
puts "The '#{core}' core has been successfully cleared"
|
67
68
|
end
|
68
69
|
|
69
70
|
private
|
70
71
|
|
71
72
|
def solr
|
72
|
-
@solr ||= RSolr.connect :
|
73
|
+
@solr ||= RSolr.connect url: url
|
73
74
|
end
|
74
75
|
|
75
76
|
def send_command(href, params)
|
@@ -78,10 +79,9 @@ class Solr
|
|
78
79
|
STDERR.puts "!!! ensure solr started on '#{url}' !!!"
|
79
80
|
puts "Couldn't connect to '#{url}'"
|
80
81
|
exit
|
81
|
-
rescue RSolr::Error::Http
|
82
|
-
STDERR.puts
|
82
|
+
rescue RSolr::Error::Http #=> e
|
83
|
+
STDERR.puts '!!! RSolr error !!!'
|
83
84
|
puts "Could not perform action '#{href}'"
|
84
85
|
exit
|
85
86
|
end
|
86
|
-
|
87
87
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'net/ssh/proxy/command'
|
2
2
|
|
3
3
|
server fetch(:domain),
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
ssh_options: {
|
5
|
+
proxy: Net::SSH::Proxy::Command.new("ssh #{fetch(:gateway)} -W %h:%p")
|
6
|
+
} if fetch(:gateway)
|
@@ -4,15 +4,15 @@ module Openteam
|
|
4
4
|
module Capistrano
|
5
5
|
class Tag
|
6
6
|
def create
|
7
|
-
|
8
|
-
|
7
|
+
`git tag -a '#{tag_name}' -m 'Deployed by #{fetch(:user)}' origin/#{fetch(:branch)}`
|
8
|
+
`git push origin '#{tag_name}'`
|
9
9
|
end
|
10
10
|
|
11
11
|
def clean
|
12
12
|
get_tags
|
13
13
|
return if rotten_tags.empty?
|
14
|
-
|
15
|
-
|
14
|
+
`git tag -d #{rotten_tags.join(' ')}`
|
15
|
+
`git push origin #{rotten_tags.map { |t| ":refs/tags/#{t}" }.join(' ')}`
|
16
16
|
end
|
17
17
|
|
18
18
|
private
|
@@ -22,19 +22,19 @@ module Openteam
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def formatted_local_time
|
25
|
-
Time.now.strftime(
|
25
|
+
Time.now.strftime('%Y.%m.%d-%H%M')
|
26
26
|
end
|
27
27
|
|
28
28
|
def get_tags
|
29
|
-
|
29
|
+
`git fetch --tags`
|
30
30
|
end
|
31
31
|
|
32
32
|
def stage_tags
|
33
|
-
@stage_tags ||=
|
33
|
+
@stage_tags ||= `git tag -l #{fetch(:branch)}*`.chomp.split("\n").grep(/^#{fetch(:stage)}-/)
|
34
34
|
end
|
35
35
|
|
36
36
|
def rotten_tags
|
37
|
-
stage_tags[0..-fetch(:keep_releases)-1]
|
37
|
+
stage_tags[0..-fetch(:keep_releases) - 1]
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -18,7 +18,7 @@ begin
|
|
18
18
|
end
|
19
19
|
|
20
20
|
namespace :sunspot do
|
21
|
-
desc
|
21
|
+
desc 'Synchronize your local solr using remote solr data'
|
22
22
|
task :pull do
|
23
23
|
puts
|
24
24
|
remote_solr_url = ''
|
@@ -28,7 +28,7 @@ begin
|
|
28
28
|
remote_solr_url = capture(:ruby, " -ryaml -e \"#{ruby_expression}\"")
|
29
29
|
end
|
30
30
|
|
31
|
-
Solr::Replicator.new(:
|
31
|
+
Solr::Replicator.new(remote: remote_solr_url, local: development_solr_url).replicate
|
32
32
|
end
|
33
33
|
|
34
34
|
desc 'Reload development core'
|
@@ -1,14 +1,13 @@
|
|
1
1
|
namespace :deploy do
|
2
2
|
namespace :tagging do
|
3
|
-
desc
|
3
|
+
desc 'Create release tag in local and origin repo'
|
4
4
|
task :create do
|
5
5
|
Openteam::Capistrano::Tag.new.create
|
6
6
|
end
|
7
7
|
|
8
|
-
desc
|
8
|
+
desc 'Remove release tag from local and origin repo'
|
9
9
|
task :clean do
|
10
10
|
Openteam::Capistrano::Tag.new.clean
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
14
|
-
|
@@ -1,2 +1,2 @@
|
|
1
|
-
tasks_dir = File.expand_path(
|
1
|
+
tasks_dir = File.expand_path('../tasks', __FILE__)
|
2
2
|
Dir.glob("#{tasks_dir}/*.rake").each { |r| load r }
|
@@ -1,2 +1,2 @@
|
|
1
1
|
set :rails_env, :production
|
2
|
-
set :unicorn_config_path, File.join(current_path,
|
2
|
+
set :unicorn_config_path, File.join(current_path, 'config/unicorn.rb')
|
data/openteam-capistrano.gemspec
CHANGED
@@ -4,25 +4,26 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
6
|
gem.name = 'openteam-capistrano'
|
7
|
-
gem.version = '1.0.
|
8
|
-
gem.authors = [
|
9
|
-
gem.email = [
|
10
|
-
gem.description =
|
11
|
-
gem.summary =
|
12
|
-
gem.homepage =
|
7
|
+
gem.version = '1.0.15'
|
8
|
+
gem.authors = ['OpenTeam developers']
|
9
|
+
gem.email = ['developers@openteam.ru']
|
10
|
+
gem.description = 'OpenTeam common capistrano3 recipe'
|
11
|
+
gem.summary = 'Adds common use case tasks (import db, reload unicorn, send airbrake notice, tag deploy)'
|
12
|
+
gem.homepage = ''
|
13
13
|
|
14
|
-
gem.files = `git ls-files`.split(
|
15
|
-
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
14
|
+
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
15
|
+
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
16
16
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
17
|
-
gem.require_paths = [
|
17
|
+
gem.require_paths = ['lib']
|
18
18
|
|
19
|
-
gem.add_dependency 'airbrake', '~> 3.1.16'
|
20
|
-
gem.add_dependency 'capistrano',
|
21
|
-
gem.add_dependency 'capistrano-db-tasks', '~> 0.3'
|
22
|
-
gem.add_dependency 'capistrano-rails', '~> 1.1'
|
19
|
+
gem.add_dependency 'airbrake' # , '~> 3.1.16'
|
20
|
+
gem.add_dependency 'capistrano', '~> 3.5.0'
|
21
|
+
gem.add_dependency 'capistrano-db-tasks' # , '~> 0.3'
|
22
|
+
gem.add_dependency 'capistrano-rails' # , '~> 1.1'
|
23
23
|
gem.add_dependency 'capistrano-rvm'
|
24
24
|
gem.add_dependency 'capistrano-sidekiq'
|
25
25
|
gem.add_dependency 'capistrano3-unicorn'
|
26
|
+
gem.add_dependency 'slackistrano', '3.1.0.beta'
|
26
27
|
|
27
28
|
gem.add_development_dependency 'rake'
|
28
29
|
end
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openteam-capistrano
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenTeam developers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: airbrake
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: capistrano
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 3.5.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 3.5.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: capistrano-db-tasks
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0
|
47
|
+
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: capistrano-rails
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: capistrano-rvm
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: slackistrano
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 3.1.0.beta
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 3.1.0.beta
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rake
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -177,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
191
|
version: '0'
|
178
192
|
requirements: []
|
179
193
|
rubyforge_project:
|
180
|
-
rubygems_version: 2.4.
|
194
|
+
rubygems_version: 2.4.8
|
181
195
|
signing_key:
|
182
196
|
specification_version: 4
|
183
197
|
summary: Adds common use case tasks (import db, reload unicorn, send airbrake notice,
|