capistrano-typo3 0.4.9 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,46 @@
1
+ # vim: ft=ruby:sts=2:expandtab
2
+
3
+ namespace :wp do
4
+
5
+ namespace :homestead do
6
+
7
+ desc "init site dirs from scratch (new installs)"
8
+ task "init_site_dirs" do
9
+ invoke 'git:check_branch'
10
+
11
+ on roles(:all) do
12
+ execute "sudo rm -Rf #{fetch(:deploy_to)}/shared/uploads"
13
+ execute "sudo mysql -e 'DROP DATABASE IF EXISTS #{fetch(:dbname)}'"
14
+
15
+ execute "sudo mkdir -p #{fetch(:deploy_to)}/shared/uploads"
16
+ execute "sudo chown vagrant.vagrant -Rf #{fetch(:deploy_to)}/shared/uploads"
17
+ end
18
+ end
19
+
20
+ desc "init site database from scratch (new installs)"
21
+ task "init_site_database" do
22
+ invoke 'git:check_branch'
23
+
24
+ on roles(:all) do
25
+ execute "sudo mysql -e 'CREATE DATABASE #{fetch(:dbname)} CHARACTER SET utf8 COLLATE utf8_general_ci;'"
26
+ end
27
+ end
28
+
29
+ desc "setup site (existing installs)"
30
+ task "setup_site" do
31
+ invoke 'wp:homestead:init_site_dirs'
32
+ invoke 'wp:homestead:init_site_database'
33
+
34
+ invoke 'deploy:fixknownhosts'
35
+ invoke 'sync:sync_db_from_production'
36
+
37
+ #WP update config
38
+
39
+ invoke 'sync:sync_files_from_production'
40
+ invoke 'typo3:helper:restart_webserver'
41
+ end
42
+
43
+ end
44
+ end
45
+
46
+
@@ -6,14 +6,22 @@ require "capistrano/typo3/dt3_div"
6
6
  require "capistrano/typo3/dt3_mysql"
7
7
  require 'yaml' # Built in, no gem required
8
8
 
9
-
10
-
11
9
  TYPO3_DB_DUMP_DIR = 'db_dumps'
12
10
 
13
11
  load File.expand_path('../tasks/typo3.cap', __FILE__)
12
+ load File.expand_path('../tasks/typo3content.cap', __FILE__)
13
+ load File.expand_path('../tasks/typo3helper.cap', __FILE__)
14
+ load File.expand_path('../tasks/typo3util.cap', __FILE__)
15
+ load File.expand_path('../tasks/typo3homestead.cap', __FILE__)
16
+ load File.expand_path('../tasks/typo3test.cap', __FILE__)
17
+ load File.expand_path('../tasks/typo3vagrant.cap', __FILE__)
18
+
19
+ load File.expand_path('../tasks/wp_homestead.cap', __FILE__)
20
+
14
21
  load File.expand_path('../tasks/deploy.cap', __FILE__)
15
22
  load File.expand_path('../tasks/git.cap', __FILE__)
16
23
  load File.expand_path('../tasks/db.cap', __FILE__)
24
+ load File.expand_path('../tasks/sync.cap', __FILE__)
17
25
 
18
26
 
19
27
 
@@ -79,7 +79,8 @@ class DT3MySQL
79
79
  version = 1
80
80
  end
81
81
 
82
- filename = File.join(TYPO3_DB_DUMP_DIR,"#{fetch(:dbname)}-#{fetch(:branch)}.#{version.to_s}.sql")
82
+ branch = `git rev-parse --abbrev-ref HEAD`.gsub("\n",'')
83
+ filename = File.join(TYPO3_DB_DUMP_DIR,"#{fetch(:dbname)}-#{branch}.#{version.to_s}.sql")
83
84
  print "new image:#{fetch(:dbname)} version:#{version}\n"
84
85
  DT3MySQL::mysqldump_to(filename,table_exclude_list)
85
86
  end
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Typo3
3
- VERSION = "0.4.9"
3
+ VERSION = "0.5.5"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-typo3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.9
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pim Snel
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-02 00:00:00.000000000 Z
11
+ date: 2021-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -82,15 +82,21 @@ files:
82
82
  - README.md
