capistrano-sumo 1.1.0 → 1.1.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
  SHA1:
3
- metadata.gz: 0b15ee4713f41f06b6adcc2680e500e2d50aa163
4
- data.tar.gz: 3156f2070432d23a1316106b9ec16f6bd8843e48
3
+ metadata.gz: 0bf87dd89c5c2962bf76386a18b2fba63043c371
4
+ data.tar.gz: 272acb6133c86bb063d5aed37e2fcf07afd13ea5
5
5
  SHA512:
6
- metadata.gz: 2d45d9bb7c080b1bce2df4e8a7add1a7437ae63a2ba442c720a911e53ecd65e6cf3c73ea109f80adc11a2dd16b409a913427f923e4fd415f4d8650b819483364
7
- data.tar.gz: 4be0ac8b676c734c7dc453728ce5bdc2530d3fb46c3c81f6a37da119b39dcda3d82d28d27dd63d42107e9b1b6fe9c4b6d5fce8b48b54f96a98fbe1c9ff6de709
6
+ metadata.gz: c75aa34cf39b0a38691215bbdabc1e0e178ae1dfc77fb41b488c11f99c1a094bed72927a0adff9b9144c9940d5505992bc655dd123dd7df2684f4095f4d4e42b
7
+ data.tar.gz: e697d889c7c83186d99a6c4ef6e950eae3f08e3f6ba95196cc93e285ded2314f25585e317e58673d8fbac2cca94d80c3a2cb5668d42d9bac26e9d1aa6f080cfe
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
- source "https://rubygems.org"
2
+ source 'https://rubygems.org'
3
3
 
4
4
  group :development do
5
- gem 'rake', '~> 12.0'
6
- gem 'rspec', '~> 3.0'
5
+ gem 'rake', '~> 12.0'
6
+ gem 'rspec', '~> 3.0'
7
7
  end
data/README.md CHANGED
@@ -22,13 +22,130 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- TODO: Write usage instructions here
25
+ # Capistrano::Forkcms
26
26
 
27
- ## Development
27
+ Fork CMS specific Capistrano tasks
28
28
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
29
+ Capistrano ForkCMS - Easy deployment of ForkCMS 5+ apps with Ruby over SSH.
30
30
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
31
+
32
+ ## Installation
33
+
34
+ Add this line to your application's Gemfile:
35
+
36
+ ```ruby
37
+ gem 'capistrano-forkcms'
38
+ ```
39
+
40
+ And then execute:
41
+
42
+ $ bundle
43
+
44
+
45
+ ## Usage
46
+
47
+ Require the module in your Capfile:
48
+
49
+ require "capistrano/sumo"
50
+
51
+ The plugin comes with some tasks:
52
+
53
+ * `sumo:db:create`, which will create the database if it doesn't exists yet, works only on staging.
54
+ * `sumo:db:get`, which will replace the local database with the remote database.
55
+ * `sumo:db:info`, which will get info about the database, works only on staging.
56
+ * `sumo:db:put`, which will replace the remote database with the local database.
57
+ * `sumo:files:get`, which will downloads the remote files to the local instance.
58
+ * `sumo:files:put`, which will upload the local files to the remote server.
59
+ * `sumo:notifications:deploy`, which will notify our webhooks on a deploy.
60
+ * `sumo:redirect:enable`, which will enable a redirect page, all traffic will be redirected to this page.
61
+
62
+ But you won't need any of them as everything is wired automagically if you follow the steps below
63
+
64
+
65
+ ## Configuration
66
+
67
+ Configuration options:
68
+
69
+ ...
70
+
71
+ ## How to use with a fresh Fork install
72
+
73
+ 1. Create a Capfile with the content below:
74
+
75
+ ```
76
+ set :deploy_config_path, 'app/config/capistrano/deploy.rb'
77
+ set :stage_config_path, 'app/config/capistrano/stages'
78
+
79
+ require 'capistrano/setup'
80
+ require 'capistrano/deploy'
81
+ require 'capistrano/scm/git'
82
+ install_plugin Capistrano::SCM::Git
83
+ require 'capistrano/forkcms'
84
+ require 'capistrano/sumo'
85
+ require 'capistrano/deploytags'
86
+
87
+ set :format_options, log_file: 'app/logs/capistrano.log'
88
+
89
+ Dir.glob('app/config/capistrano/tasks/*.rake').each { |r| import r }
90
+ ```
91
+
92
+ 2. Create a file called `app/config/capistrano/deploy.rb`, with the content below:
93
+
94
+ ```
95
+ set :client, "$the-clients-name"
96
+ set :project, "$the-project-name"
97
+ set :repo_url, "$the-repo-url"
98
+ set :production_url, "$the-production-url"
99
+
100
+ ### DO NOT EDIT BELOW ###
101
+ set :application, "#{fetch :project}"
102
+
103
+ set :deploytag_utc, false
104
+ set :deploytag_time_format, "%Y%m%d-%H%M%S"
105
+
106
+ set :files_dir, %w(src/Frontend/Files)
107
+ ```
108
+
109
+ 3. Create a file called `app/config/capistrano/stages/production.rb`, with the content below:
110
+
111
+ ```
112
+ server "php71-001.sumohosting.be", user: "$production-user", roles: %w{app db web}
113
+
114
+ set :document_root, "/home/$production-user/domains/$domain/public_html"
115
+ set :deploy_to, "/home/$production-user/apps/#{fetch :project}"
116
+
117
+ set :opcache_reset_strategy, "file"
118
+ set :opcache_reset_base_url, "#{fetch :production_url}"
119
+
120
+ ### DO NOT EDIT BELOW ###
121
+ set :keep_releases, 3
122
+ set :php_bin, "php"
123
+
124
+ SSHKit.config.command_map[:composer] = "#{fetch :php_bin} #{shared_path.join("composer.phar")}"
125
+ SSHKit.config.command_map[:php] = fetch(:php_bin)
126
+ ```
127
+
128
+ 4. Create a file called `app/config/capistrano/stages/staging.rb`, with the content below:
129
+
130
+ ```
131
+
132
+ ### DO NOT EDIT BELOW ###
133
+ set :branch, "staging"
134
+ set :document_root, "/home/sites/php71/#{fetch :client}/#{fetch :project}"
135
+ set :deploy_to, "/home/sites/apps/#{fetch :client}/#{fetch :project}"
136
+ set :keep_releases, 2
137
+ set :url, "http://#{fetch :project}.#{fetch :client}.php71.sumocoders.eu"
138
+ set :fcgi_connection_string, "/var/run/php_71_fpm_sites.sock"
139
+ set :php_bin, "php7.1"
140
+ set :php_bin_custom_path, fetch(:php_bin)
141
+ set :opcache_reset_strategy, "fcgi"
142
+ set :opcache_reset_fcgi_connection_string, "/var/run/php_71_fpm_sites.sock"
143
+
144
+ server "dev02.sumocoders.eu", user: "sites", roles: %w{app db web}
145
+
146
+ SSHKit.config.command_map[:composer] = "#{fetch :php_bin} #{shared_path.join("composer.phar")}"
147
+ SSHKit.config.command_map[:php] = fetch(:php_bin)
148
+ ```
32
149
 
