capistrano-symfony 1.0.0 → 2.0.0.pre.alfa1

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: 2cb7c4d2d6f470071d32ecccb5586136084bbc39cf28ed72640f33915f291aab
4
- data.tar.gz: 466dd7042e92436e7065bac8d6e3524d098bcce618775901cdc69cde00ce6f95
3
+ metadata.gz: a5eb750c01cbf21ad2515224a33dc05218075fa5704baa5ba4812923c88664ff
4
+ data.tar.gz: b2f05e7f388fc7e7478587ecafe9b3b3338f787a755d2ac835f9667da5d5d55b
5
5
  SHA512:
6
- metadata.gz: aba40c1dc55cecac24d8d71de87fd185beb72a883d904218e6bd6fbf1d573f7049edfa881ff74925cdd453fdc665e5f04ee8d8da3af0d9f212698b225b5c8a56
7
- data.tar.gz: 4c315f431124e5564c9c7aa85c37f0535f0d70cae27ae7ebad5b20a5c1913a774314d19a1e595d57491ae1c8103636bb23040fae5f3f08126dac4923fddd346a
6
+ metadata.gz: c9f0f6edbfff97b405d1171cf1979c7dc37cb8ac782c492da9f46b09603e08f57e409c7cd1186da1fd2b29ea575ad3ae70b20c107fd3e3652830ed7227318933
7
+ data.tar.gz: bd4c74fd174d1491aeb73c64bff92d10c7e0e68f63af998a9979ae7c3efa7f25b0ecffc7f4f176db88e6a0fb3fccdb37d2aac9e5ad3f84f900dd4b5039c05e5c
@@ -1,6 +1,10 @@
1
1
  # Capistrano Symfony 1.x Changelog
2
2
 
3
3
 
4
+ ## `2.0.0-alfa1`
5
+
6
+ Support for only Symfony4.
7
+
4
8
  ## `1.0.0`
5
9
 
6
10
  No changes since RC3
data/README.md CHANGED
@@ -1,71 +1,102 @@
1
1
  # Capistrano::Symfony
2
2
 
3
- Symfony 2 (standard edition) specific tasks for Capistrano v3 (inspired by [capifony][2]).
3
+ Symfony 4 specific tasks for Capistrano v3 (inspired by [capifony][2]).
4
4
 
5
5
  It leverages the following capistrano tasks to deploy a Symfony app
6
6
 
7
7
  * https://github.com/capistrano/composer
8
8
  * https://github.com/capistrano/file-permissions
9
9
 
10
+ ## Version information
11
+
12
+ #### Version 1.x
13
+
14
+ This version is built for **Symfony 2 and 3**.
15
+
16
+ Go to [Version 1 documentation](/../../tree/1.x).
17
+
18
+ #### Version 2.x
19
+
20
+ This version is built for **Symfony 4**.
21
+
22
+ You are currently on the Version 2 branch.
23
+
10
24
  ## Installation
11
25
 
26
+ Specify your dependencies:
12
27
  ```
13
28
  # Gemfile
14
- gem 'capistrano', '~> 3.4'
15
- gem 'capistrano-symfony', '~> 1.0.0'
29
+ source 'https://rubygems.org'
30
+ gem 'capistrano', '~> 3.11'
31
+ gem 'capistrano-symfony', '~> 2.0.0-alfa1'
16
32
  ```
17
33
 
18
- ## Usage
34
+ Install your dependencies:
35
+ ```
36
+ bundle install
37
+ ```
38
+
39
+ When `capistrano` and `capistrano-symfony` is installed. Run the following command
40
+ to set up your local files:
19
41
 
20
- Require capistrano-symfony in your cap file
42
+ ```
43
+ cap install
44
+ ```
45
+
46
+ Make Capistrano aware of `'capistrano/symfony' by require capistrano-symfony in your
47
+ new Capfile
21
48
 
22
49
  ```
23
50
  # Capfile
24
51
  require 'capistrano/symfony'