83
83
  - Rakefile
84
84
  - capistrano-typo3.gemspec
85
- - docs/homestead_nl.md
86
- - docs/install_from_scratch.md
87
85
  - homestead_files/Vagrantfile
88
86
  - homestead_files/homestead.rb
89
87
  - homestead_files/vagrant.yml
90
88
  - lib/capistrano/tasks/db.cap
91
89
  - lib/capistrano/tasks/deploy.cap
92
90
  - lib/capistrano/tasks/git.cap
91
+ - lib/capistrano/tasks/sync.cap
93
92
  - lib/capistrano/tasks/typo3.cap
93
+ - lib/capistrano/tasks/typo3content.cap
94
+ - lib/capistrano/tasks/typo3helper.cap
95
+ - lib/capistrano/tasks/typo3homestead.cap
96
+ - lib/capistrano/tasks/typo3test.cap
97
+ - lib/capistrano/tasks/typo3util.cap
98
+ - lib/capistrano/tasks/typo3vagrant.cap
99
+ - lib/capistrano/tasks/wp_homestead.cap
94
100
  - lib/capistrano/typo3.rb
95
101
  - lib/capistrano/typo3/dt3_div.rb
96
102
  - lib/capistrano/typo3/dt3_mysql.rb
@@ -100,7 +106,7 @@ homepage: https://github.com/Lingewoud/capistrano-typo3
100
106
  licenses:
101
107
  - MIT
102
108
  metadata: {}
103
- post_install_message:
109
+ post_install_message:
104
110
  rdoc_options: []
105
111
  require_paths:
106
112
  - lib
@@ -115,9 +121,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
121
  - !ruby/object:Gem::Version
116
122
  version: '0'
117
123
  requirements: []
118
- rubyforge_project:
119
- rubygems_version: 2.6.14
120
- signing_key:
124
+ rubygems_version: 3.1.4
125
+ signing_key:
121
126
  specification_version: 4
122
127
  summary: Capistrano 3 tasks and CI for TYPO3
123
128
  test_files: []