33
150
  ## Contributing
34
151
 
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require 'bundler/gem_tasks'
3
3
  require 'rspec/core/rake_task'
4
4
 
5
5
  RSpec::Core::RakeTask.new(:test) do |spec|
6
- spec.pattern = "spec/**/*_spec.rb"
6
+ spec.pattern = 'spec/**/*_spec.rb'
7
7
  end
8
8
 
9
9
  task :default => :test
@@ -4,22 +4,22 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require "capistrano/sumo/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "capistrano-sumo"
8
- spec.version = Capistrano::Sumo::VERSION
9
- spec.authors = ["Tijs Verkoyen"]
10
- spec.email = ["tijs@verkoyen.eu"]
7
+ spec.name = 'capistrano-sumo'
8
+ spec.version = Capistrano::Sumo::VERSION
9
+ spec.authors = ['Tijs Verkoyen']
10
+ spec.email = ['capistrano-sumo@verkoyen.eu']
11
11
 
12
- spec.summary = %q{Sumo specific task for Capistrano 3.x.}
13
- spec.description = %q{Sumo specific task for Capistrano 3.x.}
14
- spec.homepage = "https://github.com/tijsverkoyen/capistrano-sumo"
15
- spec.license = "MIT"
12
+ spec.summary = %q{SumoCoders specific task for Capistrano 3.x.}
13
+ spec.description = %q{SumoCoders specific task for Capistrano 3.x.}
14
+ spec.homepage = 'https://github.com/tijsverkoyen/capistrano-sumo'
15
+ spec.license = 'MIT'
16
16
 
17
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
18
  f.match(%r{^(test|spec|features)/})
19
19
  end
20
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
21
21
 
22
- spec.add_development_dependency "bundler", "~> 1.15"
23
- spec.add_development_dependency "rake", "~> 10.0"
24
- spec.add_development_dependency "rspec", "~> 3.0"
25
- end
22
+ spec.add_development_dependency 'bundler', '~> 1.15'
23
+ spec.add_development_dependency 'rake', '~> 12.0'
24
+ spec.add_development_dependency 'rspec', '~> 3.6'
25
+ end
@@ -1,6 +1,6 @@
1
- # Make sure the composer executable is installed
2
1
  namespace :deploy do
