coalla-deploy 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZjliYzkxNThjM2JlNDBmYTc3MjgwYjU3MmRlYTI1OWQwNjYxOWEzZA==
5
+ data.tar.gz: !binary |-
6
+ Y2Y5ZTg0NGEzMDAyN2QyMDNjYWFiYTU3YTliN2IyMWIxOGRmODM3Mg==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ M2JlOGQyOWFkZTIzOTNmZDFjMTc5NGVlNDg2MjgzZDBlYTU4ZmYyYzM0Njgz
10
+ YzEzZjQ5YjM5OTI4OWE4ZTg2ODc5NzRhNTA2NmRmOTdjOTYzOTU4YTZjNjA1
11
+ NTc3ZDkzMjNiMzQ5MGI2OTY5ZWZjZGQ2YTUxYjg0YjdjNWEyZmM=
12
+ data.tar.gz: !binary |-
13
+ M2JhZDQ1N2FiNzEzNWMwYzY5MGM5NjhiNmZiYThlZjdkODFlM2MwNDZjZmFk
14
+ YWE1YmU5ZDg2MWQ4NjRlZTExNDY3NThhNWRhNzcyZWJmYmFhZDU3NzE3NGE4
15
+ ZjgwMmQzMTY5NjRiZGY3OTJlMWM4YjRhOTRmNjY1YzM0YTA3OTg=
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ .idea
2
+ .bundle
3
+ db/*.sqlite3
4
+ log/*.log
5
+ tmp/
6
+ public/uploads/
7
+ Gemfile.lock
8
+ *.swp
9
+ .DS_Store
10
+ *.gem
11
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in coalla-deploy.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,31 @@
1
+ require "bundler/gem_tasks"
2
+ require 'net/ssh'
3
+ require 'net/scp'
4
+ require 'fileutils'
5
+
6
+ task 'build:gem' do
7
+ host = '5.9.118.111'
8
+ user = 'deployer'
9
+ Net::SSH.start(host, user, port: 60000) do |ssh|
10
+ base_dir = "/home/#{user}/temp/coalla-gems"
11
+ project_name = 'coalla-deploy'
12
+ git_url = "http://git.coalla.ru/#{project_name}.git"
13
+ gems_dir = '/var/www/virtual-hosts/gems.coalla.ru'
14
+ output = ssh.exec! <<-SH
15
+ mkdir --parents #{base_dir}
16
+ cd #{base_dir}
17
+ git clone #{git_url}
18
+ cd #{project_name}
19
+ source /etc/profile.d/rvm.sh
20
+ rvm 1.9.3
21
+ gem build coalla-deploy.gemspec
22
+ cp -rf *.gem #{gems_dir}/gems
23
+ cd #{gems_dir}
24
+ source /etc/profile.d/rvm.sh
25
+ rvm 1.9.3
26
+ gem generate_index
27
+ rm -R #{base_dir}
28
+ SH
29
+ puts output
30
+ end
31
+ end
@@ -0,0 +1,15 @@
1
+ -# counter_id - ID счетчика в системе Yandex
2
+ - if Rails.env.production?
3
+ %div{style: 'display:none;'}
4
+ :javascript
5
+ (function(w, c) {
6
+ (w[c] = w[c] || []).push(function() {
7
+ try {
8
+ w.yaCounter#{counter_id} = new Ya.Metrika({id:#{counter_id}, enableAll: true, webvisor:true});
9
+ } catch(e) { }
10
+ });
11
+ })(window, 'yandex_metrika_callbacks');
12
+ %script{src: '//mc.yandex.ru/metrika/watch.js', type: 'text/javascript', defer: 'defer'}
13
+ %noscript
14
+ %div
15
+ %img{src: "//mc.yandex.ru/watch/#{counter_id}", style: 'position:absolute; left:-9999px;', alt: ''}
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "coalla-deploy/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "coalla-deploy"
7
+ s.version = Coalla::Deploy::VERSION
8
+ s.authors = ["coalla"]
9
+ s.email = ["dev@coalla.ru"]
10
+ s.homepage = "http://coalla.ru"
11
+ s.summary = "Coalla deploy gem"
12
+ s.description = "Coalla deploy gem"
13
+
14
+ s.rubyforge_project = "coalla-deploy"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency 'railties', '~> 4.0'
22
+ s.add_dependency 'thor', '~> 0.18'
23
+ s.add_development_dependency 'bundler', '~> 1.3.5'
24
+ s.add_development_dependency 'rails', '~> 4.0'
25
+ s.add_development_dependency 'net-ssh', '~> 2.7'
26
+ s.add_development_dependency 'net-scp', '~> 1.1'
27
+ end
@@ -0,0 +1,10 @@
1
+ module Coalla
2
+
3
+ module Rails
4
+
5
+ class Engine < ::Rails::Engine
6
+
7
+ end
8
+ end
9
+ end
10
+
@@ -0,0 +1,56 @@
1
+ #encoding: utf-8
2
+ module Coalla
3
+
4
+ class Unicorn
5
+
6
+ def self.init(configurator, options = {})
7
+ configurator.instance_eval do
8
+ deploy_to = options.delete(:deploy_to)
9
+ rails_root = "#{deploy_to}/current"
10
+ pid_file = "#{deploy_to}/shared/pids/unicorn.pid"
11
+ socket_file= "#{deploy_to}/shared/unicorn.sock"
12
+ log_file = "#{rails_root}/log/unicorn.log"
13
+ err_log = "#{rails_root}/log/unicorn_error.log"
14
+ old_pid = pid_file + '.oldbin'
15
+
16
+ working_directory rails_root
17
+
18
+ timeout options.delete(:timeout) || 30
19
+ worker_processes options.delete(:worker_processes) || 1
20
+ listen socket_file, :backlog => 1024
21
+ pid pid_file
22
+ stderr_path err_log
23
+ stdout_path log_file
24
+
25
+ preload_app true # Мастер процесс загружает приложение, перед тем, как плодить рабочие процессы.
26
+
27
+ GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=)
28
+
29
+ before_exec do |server|
30
+ ENV["BUNDLE_GEMFILE"] = "#{rails_root}/Gemfile"
31
+ end
32
+
33
+ before_fork do |server, worker|
34
+ # Перед тем, как создать первый рабочий процесс, мастер отсоединяется от базы.
35
+ defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
36
+
37
+ # Ниже идет магия, связанная с 0 downtime deploy.
38
+ if File.exists?(old_pid) && server.pid != old_pid
39
+ begin
40
+ Process.kill("QUIT", File.read(old_pid).to_i)
41
+ rescue Errno::ENOENT, Errno::ESRCH
42
+ # someone else did our job for us
43
+ end
44
+ end
45
+ end
46
+
47
+ after_fork do |server, worker|
48
+ # После того как рабочий процесс создан, он устанавливает соединение с базой.
49
+ defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
50
+ end
51
+
52
+ end
53
+ end
54
+ end
55
+
56
+ end
@@ -0,0 +1,5 @@
1
+ module Coalla
2
+ module Deploy
3
+ VERSION = '0.1.10'
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ require "coalla-deploy/version"
2
+ require "coalla-deploy/engine"
3
+
@@ -0,0 +1,30 @@
1
+ require 'rails'
2
+
3
+ module Coalla
4
+
5
+ module Deploy
6
+
7
+ module Generators
8
+
9
+ class InitGenerator < ::Rails::Generators::Base
10
+
11
+ source_root File.expand_path('../../../../../../templates', __FILE__)
12
+
13
+ def copy_build_scripts
14
+ copy_file 'build-production.sh', 'build-production.sh'
15
+ copy_file 'build-staging.sh', 'build-staging.sh'
16
+ copy_file 'Capfile', 'Capfile'
17
+ copy_file 'Gemfile.linux', 'Gemfile.linux'
18
+ copy_file 'unicorn.rb', 'config/unicorn.rb'
19
+ copy_file 'deploy.rb', 'config/deploy.rb'
20
+ copy_file 'assets.rake', 'lib/tasks/assets.rake'
21
+ copy_file 'staging.rb', 'config/deploy/staging.rb'
22
+ copy_file 'production.rb', 'config/deploy/production.rb'
23
+ copy_file 'http_auth.rb', 'config/initializers/http_auth.rb'
24
+ end
25
+ end
26
+
27
+ end
28
+ end
29
+
30
+ end
data/server_setup.rb ADDED
@@ -0,0 +1,19 @@
1
+ package :setup do
2
+ apt 'python-software-properties'
3
+ end
4
+
5
+ deployment do
6
+
7
+ # mechanism for deployment
8
+ delivery :capistrano do
9
+ recipes 'deploy'
10
+ end
11
+
12
+ # source based package installer defaults
13
+ source do
14
+ prefix '/usr/local' # where all source packages will be configured to install
15
+ archives '/usr/local/sources' # where all source packages will be downloaded to
16
+ builds '/usr/local/build' # where all source packages will be built
17
+ end
18
+
19
+ end
data/setup-server.sh ADDED
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ source /etc/profile.d/rvm.sh
3
+ rvm 1.9.3
4
+ sprinkle -c -v -t -s server_setup.rb
data/templates/Capfile ADDED
@@ -0,0 +1,4 @@
1
+ load 'deploy' if respond_to?(:namespace) # cap2 differentiator
2
+ Dir['vendor/gems/*/recipes/*.rb','vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
3
+
4
+ load 'config/deploy' # remove this line to skip loading any of the default tasks
@@ -0,0 +1,4 @@
1
+ #do not remove this comment!
2
+ group :production, :staging do
3
+ gem 'unicorn', '4.8.3'
4
+ end
@@ -0,0 +1,16 @@
1
+ namespace :assets do
2
+ desc 'copy assets without digest in their names, use it after assets:precompile'
3
+ task non_digested: :environment do
4
+ assets = Dir.glob(File.join(Rails.root, 'public/assets/**/*'))
5
+ regex = /(-{1}[a-z0-9]{32}*\.{1}){1}/
6
+ assets.each do |file|
7
+ next if File.directory?(file) || file !~ regex || File.basename(file).starts_with?('manifest')
8
+
9
+ source = file.split('/')
10
+ source.push(source.pop.gsub(regex, '.'))
11
+
12
+ non_digested = File.join(source)
13
+ FileUtils.cp(file, non_digested)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ source "/usr/local/rvm/scripts/rvm"
3
+ rvm use 1.9.3
4
+ cap production deploy rails_env=production
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ source "/usr/local/rvm/scripts/rvm"
3
+ rvm use 1.9.3
4
+ cap staging deploy RAILS_ENV=staging
@@ -0,0 +1,132 @@
1
+ # Rails assets pipeline
2
+ load 'deploy/assets'
3
+
4
+ set :stages, %w(staging production)
5
+ require 'capistrano/ext/multistage'
6
+
7
+ set :repository, 'http://git.coalla.ru/coalla.git'
8
+ ssh_options[:port] = 60000
9
+ set :user, 'deployer'
10
+ set(:deploy_to) { "/var/www/virtual-hosts/#{application}" }
11
+ set(:unicorn_service) { "/etc/init.d/unicorn-#{application}" }
12
+ set :use_whenever, File.exists?(File.join(File.expand_path('..', File.dirname(__FILE__)), 'config', 'schedule.rb'))
13
+ set :use_sphinx, File.exists?(File.join(File.expand_path('..', File.dirname(__FILE__)), 'config', 'thinking_sphinx.yml'))
14
+ set :use_delayed_job, File.exists?(File.join(File.expand_path('..', File.dirname(__FILE__)), 'bin', 'delayed_job'))
15
+
16
+ # RVM configuration
17
+ require 'rvm/capistrano'
18
+ set :rvm_type, :system
19
+ set :rvm_ruby_string, '2.0.0'
20
+
21
+ default_run_options[:pty] = true
22
+ set :scm, :git
23
+ set :deploy_via, :copy
24
+ set :keep_releases, 3
25
+
26
+ desc 'Make symlink'
27
+ task :make_symlink, :roles => :app do
28
+ run "ln -nfs #{shared_path}/system/uploads #{release_path}/public/uploads"
29
+ end
30
+
31
+ desc 'Make a symlink to robots.txt according to rails_env'
32
+ task :symlink_robots_txt, :roles => :app do
33
+ run "ln -nfs #{release_path}/config/deploy/#{rails_env}/robots.txt #{release_path}/public/robots.txt"
34
+ end
35
+
36
+ after 'deploy:create_symlink', :make_symlink
37
+
38
+ # Removed 'deployment' flag, cause it needs Gemfile.lock exists in repository
39
+ # This can't be done due to Windows problems with nokogiri, ImageMagick etc
40
+ set :bundle_flags, '--quiet'
41
+ require 'bundler/capistrano'
42
+
43
+ # Unicorn recipe
44
+ namespace :deploy do
45
+ task :restart, roles: :app, except: {no_release: true} do
46
+ run "sudo #{unicorn_service} upgrade"
47
+ end
48
+
49
+ task :sudo_migrate do
50
+ run("cd #{deploy_to}/current && rvmsudo -u www-data bundle exec rake db:migrate RAILS_ENV=#{rails_env}")
51
+ end
52
+ end
53
+
54
+ # Sitemap copy
55
+ after 'deploy:update_code', 'deploy:copy_old_sitemap'
56
+ after 'deploy:update_code', :symlink_robots_txt
57
+ namespace :deploy do
58
+ task :copy_old_sitemap do
59
+ run "if [ -e #{previous_release}/public/sitemap.xml.gz ]; then cp #{previous_release}/public/sitemap* #{current_release}/public/; fi"
60
+ end
61
+ end
62
+
63
+ # Backup database
64
+ require 'yaml'
65
+ task :backup_database, :roles => :db do
66
+ if previous_release
67
+ db = YAML::load(ERB.new(IO.read(File.join(File.expand_path('..', File.dirname(__FILE__)), 'config', 'database.yml'))).result)["#{rails_env}"]
68
+ run "export PGPASSWORD='#{db['password']}' && pg_dump --username=#{db['username']} --format=custom --file=#{File.join(previous_release, 'db.backup')} #{db['database']} --host=#{db['host']}"
69
+ end
70
+ end
71
+
72
+ task :update_gemfile, :roles => :app do
73
+ run "cat #{current_release}/Gemfile.linux >> #{current_release}/Gemfile"
74
+ end
75
+
76
+ set :use_sudo, false
77
+ after :deploy, 'deploy:cleanup'
78
+ before 'deploy:restart', 'deploy:sudo_migrate'
79
+ after 'deploy:update_code', :backup_database
80
+ before 'bundle:install', :update_gemfile
81
+
82
+ after 'deploy:assets:precompile' do
83
+ run "cd #{release_path} && bundle exec rake tmp:cache:clear RAILS_ENV=#{rails_env}"
84
+ run "cd #{release_path} && bundle exec rake assets:non_digested RAILS_ENV=#{rails_env}"
85
+ end
86
+
87
+ if use_whenever
88
+ set :whenever_command, "rvm use #{rvm_ruby_string} && bundle exec whenever"
89
+ set :whenever_environment, defer { stage }
90
+ require 'whenever/capistrano'
91
+ end
92
+
93
+ if use_sphinx
94
+
95
+ require 'thinking_sphinx/capistrano'
96
+
97
+ # Sphinx Recipes
98
+ namespace :thinking_sphinx do
99
+
100
+ def rake(*tasks)
101
+ rake = fetch(:rake, 'rake')
102
+ tasks.each do |t|
103
+ run "if [ -d #{release_path} ]; then cd #{release_path}; else cd #{current_path}; fi; rvmsudo -u www-data #{rake} RAILS_ENV=#{rails_env} #{t}"
104
+ end
105
+ end
106
+
107
+ desc 'Symlink Sphinx indexes'
108
+ task :symlink_indexes, roles: [:app] do
109
+ run "ln -nfs #{shared_path}/db/sphinx #{release_path}/db/sphinx"
110
+ end
111
+
112
+ end
113
+
114
+ # Sphinx Steps
115
+ after 'deploy:sudo_migrate', 'thinking_sphinx:stop'
116
+ after 'deploy:sudo_migrate', 'thinking_sphinx:index'
117
+ after 'deploy:sudo_migrate', 'thinking_sphinx:start'
118
+ after 'deploy:finalize_update', 'thinking_sphinx:symlink_indexes'
119
+
120
+ end
121
+
122
+ # Delayed job
123
+ if use_delayed_job
124
+
125
+ require 'delayed/recipes'
126
+
127
+ set(:delayed_job_command) { "rvmsudo -u www-data RAILS_ENV=#{fetch(:rails_env)} bundle exec bin/delayed_job" }
128
+ after 'deploy:stop', 'delayed_job:stop'
129
+ after 'deploy:start', 'delayed_job:start'
130
+ after 'deploy:restart', 'delayed_job:restart'
131
+
132
+ end
@@ -0,0 +1,18 @@
1
+ module Coalla
2
+ module HttpAuth
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ before_action do
7
+ if ::Rails.env.staging?
8
+ authenticate_or_request_with_http_basic do |username, password|
9
+ username == 'demo' && password == '1qaz3edc'
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ end
16
+ end
17
+
18
+ ApplicationController.send(:include, Coalla::HttpAuth)
@@ -0,0 +1,4 @@
1
+ server '5.9.118.111', :app, :web, :db, primary: true
2
+ set :application, 'coalla.ru'
3
+ set :rails_env, :production
4
+ set :branch, 'master'
@@ -0,0 +1,4 @@
1
+ server '5.9.118.111', :app, :web, :db, primary: true
2
+ set :application, 'test.coalla.ru'
3
+ set :rails_env, :staging
4
+ set :branch, 'development'
@@ -0,0 +1,5 @@
1
+ require "coalla-deploy/unicorn"
2
+ application_name = (ENV['RAILS_ENV'] == 'production') ? 'coalla.ru' : 'test.coalla.ru'
3
+ Coalla::Unicorn.init(self, deploy_to: "/var/www/virtual-hosts/#{application_name}",
4
+ timeout: 30,
5
+ worker_processes: 1)
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: coalla-deploy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.10
5
+ platform: ruby
6
+ authors:
7
+ - coalla
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: railties
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '0.18'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '0.18'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 1.3.5
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.3.5
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '4.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: net-ssh
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '2.7'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '2.7'
83
+ - !ruby/object:Gem::Dependency
84
+ name: net-scp
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '1.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '1.1'
97
+ description: Coalla deploy gem
98
+ email:
99
+ - dev@coalla.ru
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - .gitignore
105
+ - Gemfile
106
+ - Rakefile
107
+ - app/views/metric/_yandex_metrica.html.haml
108
+ - coalla-deploy.gemspec
109
+ - lib/coalla-deploy.rb
110
+ - lib/coalla-deploy/engine.rb
111
+ - lib/coalla-deploy/unicorn.rb
112
+ - lib/coalla-deploy/version.rb
113
+ - lib/generators/coalla/deploy/init/init_generator.rb
114
+ - server_setup.rb
115
+ - setup-server.sh
116
+ - templates/Capfile
117
+ - templates/Gemfile.linux
118
+ - templates/assets.rake
119
+ - templates/build-production.sh
120
+ - templates/build-staging.sh
121
+ - templates/deploy.rb
122
+ - templates/http_auth.rb
123
+ - templates/production.rb
124
+ - templates/staging.rb
125
+ - templates/unicorn.rb
126
+ homepage: http://coalla.ru
127
+ licenses: []
128
+ metadata: {}
129
+ post_install_message:
130
+ rdoc_options: []
131
+ require_paths:
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ! '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project: coalla-deploy
145
+ rubygems_version: 2.4.3
146
+ signing_key:
147
+ specification_version: 4
148
+ summary: Coalla deploy gem
149
+ test_files: []