data/docs/homestead_nl.md DELETED
@@ -1,164 +0,0 @@
1
- # Capistrano-typo3 + Homestead
2
-
3
- Als ontwikkelaar wil je in je eigen editor werken met de luxe dat je
4
- wel de volledige TYPO3 Lamp stack tot je beschikking hebt.
5
-
6
- Capistrano-typo3 integreert TYPO3.Homestead, een Vagrant machine van
7
- @tuurlijk die ervoor zorgt dat een website die geschikt is voor CI met
8
- Capistrano-typo3 ook heel makkelijk op een eigen machine geinstalleerd
9
- kan worden.
10
-
11
- TYPO3.Homestead bevat alle mogelijke hulpmiddelen voor TYPO3
12
- en PHP ontwikkelaars, waaronder diverse php-versies en php-debugging
13
- tools, maar ook o.a. MailHog, memcached, rabbitMQ, redis, elasticsearch.
14
- Capistrano-typo3 installeert homestead en houdt de configuratie helemaal
15
- vanilla. Lees alles over de mogelijkheden Homestead op de
16
- [TYPO3.Homestead gitlab site](https://github.com/Tuurlijk/TYPO3.Homestead).
17
-
18
- ## Installatie
19
-
20
- Als een site al geschikt is gemaakt voor Homestead moet je volgende
21
- handelingen uitvoeren in Homestead op je eigen machine met de website te
22
- installeren.
23
-
24
- ### 1. Clone de website en installeer de noodzakelijk gems
25
-
26
- ```
27
- git clone -b developer git@gitlab.lingewoud.net:sites/site-t3.git
28
- bundle install --path=vendor --binstubs
29
- ```
30
-
31
- ### 2. Draai het homestead setup script
32
-
33
- ```
34
- ./bin/cap homestead typo3:vagrant:setup_machine
35
- ```
36
-
37
- Als er iets niet goed gaat kun je met het volgende commando de machine
38
- verwijderen.
39
-
40
- ```
41
- ./bin/cap homestead typo3:vagrant:purge_machine
42
- ```
43
-
44
- Je kunt vervolgens weer met een schone lei het commando
45
-
46
- ```
47
- homestead:setup_machine
48
- ```
49
- uitvoeren.
50
-
51
- ### 3. Installeer de site in homestead
52
-
53
- ```
54
- ./bin/cap homestead typo3:vagrant:setup_site
55
- ```
56
-
57
- Als er iets niet goed gaat gebruik je het commando:
58
-
59
- ```
60
- ./bin/cap homestead typo3:vagrant:purge_site
61
- ```
62
-
63
- Je kunt vervolgens weer met een schone lei het volgende commando
64
- uitvoeren.
65
-
66
- ```
67
- ./bin/cap homestead typo3:vagrant:setup_site
68
- ```
69
-
70
- ### 4. Sychroniseer de live content bestanden
71
-
72
- Houdt er rekening mee dat dit lang kan duren. Voer het onderstaande
73
- commando uit om de bestanden vanuit de live installatie naar de vagrant
74
- machine de synchroniseren:
75
-
76
- ```
77
- ./bin/cap homestead typo3:content:sync_files_from_production
78
- ```
79
-
80
- ## Gebruiken
81
-
82
- ### Vagrant machine starten/stoppen
83
-
84
- Als Homestead geïnstalleerd is moet je de vagrant machine starten om met
85
- de site te kunnen werken.
86
-
87
- Open een terminal en cd naar de root directory van je TYPO3 project.
88
- Vanuit hier type je ```vagrant up```. Wil je de vagrant weer stoppen
89
- type dan ```vagrant halt```. Om te zien of vagrant draait type je
90
- ```vagrant status```.
91
-
92
- Let op: in de huidige versie van Capistrano-typo3+homestead mag er maar
93
- een vagrant machine tegelijk draaien.
94
-
95
- ### Site URL en broncode
96
-
97
- Als vagrant draait kun je website openen via: http://local.typo3.org.
98
-
99
- Als de website draait staat de TYPO3 code in de map
100
- ```[T3-project]/dummy```.
101
-
102
- ### Site database
103
-
104
- De database is te benaderen via een ssh-tunnel. Aan de hand van Sequel
105
- Pro leggen we uit hoe contact gemaakt kan worden met de database. Zie de
106
- schermafbeelding hieronder:
107
-
108
- ![image](http://picdrop.t3lab.com/xZDfFGGnQL.png)
109
-
110
- Maak een nieuwe profiel en vul de bestanden zoals hierboven. Het
111
- password veld van de database moet gevuld worden met ```supersecret```.
112
- De SSH Private is bij het maken van de machine gegenereerd. De ssh key
113
- staat in de verborgen map
114
- [T3-project]/.vagrant/machines/default/virtualbox/private_key
115
-
116
- Kopieer het volledige pad van de private key en plak deze in Sequel Pro.
117
-
118
- Als de vagrant machine draait geeft dit profiel toegang tot alle
119
- databases.
120
-
121
-
122
- ### Datase en evt bestanden synchroniseren
123
-
124
- Capistrano-typo3 gaat ervanuit dat database en de website content
125
- bestanden van de live website altijd de laatste versie is.
126
- Dit betekend dat op gezette momenten de ontwikkelaar de database en de
127
- bestanden in z'n Homestead ontwikkelomgeving wil bijwerken met de
128
- live versies. Dit kan met de volgende 2 losse commando's:
129
-
130
- ```
131
- ./bin/cap homestead typo3:content:sync_db_from_production
132
- ./bin/cap homestead typo3:content:sync_files_from_production
133
- ```
134
-
135
- ## Links
136
- - [TYPO3.Homestead](https://github.com/Tuurlijk/TYPO3.Homestead)
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
-
@@ -1,263 +0,0 @@
1
- # Nieuwe site
2
-
3
- Dit is een verslag van een from scratch installatie, dat moet leiden tot
4
- een complete handleiding.
5
-
6
- verslag TYPO3 omgeving maken voor development en release
7
-
8
- # TODO
9
-
10
- - Gemfile
11
- - Bundle install --bincaps
12
- - Capfile
13
- - Dir str.
14
- - testing
15
- - prelive
16
- - homestead conf
17
- - Dummy dir met typo3 vanilla
18
- - TYPO3 installatie
19
-
20
-
21
-
22
- ### Stap 1 gitrepogemaakt en gecloned om in te werken
23
-
24
- ### Stap 2 prelive omgeving
25
-
26
- Deze omgeving dient als content master zolang de website niet gereleased
27
- is. Om die reden maken we deze omgeving als eerste aan zodat de test en
28
- homestead omgeving gesynced kan worden met deze omgeving.
29
-
30
- - omgeving prelive op webserver met webpad,
31
-
32
- htdocroot =
33
-
34
- ```
35
- /var/customers/webs/userdev/point-prelive/current/dummy
36
- ```
37
-
38
- - database
39
-
40
- ### Stap 3
41
- in repo working copy
42
-
43
- vim Gemfile
44
-
45
- ```
46
- source 'https://rubygems.org'
47
- gem 'capistrano', '~> 3.5.0'
48
- gem 'capistrano-typo3', :git =>'https://github.com/mipmip/capistrano-typo3.git'
49
- ```
50
-
51
- ```
52
- bundle install --binstubs
53
- ```
54
-
55
- ```
56
- cap install STAGES=homestead,test,prelive,live
57
- ```
58
-
59
- Voeg toe aan Capfile
60
-
61
- ```
62
- require 'capistrano/typo3'
63
- ```
64
-
65
-
66
-
67
- ### Stap 4
68
-
69
- in repo working copy
70
-
71
- ```
72
- mkdir -p config/deploy/
73
- ```
74
-
75
- vim config/deploy/prelive.rb
76
-
77
- pas aan met instellingen zoals:
78
-
79
- ```
80
- server 'xxxxx.xxxxxx.net', roles: %w{web}, port: 22
81
-
82
- set :user, 'userxxx'
83
-
84
- set :deploy_to, "/var/www/#{fetch(:user)}/point-prelive"
85
- set :tmp_dir, "/var/www/#{fetch(:user)}/tmp"
86
- set :ssh_options, { user: fetch(:user) }
87
-
88
- set :stage, :prelive
89
- set :http_protocol, 'http'
90
- set :branch, "master"
91
- set :t3_dont_upgrade_source, 1
92
-
93
- set :main_domain_name, 'xxxxx.net'
94
-
95
- set :dbname, 'dbxxx'
96
- set :dbuser, 'userxxx'
97
- set :dbpass, 'xxxxxx'
98
- set :dbhost, 'localhost'
99
- ```
100
-
101
- and config/deploy.rb
102
-
103
- ```
104
- set :application, 'point-env001-t3'
105
-
106
- set :repo_url, 'git@gitlab.lingewoud.net:HS-TYPO3/point-env001-t3.git'
107
-
108
- set :scm, :git
109
- set :log_level, :debug
110
- set :keep_releases, 5
111
-
112
- set :domain_org, 'point-prelive.dev2.lingewoud.net'
113
-
114
- set :t3_main_version, '7.6'
115
- ```
116
-
117
- ### Stap 5, download typo3
118
-
119
- ```
120
- mkdir dummy
121
- cd dummy
122
- cd tar xzvf ~/Downloads/typo3_src-7.6.11.tar.gz
123
- ln -s typo3_src/index.php
124
- ln -s typo3_src/typo3
125
- cp typo3_src/_.htaccess .htaccess
126
- ```
127
-
128
- commit and push
129
-
130
-
131
- ### Stap 6, remote setup
132
-
133
- ```
134
- typo3:helper:rm_deploy_to
135
- deploy
136
- typo3:helper:setup_shared_typo3_dirs
137
- typo3:helper:current_relative_symlink
138
- first_install
139
- ```
140
-
141
-
142
- ### Stap 7, maak in de browser de installatie van prelive af
143
-
144
- Haal daarna dummy/typo3conf/ naar local for import in git
145
- ```
146
- rsync -av userdev@volkert.node.lingewoud.net:/var/customers/webs/userdev/point-prelive/current/dummy/typo3conf/ dummy/typo3conf/
147
- git add dummy
148
- git commit dummy
149
- git push
150
- ```
151
-
152
- ### Stap 8, maak test-env klaar
153
-
154
-
155
- maak configuratie van test in orde
156
-
157
- ```
158
-
159
- ```
160
-
161
- commit en push alles weg
162
-
163
- ```
164
- git checkout -b developer
165
- git push --set-upstream origin developer
166
- ```
167
-
168
- maak in deploy.rb de sync in orde
169
-
170
- ```
171
- set :t3_live_sync, -> do
172
- {
173
- 'filesync' => {
174
- 'fileadmin' => 'rsync -av xxxx@xxxx.net:/var/www/xxxx-prelive/shared/fileadmin/ shared/fileadmin/',
175
- 'uploads' => 'rsync -av xxxx@xxxx.net:/var/www/xxxx-prelive/shared/uploads/ shared/uploads/',
176
- },
177
- 'dbsync' => {
178
- 'ssh_server' => 'xxxx.net',
179
- 'ssh_user' => 'userdev',
180
- 'dbname' => 'xxxx',
181
- 'dbuser' => 'xxxx',
182
- 'dbpass' => 'xxxx',
183
- 'dbhost' => 'xxxx',
184
- },
185
- }
186
- end
187
-
188
- set :t3_sql_updates, -> do
189
- [
190
- # "UPDATE sys_template SET constants = REPLACE(constants, 'http://www.#{fetch(:domain_org)}/','http://#{fetch(:main_domain_name)}/') where uid=1",
191
- # "UPDATE sys_domain SET domainName = '#{fetch(:main_domain_name)}' WHERE uid = 1",
192
- # "DELETE FROM sys_domain WHERE uid = 1",
193
- ]
194
- end
195
- ```
196
-
197
-
198
- ### Stap 9 vagrant machine
199
-
200
- maak homestead conf.
201
-
202
- ```
203
- server 'localhost', roles: %w{web allow_syncfiles allow_syncdatabase}, port: 2222
204
- set :user, 'vagrant'
205
- set :stage, :homestead
206
- set :deploy_to, '/var'
207
- set :ssh_options, { user: 'vagrant', port: 2222, keys: ['.vagrant/machines/default/virtualbox/private_key'] }
208
- set :tmp_dir, "/tmp"
209
- set :bundle_executable, "/usr/local/bin/bundle"
210
- set :restart_webserver, "sudo service nginx restart"
211
-
212
- set :branch, "developer"
213
-
214
- set :git_no_cache, 1
215
-
216
- set :t3_store_db_credentials_in_addionalconf, 1
217
- set :t3_add_unsafe_trusted_host_pattern, 1
218
- set :t3_dont_upgrade_source, 1
219
-
220
- set :hs_default_upstream_php_engine, 'php56'
221
-
222
- set :main_domain_name, 'local.typo3.org'
223
- set :dbname, 'captypo3homestead'
224
- set :dbuser, 'root'
225
- set :dbpass, 'supersecret'
226
- set :dbhost, 'localhost'
227
-
228
- sync_ignore_items = [
229
- # '*.pdf'
230
- ]
231
- sync_ignore = ''
232
- sync_ignore_items.each do | ignore_item |
233
- sync_ignore << "--exclude '#{ignore_item}' "
234
- end
235
-
236
- set :t3_rsync_ignore, sync_ignore
237
- set :t3_protocol, "http"
238
- ```
239
-
240
-
241
- ### Stap 10 Setup machine
242
-
243
-
244
- installeer de juiste vagrant.yml en Vagrantfile
245
-
246
-
247
- ```
248
- ./bin/cap homestead typo3:vagrant:setup_machine
249
- ```
250
-
251
-
252
- ### Stap 20 Setup gitlab-ci.yml
253
-
254
- set key in variablen van gitlab
255
-
256
- keynaam: SSH_PRIVATE_KEY
257
- kay waarde: een key die met test en prelive ssh mag connecten
258
-
259
- ### Stap xxx Maak backend test gebruiker met nieuwe ww:
260
-
261
- automated_test web->page
262
-
263
- ### voeg minitest en watir toe