3
- after :finished, "sumo:notifications:deploy"
2
+ # notify our bot about the deploy
3
+ after :finished, 'sumo:notifications:deploy'
4
4
  end
5
5
 
6
6
  # Load the tasks
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Sumo
3
- VERSION = '1.1.0'
3
+ VERSION = '1.1.1'
4
4
  end
5
5
  end
@@ -1,9 +1,9 @@
1
1
  namespace :sumo do
2
2
  namespace :db do
3
- desc "Create the database if it doesn't exists yet"
3
+ desc 'Create the database if it doesn\'t exists yet'
4
4
  task :create do
5
- if fetch(:stage).to_s != "staging"
6
- warn Airbrussh::Colors.red('✘') + " This task will only work on staging"
5
+ if fetch(:stage).to_s != 'staging'
6
+ warn Airbrussh::Colors.red('✘') + ' This task will only work on staging.'
7
7
  exit 1
8
8
  end
9
9
 
@@ -12,10 +12,10 @@ namespace :sumo do
12
12
  end
13
13
  end
14
14
 
15
- desc "Get info about the database"
15
+ desc 'Get info about the database'
16
16
  task :info do
17
- if fetch(:stage).to_s != "staging"
18
- warn Airbrussh::Colors.red('✘') + " This task will only work on staging"
17
+ if fetch(:stage).to_s != 'staging'
18
+ warn Airbrussh::Colors.red('✘') + ' This task will only work on staging.'
19
19
  exit 1
20
20
  end
21
21
 
@@ -24,19 +24,31 @@ namespace :sumo do
24
24
  end
25
25
  end
26
26
 
27
- desc "Replace the remote database with the local database"
27
+ desc 'Replace the remote database with the local database'
28
28
  task :put do
29
29
  on roles(:db) do
30
- execute :mysqldump, "--lock-tables=false --set-charset #{remote_db_options} #{extract_from_remote_parameters('database.name')} > #{shared_path}/backup_#{Time.now.strftime('%Y%m%d%H%M')}.sql"
30
+ execute :mysqldump,
31
+ '--lock-tables=false',
32
+ '--set-charset',
33
+ remote_db_options,
34
+ extract_from_remote_parameters('database.name'),
35
+ "> #{shared_path}/backup_#{Time.now.strftime('%Y%m%d%H%M')}.sql"
31
36
  end
32
37
 
33
38
  run_locally do
34
- execute :mysqldump, "--lock-tables=false --set-charset #{extract_from_local_parameters('database.name')} > ./db_upload.tmp.sql"
39
+ execute :mysqldump,
40
+ '--lock-tables=false',
41
+ '--set-charset',
42
+ extract_from_local_parameters('database.name'),
43
+ '> ./db_upload.tmp.sql'
35
44
  end
36
45
 
37
46
  on roles(:db) do
38
47
  upload! File.open('./db_upload.tmp.sql'), "#{shared_path}/db_upload.tmp.sql"
39
- execute :mysql, "#{remote_db_options} #{extract_from_remote_parameters('database.name')} < #{shared_path}/db_upload.tmp.sql"
48
+ execute :mysql,
49
+ remote_db_options,
50
+ extract_from_remote_parameters('database.name'),
51
+ "< #{shared_path}/db_upload.tmp.sql"
40
52
  execute :rm, "#{shared_path}/db_upload.tmp.sql"
41
53
  end
42
54
 
@@ -45,15 +57,22 @@ namespace :sumo do
45
57
  end
46
58
  end
47
59
 
48
- desc "Replace the local database with the remote database"
60
+ desc 'Replace the local database with the remote database'
49
61
  task :get do
50
62
  on roles(:db) do
51
- execute :mysqldump, "--lock-tables=false --set-charset #{remote_db_options} #{extract_from_remote_parameters('database.name')} > #{shared_path}/db_download.tmp.sql"
63
+ execute :mysqldump,
64
+ '--lock-tables=false',
65
+ '--set-charset',
66
+ remote_db_options,
67
+ extract_from_remote_parameters('database.name'),
68
+ " > #{shared_path}/db_download.tmp.sql"
52
69
  download! "#{shared_path}/db_download.tmp.sql", './db_download.tmp.sql'
53
70
  end
54
71
 
55
72
  run_locally do
56
- execute :mysql, extract_from_local_parameters('database.name'), "< ./db_download.tmp.sql"
73
+ execute :mysql,
74
+ extract_from_local_parameters('database.name'),
75
+ '< ./db_download.tmp.sql'
57
76
  end
58
77
 
59
78
  on roles(:db) do
@@ -69,9 +88,9 @@ namespace :sumo do
69
88
  private
70
89
  def remote_db_options