52
+
53
+ # If you use composer you might want this:
54
+ require 'capistrano/composer'
25
55
  ```
26
56
 
57
+ ## Usage
58
+
59
+ ```
60
+ cap staging deploy
61
+ cap production deploy
62
+ ```
27
63
 
28
64
  ### Settings
29
65
 
30
- If you are using an un-modified symfony-standard edition, version 3 then you do not need to change/add anything to your `deploy.rb` other than what is required from Capistrano.
66
+ If you are using a standard Symfony Flex application that follows the best practises
67
+ then you do not need to change/add anything to your `deploy.rb` other than what is
68
+ required from Capistrano.
31
69
 
32
- We do however expose the following settings (shown with default evaluated values) that can be modified to suit your project. Please refer to `lib/capistrano/symfony/defaults.rb` to see exactly how the defaults are set up.
70
+ We do however expose the following settings (shown with default evaluated values)
71
+ that can be modified to suit your project. Please refer to `lib/capistrano/symfony/defaults.rb`
72
+ to see exactly how the defaults are set up.
33
73
 
34
74
 
35
75
  ```ruby
36
- # Symfony console commands will use this environment for execution
37
- set :symfony_env, "prod"
38
-
39
- # Set this to 2 for the old directory structure
40
- set :symfony_directory_structure, 3
41
- # Set this to 4 if using the older SensioDistributionBundle
42
- set :sensio_distribution_version, 5
43
76
 
44
77
  # symfony-standard edition directories
45
- set :app_path, "app"
46
- set :web_path, "web"
47
- set :var_path, "var"
48
78
  set :bin_path, "bin"
79
+ set :config_path, "config"
80
+ set :var_path, "var"
81
+ set :web_path, "public"
49
82
 
50
- # The next 3 settings are lazily evaluated from the above values, so take care
83
+ # The next settings are lazily evaluated from the above values, so take care
51
84
  # when modifying them
52
- set :app_config_path, "app/config"
53
- set :log_path, "var/logs"
85
+ set :log_path, "var/log"
54
86
  set :cache_path, "var/cache"
55
87
 
56
88
  set :symfony_console_path, "bin/console"
57
89
  set :symfony_console_flags, "--no-debug"
58
90
 
59
- # Remove app_dev.php during deployment, other files in web/ can be specified here
60
- set :controllers_to_clear, ["app_*.php", "config.php"]
61
-
62
91
  # asset management
63
- set :assets_install_path, "web"
92
+ set :assets_install_path, "public"
64
93
  set :assets_install_flags, '--symlink'
65
94
 
66
95
  # Share files/directories between releases
67
- set :linked_files, []
68
96
  set :linked_dirs, ["var/logs"]
97
+ set :linked_files, []
98
+ # To use a .env file:
99
+ #set :linked_files, [".env"]
69
100
 
70
101
  # Set correct permissions between releases, this is turned off by default
71
102
  set :file_permissions_paths, ["var"]
@@ -73,19 +104,14 @@ set :permission_method, false
73
104
 
74
105
  # Role filtering
75
106
  set :symfony_roles, :all
76
- ```
77
-
78
- #### Using this plugin with the old Symfony 2 directory structure and SensioDistributionBundle <= 4
79
-
80
- Add the following to `deploy.rb` to use the old directory structure
107
+ set :symfony_deploy_roles, :all
81
108
 
109
+ # Add extra environment variables:
110
+ set :default_env, {
111
+ 'APP_ENV' => 'prod'
112
+ 'SECRET' => 'foobar'
113
+ }
82
114
  ```
