capistrano-symfony 1.0.0 → 2.0.0.pre.alfa1

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 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: []