71
90
  data = {
72
- 'host' => extract_from_remote_parameters("database.host"),
73
- 'user' => extract_from_remote_parameters("database.user"),
74
- 'password' => extract_from_remote_parameters("database.password"),
91
+ 'host' => extract_from_remote_parameters('database.host'),
92
+ 'user' => extract_from_remote_parameters('database.user'),
93
+ 'password' => extract_from_remote_parameters('database.password'),
75
94
  }
76
95
  options = ''
77
96
 
@@ -1,6 +1,6 @@
1
1
  namespace :sumo do
2
2
  namespace :files do
3
- desc "Uploads the local files to the remote server"
3
+ desc 'Uploads the local files to the remote server'
4
4
  task :put do
5
5
  on roles(:web) do
6
6
  fetch(:files_dir).each do |path|
@@ -9,7 +9,7 @@ namespace :sumo do
9
9
  end
10
10
  end
11
11
 
12
- desc "Downloads the remote files to the local instance"
12
+ desc 'Downloads the remote files to the local instance'
13
13
  task :get do
14
14
  on roles(:web) do
15
15
  fetch(:files_dir).each do |path|
@@ -1,15 +1,15 @@
1
1
  namespace :sumo do
2
2
  namespace :notifications do
3
- desc "Notify our webhooks on a deploy"
3
+ desc 'Notify our webhooks on a deploy'
4
4
  task :deploy do
5
5
  on roles(:web) do
6
6
  execute :curl,
7
- "-sS",
7
+ '-sS',
8
8
  "--data local_username=#{ENV["USER"]}",
9
9
  "--data stage=#{fetch(:stage)}",
10
10
  "--data repo=#{fetch(:repo_url)}",
11
11
  "--data revision=#{capture("cat #{current_path}/REVISION")}",
12
- "http://bot.sumo.sumoapp.be:3001/deploy/hook"
12
+ 'http://bot.sumo.sumoapp.be:3001/deploy/hook'
13
13
  end
14
14
  end
15
15
  end
@@ -1,14 +1,14 @@
1
1
  namespace :sumo do
2
2
  namespace :redirect do
3
- desc "Enable a redirect page, all traffic will be redirected to this page."
3
+ desc 'Enable a redirect page, all traffic will be redirected to this page.'
4
4
  task :enable do
5
5
  on roles(:web) do
6
- execute :mkdir, "-p", "#{shared_path}/redirect"
7
- execute :wget, "-qO", "#{shared_path}/redirect/index.php http://static.sumocoders.be/redirect/index.phps"
8
- execute :wget, "-qO", "#{shared_path}/redirect/.htaccess http://static.sumocoders.be/redirect/htaccess"
9
- execute :sed, "-i", "'s|<real-url>|#{fetch :production_url}|' #{shared_path}/redirect/index.php"
10
- execute :rm, "-f", "#{fetch :deploy_to}/current"
11
- execute :ln, "-s", "#{shared_path}/redirect #{fetch :deploy_to}/current"
6
+ execute :mkdir, '-p', "#{shared_path}/redirect"
7
+ execute :wget, '-qO', "#{shared_path}/redirect/index.php http://static.sumocoders.be/redirect/index.phps"
8
+ execute :wget, '-qO', "#{shared_path}/redirect/.htaccess http://static.sumocoders.be/redirect/htaccess"
9
+ execute :sed, '-i', "'s|<real-url>|#{fetch :production_url}|' #{shared_path}/redirect/index.php"
10
+ execute :rm, '-f', "#{fetch :deploy_to}/current"
11
+ execute :ln, '-s', "#{shared_path}/redirect #{fetch :deploy_to}/current"
12
12
  end
13
13
  end
14
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-sumo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tijs Verkoyen
@@ -30,31 +30,31 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '12.0'
34
34
  type: :development
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: '10.0'
40
+ version: '12.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '3.6'
48
48
  type: :development
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: '3.0'
55
- description: Sumo specific task for Capistrano 3.x.
54
+ version: '3.6'
55
+ description: SumoCoders specific task for Capistrano 3.x.
56
56
  email:
57
- - tijs@verkoyen.eu
57
+ - capistrano-sumo@verkoyen.eu
58
58
  executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
@@ -64,7 +64,6 @@ files:
64
64
  - ".travis.yml"
65
65
  - Gemfile
66
66
  - LICENSE.md
67
- - LICENSE.txt
68
67
  - README.md
69
68
  - Rakefile
70
69
  - capistrano-sumo.gemspec
@@ -98,5 +97,5 @@ rubyforge_project:
98
97
  rubygems_version: 2.6.11
99
98
  signing_key:
100
99
  specification_version: 4
101
- summary: Sumo specific task for Capistrano 3.x.
100
+ summary: SumoCoders specific task for Capistrano 3.x.
102
101
  test_files: []
data/LICENSE.txt DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2017 Tijs Verkoyen
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.