83
- # deploy.rb
84
- set :symfony_directory_structure, 2
85
- set :sensio_distribution_version, 4
86
- ```
87
-
88
- If you are upgrading this gem and have modified `linked_dirs` or "advanced" variables such as `log_path` then you will need to update those accordingly
89
115
 
90
116
  ### Flow
91
117
 
@@ -109,6 +135,7 @@ deploy
109
135
  | |__ deploy:symlink:shared
110
136
  | |__ symfony:create_cache_dir
111
137
  | |__ symfony:set_permissions
138
+ | |__ symfony:make_console_executable
112
139
  |__ deploy:updated
113
140
  | |__ symfony:cache:warmup
114
141
  | |__ symfony:clear_controllers
@@ -124,9 +151,12 @@ deploy
124
151
 
125
152
  ### File permissions
126
153
 
127
- Set the `permission_method` variable to one of `:chmod`, `:acl`, or `:chgrp` in your `deploy.rb` to handle the common scenario of a web user and the deploy user being different.
154
+ Set the `permission_method` variable to one of `:chmod`, `:acl`, or `:chgrp` in
155
+ your `deploy.rb` to handle the common scenario of a web user and the deploy user
156
+ being different.
128
157
 
129
- Both will need access to the files/directories such as `var/cache` and `web/uploads` (if you handle uploads). Set `file_permissions_users` to your webserver user
158
+ Both will need access to the files/directories such as `var/cache` and `public/uploads`
159
+ (if you handle uploads). Set `file_permissions_users` to your webserver user
130
160
 
131
161
  Example:
132
162
 
@@ -135,19 +165,24 @@ Example:
135
165
 
136
166
  set :permission_method, :acl
137
167
  set :file_permissions_users, ["nginx"]
138
- set :file_permissions_paths, ["var", "web/uploads"]
168
+ set :file_permissions_paths, ["var", "public/uploads"]
139
169
  ```
140
170
 
141
- Please note that `:acl` requires that `setfacl` be available on your deployment target
171
+ **Note:** Using `:acl` requires that `setfacl` be available on your deployment target.
172
+ **Note:** If you are getting an error like `setfacl: Option -m: Invalid argument near character 3`,
173
+ it means that the users in `file_permissions_users` do not exist on your deployment
174
+ target.
175
+
176
+
142
177
 
143
- See [the symfony documentation](http://symfony.com/doc/current/book/installation.html#checking-symfony-application-configuration-and-setup) and [the file permission capistrano plugin](https://github.com/capistrano/file-permissions) for reference
178
+ See [the symfony documentation](http://symfony.com/doc/current/book/installation.html#checking-symfony-application-configuration-and-setup)
179
+ and [the file permission capistrano plugin](https://github.com/capistrano/file-permissions) for reference.
144
180
 
145
181
  ### Integrated common tasks
146
182
 
147
183
  The following common tasks are available:
148
184
 
149
185
  * `symfony:assets:install`
150
- * `symfony:build_bootstrap` - useful if you disable composer
151
186
 
152
187
  So you can use them with hooks in your project's `deploy.rb` like this:
153
188
 
@@ -172,7 +207,8 @@ namespace :deploy do
172
207
  end
173
208
  ```
174
209
 
175
- If you want to execute a command on a host with a given role you can use the Capistrano `on` DSL, additionally using `within` from Capistrano will change the directory
210
+ If you want to execute a command on a host with a given role you can use the Capistrano
211
+ `on` DSL, additionally using `within` from Capistrano will change the directory
176
212
 
177
213
  ```ruby
178
214
  namespace :deploy do
@@ -184,6 +220,24 @@ namespace :deploy do
184
220
  end
185
221
  ```
186
222
 
223
+ ### Using composer
224
+
225
+ If you use composer, make sure your Capfile includes:
226
+
227
+ ```
228
+ require 'capistrano/composer'
229
+ ```
230
+
231
+ To download the composer executable add the following to your `deploy.rb`:
232
+
233
+ ```
234
+ # First define deploy target:
235
+ set :deploy_to, "/home/sites/com.example"
236
+
237
+ # Install composer if it does not exist
238
+ SSHKit.config.command_map[:composer] = "php #{shared_path.join("composer.phar")}"
239
+ ```
240
+
187
241
  [1]: http://capistranorb.com/documentation/getting-started/flow/
188
242
  [2]: http://capifony.org/
189
243
  [3]: http://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html
@@ -0,0 +1,9 @@
1
+ UPGRADING FROM 0.x to 1.0
2
+ =========================
3
+
4
+ * Add the following to your `deploy.rb`:
5
+ ```ruby
6
+ # Role filtering
7
+ set :symfony_roles, :all
8
+ set :symfony_deploy_roles, :all
9
+ ```
@@ -4,11 +4,11 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
6
  gem.name = "capistrano-symfony"
7
- gem.version = '1.0.0'
7
+ gem.version = '2.0.0-alfa1'
8
8
  gem.authors = ["Peter Mitchell"]
9
9
  gem.email = ["pete@peterjmit.com"]
10
10
  gem.description = %q{Symfony specific Capistrano tasks}
11
- gem.summary = %q{Capistrano Symfony - Easy deployment of Symfony 2 & 3 apps with Ruby over SSH}
11
+ gem.summary = %q{Capistrano Symfony - Easy deployment of Symfony 4 apps with Ruby over SSH}
12
12
  gem.homepage = "http://github.com/capistrano/capistrano-symfony"
13
13
 
14
14
  gem.files = `git ls-files`.split($/)
@@ -0,0 +1,17 @@
1
+ # Documentation for maintainers
2
+
3
+ Since this is a Ruby tool used by PHP programmers it might be a good idea to document
4
+ some things.
5
+
6
+
7
+ ## Making a release
8
+
9
+ Checklist for making a release:
10
+
11
+ - Write changelog
12
+ - Update version number in `capistrano-symfony.gemspec`
13
+ - Make a new release with GitHub
14
+ - Build the gem with `gem build capistrano-symfony.gemspec`
15
+ - Push the gem to rubygems.org: `gem push capistrano-symfony-X.X.X.gem`
16
+ - Add the `capistrano-symfony-X.X.X.gem` to the GitHub release
17
+
@@ -38,16 +38,6 @@ module Capistrano
38
38
  release_path.join('vendor')
39
39
  end
40
40
 
41
- def build_bootstrap_path
42
- bootstrap_path = symfony_vendor_path.join("sensio/distribution-bundle")
43
-
44
- if fetch(:sensio_distribution_version).to_i <= 4
45
- bootstrap_path = bootstrap_path.join("Sensio/Bundle/DistributionBundle")
46
- end
47
-
48
- bootstrap_path.join("Resources/bin/build_bootstrap.php")
49
- end
50
-
51
41
  def symfony_console(command, params = '')
52
42
  execute :php, symfony_console_path, command, params, fetch(:symfony_console_flags)
53
43
  end
@@ -3,27 +3,21 @@
3
3
  #
4
4
  set :symfony_env, "prod"
5
5
 
6
- set :symfony_directory_structure, 3
7
- set :sensio_distribution_version, 5
8
-
9
6
  # symfony-standard edition top-level directories
10
- set :app_path, "app"
11
- set :web_path, "web"
12
- set :var_path, "var"
13
7
  set :bin_path, "bin"
8
+ set :config_path, "config"
9
+ set :var_path, "var"
10
+ set :web_path, "public"
14
11
 
15
12
  # Use closures for directories nested under the top level dirs, so that
16
13
  # any changes to web/app etc do not require these to be changed also
17
- set :app_config_path, -> { fetch(:app_path) + "/config" }
18
- set :log_path, -> { fetch(:symfony_directory_structure) == 2 ? fetch(:app_path) + "/logs" : fetch(:var_path) + "/logs" }
19
- set :cache_path, -> { fetch(:symfony_directory_structure) == 2 ? fetch(:app_path) + "/cache" : fetch(:var_path) + "/cache" }
14
+ set :log_path, -> { fetch(:var_path) + "/log" }
15
+ set :cache_path, -> { fetch(:var_path) + "/cache" }
20
16
 
21
17
  # console
22
- set :symfony_console_path, -> { fetch(:symfony_directory_structure) == 2 ? fetch(:app_path) + '/console' : fetch(:bin_path) + "/console" }
18
+ set :symfony_console_path, -> { fetch(:bin_path) + "/console" }
23
19
  set :symfony_console_flags, "--no-debug"
24
20
 
25
- set :controllers_to_clear, ["app_*.php", "config.php"]
26
-
27
21
  # assets
28
22
  set :assets_install_path, fetch(:web_path)
29
23
  set :assets_install_flags, '--symlink'
@@ -31,15 +25,16 @@ set :assets_install_flags, '--symlink'
31
25
  #
32
26
  # Capistrano defaults
33
27
  #
34
- set :linked_files, -> { [fetch(:app_config_path) + "/parameters.yml"] }
28
+ set :linked_files, -> { [".env"] }
35
29
  set :linked_dirs, -> { [fetch(:log_path)] }
36
30
 
37
31
  #
38
32
  # Configure capistrano/file-permissions defaults
39
33
  #
40
- set :file_permissions_paths, -> { fetch(:symfony_directory_structure) == 2 ? [fetch(:log_path), fetch(:cache_path)] : [fetch(:var_path)] }
34
+ set :file_permissions_paths, -> { [fetch(:var_path)] }
41
35
  # Method used to set permissions (:chmod, :acl, or :chown)
42
36
  set :permission_method, false
43
37
 
44
38
  # Role filtering
45
39
  set :symfony_roles, :all
40
+ set :symfony_deploy_roles, :all
@@ -8,6 +8,7 @@ namespace :deploy do
8
8
  task :updating do
9
9
  invoke "symfony:create_cache_dir"
10
10
  invoke "symfony:set_permissions"
11
+ invoke "symfony:make_console_executable"
11
12
  end
12
13
 
13
14
  task :updated do
@@ -64,29 +64,14 @@ namespace :symfony do
64
64
  end
65
65
  end
66
66
 
67
- desc "Clear non production controllers"
68
- task :clear_controllers do
69
- next unless any? :controllers_to_clear
67
+ desc "Make symfony_console_path executable"
68
+ task :make_console_executable do
70
69
  on release_roles(fetch(:symfony_deploy_roles)) do
71
- within symfony_web_path do
72
- execute :rm, "-f", *fetch(:controllers_to_clear)
73
- end
74
- end
75
- end
76
-
77
- desc "Build the bootstrap file"
78
- task :build_bootstrap do
79
- on release_roles(fetch(:symfony_deploy_roles)) do
80
- within release_path do
81
- if fetch(:symfony_directory_structure) == 2
82
- execute :php, build_bootstrap_path, fetch(:app_path)
83
- else
84
- execute :php, build_bootstrap_path, fetch(:var_path)
70
+ within release_path do
71
+ execute :chmod, "755", fetch(:symfony_console_path)
85
72
  end
86
73
  end
87
- end
88
74
  end
89
-
90
75
  end
91
76
 
92
77
  task :symfony => ["symfony:console"]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-symfony
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0.pre.alfa1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Mitchell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-06 00:00:00.000000000 Z
11
+ date: 2018-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -63,7 +63,9 @@ files:
63
63
  - CHANGELOG.md
64
64
  - LICENCE.txt
65
65
  - README.md
66
+ - UPGRADING-1.0.md
66
67
  - capistrano-symfony.gemspec
68
+ - docs/maintainers.md
67
69
  - lib/capistrano-symfony.rb
68
70
  - lib/capistrano/dsl/symfony.rb
69
71
  - lib/capistrano/symfony.rb
@@ -96,14 +98,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
98
  version: '0'
97
99
  required_rubygems_version: !ruby/object:Gem::Requirement
98
100
  requirements:
99
- - - ">="
101
+ - - ">"
100
102
  - !ruby/object:Gem::Version
101
- version: '0'
103
+ version: 1.3.1
102
104
  requirements: []
103
105
  rubyforge_project:
104
106
  rubygems_version: 2.7.6
105
107
  signing_key:
106
108
  specification_version: 4
107
- summary: Capistrano Symfony - Easy deployment of Symfony 2 & 3 apps with Ruby over
108
- SSH
109
+ summary: Capistrano Symfony - Easy deployment of Symfony 4 apps with Ruby over SSH
109
110
  test_files: []