capistrano-typo3 0.2.1
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 +7 -0
- data/.gitignore +14 -0
- data/CHANGELOG.md +49 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +61 -0
- data/Rakefile +2 -0
- data/capistrano-typo3.gemspec +23 -0
- data/lib/capistrano/tasks/deploy.cap +11 -0
- data/lib/capistrano/tasks/git.cap +44 -0
- data/lib/capistrano/tasks/typo3.cap +421 -0
- data/lib/capistrano/typo3/version.rb +5 -0
- data/lib/capistrano/typo3.rb +5 -0
- metadata +84 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 76d99608b0dcac5af96531179aaad02982ff4da9
|
4
|
+
data.tar.gz: 51a3b0b107ec71204c7242ddadc65384dc0bd9ff
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 87348a2e0510449b6f107d8f864b3d4ce8e41d067dc5b226bf24356b33546e141b8b78566cac7f13206ebec90a2f2a3904271ee10a69991b344464a075a89f88
|
7
|
+
data.tar.gz: 2f9a6468c5964730a45e72387a70e9d66b0fc6def9845c78e0f00d4ea28ad55ef5d977fd03d00d20f218543c99e9ff6badbe66f0fe5b03a878ec9fb8b52f5bb6
|
data/.gitignore
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
## capistrano-typo3 0.2.1
|
4
|
+
* new init tasks and rename setup to init
|
5
|
+
* code cleanup
|
6
|
+
* use new rake-typo3 repository in place of deployTYPO3
|
7
|
+
|
8
|
+
## capistrano-typo3 0.2.0
|
9
|
+
* new official name,
|
10
|
+
* publishing to rubygems
|
11
|
+
* add typo3 db migrations
|
12
|
+
* add pre and post tests
|
13
|
+
* update src after deploy
|
14
|
+
* Removed Manual, for now use README.md
|
15
|
+
|
16
|
+
## captypo3 0.1.6
|
17
|
+
* add db migrate
|
18
|
+
* add always pull deployTYPO3
|
19
|
+
* add rspec task
|
20
|
+
|
21
|
+
## captypo3 0.1.5
|
22
|
+
* add sync & deploy for continuous integration
|
23
|
+
* add content cache flush
|
24
|
+
* initial 6.x compatibility
|
25
|
+
* add stock gitignore
|
26
|
+
* update manual
|
27
|
+
* add upgrade section howto
|
28
|
+
* remove double upgrade task
|
29
|
+
|
30
|
+
## captypo3 0.1.4
|
31
|
+
* new name captypo3
|
32
|
+
* new task git:pending
|
33
|
+
* new task git:pending_since[hash]
|
34
|
+
* new task deploy:last_revision
|
35
|
+
|
36
|
+
## typo3capistrano 0.1.3
|
37
|
+
|
38
|
+
* new tasks setup_fase1
|
39
|
+
* new tasks setup_fase2
|
40
|
+
* new tasks setup_fase3
|
41
|
+
* update Manual.md
|
42
|
+
* lots of fixes
|
43
|
+
|
44
|
+
## typo3capistrano 0.1.2
|
45
|
+
* rename GEM
|
46
|
+
|
47
|
+
## cap3typo3 0.1.1
|
48
|
+
* complete rewrite, let deployTYPO3 do all the work, lean and mean
|
49
|
+
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Pim Snel
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
# Capistrano::Typo3
|
2
|
+
|
3
|
+
**Note: this plugin works only with Capistrano 3.** Please check the capistrano
|
4
|
+
gem version you're using before installing this gem:
|
5
|
+
`$ bundle show | grep capistrano`
|
6
|
+
|
7
|
+
Capistrano deployment tasks for TYPO3 CMS. Incl. TYPO3 versions 4.5.x ... 6.2.x.
|
8
|
+
|
9
|
+
## Compatibility
|
10
|
+
|
11
|
+
The versions below have been tested with capistrano-typo3
|
12
|
+
|
13
|
+
* 4.5.x
|
14
|
+
* 4.6.x
|
15
|
+
* 4.7.x
|
16
|
+
* 6.2.x
|
17
|
+
|
18
|
+
## Configuration
|
19
|
+
|
20
|
+
:keep_git For development environments. If set 1 a kickstart keep the orginal .git directory so changes can be commited.
|
21
|
+
default 0
|
22
|
+
set :keep_git, 1
|
23
|
+
|
24
|
+
## Installation
|
25
|
+
|
26
|
+
Add this line to your application's Gemfile:
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
gem 'capistrano-typo3'
|
30
|
+
```
|
31
|
+
|
32
|
+
And then execute:
|
33
|
+
|
34
|
+
$ bundle
|
35
|
+
|
36
|
+
Or install it yourself as:
|
37
|
+
|
38
|
+
$ gem install capistrano-typo3
|
39
|
+
|
40
|
+
## Usage
|
41
|
+
|
42
|
+
TODO: Write usage instructions here
|
43
|
+
|
44
|
+
## References / inspiration
|
45
|
+
* https://github.com/programmerqeu/capistrano-typo3-cms
|
46
|
+
* http://webdesign.about.com/od/servers/qt/web-servers-and-workflow.htm
|
47
|
+
* https://marketpress.com/2013/deploying-wordpress-with-git-and-capistrano/
|
48
|
+
* http://www.slideshare.net/jsegars/site-development-processes-for-small-teams
|
49
|
+
* http://www.zodiacmedia.co.uk/blog/capistrano-3-tutorial-series-part-2
|
50
|
+
* http://www.slideshare.net/aoemedia/2013-11-typo3-camp-pl
|
51
|
+
* http://stackoverflow.com/questions/9860593/deploying-multiple-applications-into-a-single-tree-with-capistrano-and-git
|
52
|
+
* http://stackoverflow.com/questions/11905360/how-best-to-manage-typo3-installations-using-git
|
53
|
+
|
54
|
+
## Contributing
|
55
|
+
|
56
|
+
1. Fork it ( https://github.com/[my-github-username]/capistrano-typo3/fork )
|
57
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
58
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
59
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
60
|
+
5. Create a new Pull Request
|
61
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'capistrano/typo3/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "capistrano-typo3"
|
8
|
+
spec.version = Capistrano::Typo3::VERSION
|
9
|
+
spec.authors = ["Pim Snel"]
|
10
|
+
spec.email = ["pim@lingewoud.nl"]
|
11
|
+
spec.summary = %q{Capistrano 3 tasks for TYPO3 CMS}
|
12
|
+
spec.description = %q{Capistrano 3 tasks for TYPO3 CMS. Incl. TYPO3 versions 4.5.x ... 6.2.x.}
|
13
|
+
spec.homepage = "https://github.com/mipmip/capistrano-typo3"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# vim: ft=ruby:sts=2:expandtab
|
2
|
+
namespace :deploy do
|
3
|
+
desc "display last revision log line"
|
4
|
+
task :last_revision do
|
5
|
+
on roles(:all) do
|
6
|
+
execute "cd #{fetch(:deploy_to)} && tail -n1 revisions.log"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
after :finishing, 'typo3:after_deploy'
|
11
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# vim: ft=ruby:sts=2:expandtab
|
2
|
+
# -- OVERRIDES
|
3
|
+
# Save this file as lib/capistrano/tasks/git.cap
|
4
|
+
namespace :git do
|
5
|
+
|
6
|
+
desc 'Copy repo to releases'
|
7
|
+
task create_release: :'git:update' do
|
8
|
+
on roles(:all) do
|
9
|
+
with fetch(:git_environmental_variables) do
|
10
|
+
within repo_path do
|
11
|
+
execute :git, :clone, '-b', fetch(:branch), '--recursive', '.', release_path
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "Show last git commit"
|
18
|
+
task :last_commit do
|
19
|
+
on roles(:all) do
|
20
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:git_last_commit"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'pending commits since last release'
|
25
|
+
task :pending do
|
26
|
+
revline=''
|
27
|
+
on roles :all do
|
28
|
+
revline = capture("tail -n1 #{fetch(:deploy_to)}/revisions.log")
|
29
|
+
end
|
30
|
+
githash =revline.split("(at")[1].split(")")[0]
|
31
|
+
|
32
|
+
system("git clone -n #{repo_url} /tmp/cap_pending")
|
33
|
+
print `cd /tmp/cap_pending && git log #{githash}..HEAD`
|
34
|
+
system("rm -Rf /tmp/cap_pending")
|
35
|
+
end
|
36
|
+
|
37
|
+
desc 'pending commits since [commithash]'
|
38
|
+
task :pending_since , :commithash do |t, args|
|
39
|
+
githash = args[:commithash]
|
40
|
+
on roles(:all) do
|
41
|
+
execute "cd #{fetch(:deploy_to)}/current && git log #{githash}..HEAD"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,421 @@
|
|
1
|
+
# vim: ft=ruby:sts=2:expandtab
|
2
|
+
lock '3.1.0'
|
3
|
+
require "PP"
|
4
|
+
|
5
|
+
#-----
|
6
|
+
|
7
|
+
set :keep_git, 0
|
8
|
+
set :relative_current_symlink, 1
|
9
|
+
set :a2restart, "/etc/init.d/apache2 restart"
|
10
|
+
set :a2status, "/etc/init.d/apache2 status"
|
11
|
+
set :skip_pull, 0
|
12
|
+
|
13
|
+
namespace :typo3 do
|
14
|
+
|
15
|
+
namespace :helper do
|
16
|
+
|
17
|
+
# desc "remove deploy_to directory"
|
18
|
+
task :rm_deploy_to do
|
19
|
+
on roles(:all) do
|
20
|
+
execute "rm -Rf #{fetch(:deploy_to)}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
#desc "remove deploy_to directory"
|
25
|
+
task "create_typo3yaml" do
|
26
|
+
|
27
|
+
on roles(:all) do
|
28
|
+
t3yaml = YAML::load_file('/tmp/typo3.yml') #Load
|
29
|
+
|
30
|
+
t3yaml = {}
|
31
|
+
t3yaml['all'] = {}
|
32
|
+
t3yaml['all']['TYPO3_MAIN_VERSION'] = fetch(:t3_main_version)
|
33
|
+
t3yaml['all']['SOURCEFORGE_MIRROR'] = fetch(:t3_sourceforge_mirror)
|
34
|
+
t3yaml['all']['SYNCLIVE'] = {}
|
35
|
+
t3yaml['all']['SYNCLIVE']['SYNCCMDS'] = fetch(:t3_live_sync)['filesync']
|
36
|
+
t3yaml['all']['SYNCLIVE']['SSH_DB_SERVER'] = fetch(:t3_live_sync)['dbsync']['ssh_server']
|
37
|
+
t3yaml['all']['SYNCLIVE']['SSH_DB_USER'] = fetch(:t3_live_sync)['dbsync']['ssh_user']
|
38
|
+
t3yaml['all']['SYNCLIVE']['DB'] = fetch(:t3_live_sync)['dbsync']
|
39
|
+
|
40
|
+
stage = fetch(:stage).to_s
|
41
|
+
|
42
|
+
t3yaml[stage] = {}
|
43
|
+
t3yaml[stage]['DB'] = {}
|
44
|
+
t3yaml[stage]['DB']['dbname'] = fetch(:dbname)
|
45
|
+
t3yaml[stage]['DB']['dbuser'] = fetch(:dbuser)
|
46
|
+
t3yaml[stage]['DB']['dbpass'] = fetch(:dbpass)
|
47
|
+
t3yaml[stage]['DB']['dbhost'] = fetch(:dbhost)
|
48
|
+
|
49
|
+
t3yaml[stage]['SQL_UPDATES'] = fetch(:t3_sql_updates)
|
50
|
+
t3yaml[stage]['TYPO3_CONF_VARS_EXT_EXTCONF'] = fetch(:t3_conf_vars_ext_extconf)
|
51
|
+
t3yaml[stage]['TYPO3_SOURCE_PATCHES'] = fetch(:t3_source_patches)
|
52
|
+
t3yaml[stage]['DISABLE_EXTENSIONS'] = fetch(:t3_disable_extensions)
|
53
|
+
t3yaml[stage]['FILE_SEARCH_REPLACE'] = fetch(:t3_file_search_replace)
|
54
|
+
|
55
|
+
contents = StringIO.new(t3yaml.to_yaml)
|
56
|
+
upload! contents, "#{fetch(:deploy_to)}/typo3.yml"
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
# desc "install deployTYPO3 from github"
|
64
|
+
task :install_rake_typo3 do
|
65
|
+
|
66
|
+
set :skip_pull, 1
|
67
|
+
|
68
|
+
on roles(:all) do
|
69
|
+
execute "git clone https://github.com/Lingewoud/rake-typo3.git #{fetch(:deploy_to)}"
|
70
|
+
#execute "cd #{fetch(:deploy_to)} && git checkout capistrano_version"
|
71
|
+
execute "cd #{fetch(:deploy_to)} && /var/lib/gems/1.8/bin/bundle install"
|
72
|
+
end
|
73
|
+
|
74
|
+
print "rake-typo3 has been installed"
|
75
|
+
end
|
76
|
+
|
77
|
+
# desc "install deployTYPO3 from github"
|
78
|
+
task :pull_rake_typo3 do
|
79
|
+
if(fetch(:skip_pull)==0)
|
80
|
+
|
81
|
+
invoke 'typo3:checkandremove_old_deploytypo3_install_new'
|
82
|
+
on roles(:all) do
|
83
|
+
execute "cd #{fetch(:deploy_to)} && git pull"
|
84
|
+
execute "cd #{fetch(:deploy_to)} && /var/lib/gems/1.8/bin/bundle install"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
set :skip_pull, 1
|
88
|
+
end
|
89
|
+
|
90
|
+
task :checkandremove_old_deploytypo3_install_new do
|
91
|
+
on roles(:all) do
|
92
|
+
remote = capture "cd #{fetch(:deploy_to)} && git remote -v"
|
93
|
+
if remote.include?('deploy')
|
94
|
+
print "removing old repository"
|
95
|
+
execute "cd #{fetch(:deploy_to)} && rm -Rf .bundle config docs lib log spec .gitignore .rspec .travis.yml CHANGELOG.md Gemfile Gemfile.lock README.md Rakefile.rb VERSION .git"
|
96
|
+
execute "git clone https://github.com/Lingewoud/rake-typo3.git #{fetch(:deploy_to)}/.clone"
|
97
|
+
execute "cd #{fetch(:deploy_to)}/.clone && mv ./* ../"
|
98
|
+
execute "cd #{fetch(:deploy_to)}/.clone && mv .bundle .git .gitignore .rspec .travis.yml ../"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
# Empty repository must exist in git remote.
|
104
|
+
# This creates useable fresh skeleton for TYPO3
|
105
|
+
#
|
106
|
+
# From here:
|
107
|
+
# - a new TYPO3 enviroment can be created
|
108
|
+
# - an existing TYPO3 environment can be imported in this module
|
109
|
+
desc "init a initial dev environment"
|
110
|
+
task :init1_empty_dummy do
|
111
|
+
|
112
|
+
invoke 'typo3:helper:rm_deploy_to'
|
113
|
+
invoke 'typo3:install_rake_typo3'
|
114
|
+
invoke 'deploy:check'
|
115
|
+
invoke 'deploy:updating'
|
116
|
+
invoke 'typo3:current_relative_symlink'
|
117
|
+
invoke 'typo3:helper:create_typo3yaml'
|
118
|
+
|
119
|
+
on roles(:all) do
|
120
|
+
execute "cd #{fetch(:deploy_to)} && mkdir -p shared/fileadmin shared/typo3temp shared/uploads"
|
121
|
+
execute "echo '#{fetch(:stage).to_s}' > #{fetch(:deploy_to)}/STAGE"
|
122
|
+
execute "cd #{fetch(:deploy_to)}/current/ && git remote set-url origin #{fetch(:repo_url)}"
|
123
|
+
execute "cd #{fetch(:deploy_to)}/current/ && mkdir -p deploy/patches"
|
124
|
+
execute "cd #{fetch(:deploy_to)}/current/ && touch deploy/patches/.keep"
|
125
|
+
execute "cd #{fetch(:deploy_to)}/current/ && mkdir -p deploy/migrations"
|
126
|
+
execute "cd #{fetch(:deploy_to)}/current/ && touch deploy/migrations/.keep"
|
127
|
+
execute "cd #{fetch(:deploy_to)}/current/ && mkdir -p dummy/typo3conf/ext"
|
128
|
+
execute "cd #{fetch(:deploy_to)}/current/ && touch dummy/typo3conf/ext/index.html"
|
129
|
+
execute "cd #{fetch(:deploy_to)} && cp config/gitignore current/.gitignore"
|
130
|
+
end
|
131
|
+
|
132
|
+
invoke 'typo3:upgrade_source'
|
133
|
+
print "initial environment has been setup"
|
134
|
+
end
|
135
|
+
|
136
|
+
# desc "init step 2: install a fresh TYPO3 in the designated version"
|
137
|
+
task :init2_install_typo3 do
|
138
|
+
print "SORRY NOT YET IMPLEMENTED"
|
139
|
+
end
|
140
|
+
|
141
|
+
desc "init step 2: clone from extisting TYPO3 environment"
|
142
|
+
task :init2_install_typo3 do
|
143
|
+
|
144
|
+
print "\nNOTE: When this task fails most times there is a problem with your ssh authorized public keys\n\n"
|
145
|
+
|
146
|
+
invoke 'typo3:helper:create_typo3yaml'
|
147
|
+
invoke 'typo3:sync_from_production'
|
148
|
+
|
149
|
+
on roles(:all) do
|
150
|
+
|
151
|
+
execute "rsync -v #{fetch(:t3_clone_original)[:ssh_user]}@#{fetch(:t3_clone_original)[:ssh_host]}:#{fetch(:t3_clone_original)[:dummy_root]}/* #{fetch(:deploy_to)}/current/dummy/"
|
152
|
+
execute "rsync -v #{fetch(:t3_clone_original)[:ssh_user]}@#{fetch(:t3_clone_original)[:ssh_host]}:#{fetch(:t3_clone_original)[:dummy_root]}/.* #{fetch(:deploy_to)}/current/dummy/"
|
153
|
+
execute "rsync -av --exclude ext --exclude *.log --exclude temp* #{fetch(:t3_clone_original)[:ssh_user]}@#{fetch(:t3_clone_original)[:ssh_host]}:#{fetch(:t3_clone_original)[:dummy_root]}/typo3conf/ #{fetch(:deploy_to)}/current/dummy/typo3conf/"
|
154
|
+
execute "rsync -avL #{fetch(:t3_clone_original)[:ssh_user]}@#{fetch(:t3_clone_original)[:ssh_host]}:#{fetch(:t3_clone_original)[:dummy_root]}/typo3conf/ext/ #{fetch(:deploy_to)}/current/dummy/typo3conf/ext/"
|
155
|
+
|
156
|
+
#TODO cache problem remove temp* files
|
157
|
+
|
158
|
+
# execute "cd #{fetch(:deploy_to)}/current && find `dummy/typo3conf/ext -name '.git'`"
|
159
|
+
#TODO do git module magic
|
160
|
+
|
161
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:update_localconf_db_credentials"
|
162
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:update_localconf_disable_extensions"
|
163
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:update_localconf_extconf_settings"
|
164
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:run_file_searchreplace_updates"
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
desc "Setup a new production environment. Manually sync content from old production"
|
169
|
+
task :init3_setup_new_stage_no_sync do
|
170
|
+
invoke 'typo3:rm_deploy_to'
|
171
|
+
invoke 'typo3:install_rake_typo3'
|
172
|
+
|
173
|
+
on roles(:all) do
|
174
|
+
execute "cd #{fetch(:deploy_to)} && mkdir -p shared/fileadmin shared/typo3temp shared/uploads"
|
175
|
+
execute "echo '#{fetch(:stage).to_s}' > #{fetch(:deploy_to)}/STAGE"
|
176
|
+
end
|
177
|
+
|
178
|
+
invoke 'typo3:helper:create_typo3yaml'
|
179
|
+
invoke 'deploy'
|
180
|
+
invoke 'typo3:current_relative_symlink'
|
181
|
+
|
182
|
+
invoke 'typo3:upgrade_source'
|
183
|
+
|
184
|
+
print "environment has been setup, you do need to sync from old production"
|
185
|
+
end
|
186
|
+
|
187
|
+
desc "Setup a new staged typo3 environment when a it's already in model"
|
188
|
+
task :init3_setup_new_stage_sync do
|
189
|
+
invoke 'init3_setup_new_stage_no_sync'
|
190
|
+
invoke 'typo3:sync_from_production'
|
191
|
+
end
|
192
|
+
|
193
|
+
desc 'merge with [remote_branch]'
|
194
|
+
task :merge_with , :remotebranch do |t, args|
|
195
|
+
|
196
|
+
invoke 'typo3:helper:create_typo3yaml'
|
197
|
+
invoke 'deploy'
|
198
|
+
|
199
|
+
on roles(:all) do
|
200
|
+
branch = args[:remotebranch]
|
201
|
+
execute "cd #{fetch(:deploy_to)}/current && git remote set-url origin #{fetch(:repo_url)}"
|
202
|
+
execute "cd #{fetch(:deploy_to)}/current && git stash"
|
203
|
+
execute "cd #{fetch(:deploy_to)}/current && git fetch"
|
204
|
+
execute "cd #{fetch(:deploy_to)}/current && git checkout #{branch}"
|
205
|
+
execute "cd #{fetch(:deploy_to)}/current && git checkout master"
|
206
|
+
execute "cd #{fetch(:deploy_to)}/current && git merge --strategy-option ours #{branch}"
|
207
|
+
|
208
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:update_localconf_db_credentials"
|
209
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:update_localconf_disable_extensions"
|
210
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:update_localconf_extconf_settings"
|
211
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:run_file_searchreplace_updates"
|
212
|
+
|
213
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:flush_config_cache"
|
214
|
+
execute 'sudo', fetch(:a2restart)
|
215
|
+
end
|
216
|
+
|
217
|
+
invoke 'typo3:db_migrate'
|
218
|
+
invoke 'typo3:run_migrations'
|
219
|
+
#invoke 'typo3:after_deploy' not working, why?
|
220
|
+
invoke 'typo3:current_relative_symlink'
|
221
|
+
end
|
222
|
+
|
223
|
+
desc "sync db & files and then deploy. Typically for Continuous Integration"
|
224
|
+
task :sync_n_deploy do
|
225
|
+
|
226
|
+
invoke 'typo3:helper:create_typo3yaml'
|
227
|
+
invoke 'typo3:sync_from_production'
|
228
|
+
invoke 'deploy'
|
229
|
+
invoke 'typo3:flush_content_cache'
|
230
|
+
end
|
231
|
+
|
232
|
+
# desc "Run site presuite rspecs"
|
233
|
+
task :rspec_pre_suite do
|
234
|
+
on roles(:all) do
|
235
|
+
execute "cd #{fetch(:deploy_to)} && rake env:rspec_pre_suite"
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
# desc "Run site post browser rspecs"
|
240
|
+
task :rspec_post_browser do
|
241
|
+
on roles(:all) do
|
242
|
+
execute "cd #{fetch(:deploy_to)} && rake env:rspec_post_browser"
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
246
|
+
# desc "flush content cache"
|
247
|
+
task :flush_content_cache do
|
248
|
+
on roles(:all) do
|
249
|
+
execute "cd #{fetch(:deploy_to)} && rake env:truncate_cache_tables"
|
250
|
+
execute "cd #{fetch(:deploy_to)} && rake env:truncate_session_tables"
|
251
|
+
#execute "cd #{fetch(:deploy_to)} && rake env:flush_cache"
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
desc "Make db & files in env. identical to production"
|
256
|
+
task :sync_from_production do
|
257
|
+
|
258
|
+
invoke 'typo3:helper:create_typo3yaml'
|
259
|
+
invoke 'typo3:pull_rake_typo3'
|
260
|
+
|
261
|
+
on roles(:devtest,:syncfiles) do
|
262
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:sync_files_from_production"
|
263
|
+
end
|
264
|
+
on roles(:devtest,:syncdb) do
|
265
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:sync_db_from_production"
|
266
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:run_sql_updates"
|
267
|
+
|
268
|
+
print "environment has been synced"
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
272
|
+
desc "Upgrade source in env to latest minor version"
|
273
|
+
task :upgrade_source do
|
274
|
+
|
275
|
+
invoke 'typo3:helper:create_typo3yaml'
|
276
|
+
invoke 'typo3:pull_rake_typo3'
|
277
|
+
|
278
|
+
on roles(:all) do
|
279
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:update_typo3_source"
|
280
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:link_source"
|
281
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:link_source_insides"
|
282
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:link_shared_dirs"
|
283
|
+
end
|
284
|
+
|
285
|
+
print "\nsource has been upgraded"
|
286
|
+
print "\n\nWARNING: YOU MUST RUN THE UPGRADE SCRIPTS IN BACKEND\n\n"
|
287
|
+
end
|
288
|
+
|
289
|
+
desc "Show environment information"
|
290
|
+
task :info do
|
291
|
+
on roles(:all) do
|
292
|
+
execute "cd #{fetch(:deploy_to)} && rake env:info"
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
296
|
+
## Migrate typo3 schemas, e.g. after version update
|
297
|
+
#desc "Migrate database (typo3 EM migrations)"
|
298
|
+
task :db_migrate do
|
299
|
+
|
300
|
+
invoke 'typo3:helper:create_typo3yaml'
|
301
|
+
invoke 'typo3:pull_rake_typo3'
|
302
|
+
|
303
|
+
on roles(:all) do
|
304
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:db_migrate"
|
305
|
+
end
|
306
|
+
end
|
307
|
+
|
308
|
+
## Specific environment migration sql's. E.g. rename all fe-users etc..
|
309
|
+
## migrations should be placed in current/deploy/migrations/
|
310
|
+
#desc "Run migrations (sql migrations)"
|
311
|
+
task :run_migrations do
|
312
|
+
invoke 'typo3:helper:create_typo3yaml'
|
313
|
+
invoke 'typo3:pull_rake_typo3'
|
314
|
+
|
315
|
+
on roles(:all) do
|
316
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:run_migrations"
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
# when not in deploy latest ls releases/ -1 | sort -r | head -n 1
|
321
|
+
task :current_relative_symlink do
|
322
|
+
on roles(:all) do
|
323
|
+
execute "rm -f #{current_path}"
|
324
|
+
execute "cd #{fetch(:deploy_to)} && ln -s releases/#{File.basename release_path} current"
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
task :after_deploy do
|
329
|
+
invoke 'typo3:helper:create_typo3yaml'
|
330
|
+
invoke 'typo3:pull_rake_typo3'
|
331
|
+
|
332
|
+
on roles(:all) do
|
333
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:update_localconf_db_credentials"
|
334
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:update_localconf_disable_extensions"
|
335
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:update_localconf_extconf_settings"
|
336
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:run_file_searchreplace_updates"
|
337
|
+
execute "cd #{fetch(:deploy_to)} && rake cap:flush_config_cache"
|
338
|
+
end
|
339
|
+
|
340
|
+
invoke 'typo3:upgrade_source'
|
341
|
+
invoke 'typo3:db_migrate'
|
342
|
+
invoke 'typo3:run_migrations'
|
343
|
+
|
344
|
+
on roles(:all) do
|
345
|
+
execute 'sudo', fetch(:a2restart)
|
346
|
+
end
|
347
|
+
|
348
|
+
invoke 'typo3:current_relative_symlink'
|
349
|
+
end
|
350
|
+
end
|
351
|
+
|
352
|
+
namespace :test do
|
353
|
+
task :test_pre_setup do
|
354
|
+
on roles(:all) do
|
355
|
+
# test apache restart is allowed
|
356
|
+
# test ssh access to live server is allowed
|
357
|
+
# test stage is configured in typo3.yml
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
361
|
+
task :test_post_setup do
|
362
|
+
on roles(:all) do
|
363
|
+
# test if dummy index.php is readable, correctly linked
|
364
|
+
# temp cache files are removed
|
365
|
+
end
|
366
|
+
end
|
367
|
+
|
368
|
+
task :test_pre_deploy do
|
369
|
+
#if production test if repo is dirty
|
370
|
+
on roles(:all) do
|
371
|
+
end
|
372
|
+
end
|
373
|
+
task :test_post_deploy do
|
374
|
+
on roles(:all) do
|
375
|
+
#test symlinks
|
376
|
+
#test source version
|
377
|
+
#test database connection
|
378
|
+
#test chmods
|
379
|
+
#test chowns
|
380
|
+
end
|
381
|
+
end
|
382
|
+
|
383
|
+
namespace :depreciated do
|
384
|
+
|
385
|
+
#desc "Setup a new staged typo3 environment for the first time"
|
386
|
+
task :setup_fase1 do
|
387
|
+
on roles(:all) do
|
388
|
+
execute "rm -Rf #{fetch(:deploy_to)}"
|
389
|
+
end
|
390
|
+
|
391
|
+
invoke 'typo3:install_rake_typo3'
|
392
|
+
|
393
|
+
#create releases and shared
|
394
|
+
invoke 'deploy:check'
|
395
|
+
invoke 'deploy:updating'
|
396
|
+
invoke 'typo3:current_relative_symlink'
|
397
|
+
|
398
|
+
on roles(:all) do
|
399
|
+
execute "cd #{fetch(:deploy_to)} && mkdir -p shared/fileadmin shared/typo3temp shared/uploads"
|
400
|
+
execute "echo '#{fetch(:stage).to_s}' > #{fetch(:deploy_to)}/STAGE"
|
401
|
+
end
|
402
|
+
|
403
|
+
#if keep_git
|
404
|
+
on roles(:all) do
|
405
|
+
execute "cd #{fetch(:deploy_to)}/current/ && git remote set-url origin #{fetch(:repo_url)}"
|
406
|
+
execute "cd #{fetch(:deploy_to)}/current/ && mkdir -p deploy/patches"
|
407
|
+
execute "cd #{fetch(:deploy_to)}/current/ && mkdir -p deploy/migrations"
|
408
|
+
execute "cd #{fetch(:deploy_to)} && cp config/typo3.sample.yml current/deploy/typo3.yml"
|
409
|
+
execute "cd #{fetch(:deploy_to)} && cp config/gitignore current/.gitignore"
|
410
|
+
end
|
411
|
+
|
412
|
+
invoke 'typo3:upgrade_source'
|
413
|
+
|
414
|
+
print "\ninitial environment has been setup to fase 1. edit current/deploy/typo3.yml\n"
|
415
|
+
print "\nand populate current with the dummy\n"
|
416
|
+
end
|
417
|
+
end
|
418
|
+
|
419
|
+
|
420
|
+
|
421
|
+
end
|
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: capistrano-typo3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Pim Snel
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-11-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
description: Capistrano 3 tasks for TYPO3 CMS. Incl. TYPO3 versions 4.5.x ... 6.2.x.
|
42
|
+
email:
|
43
|
+
- pim@lingewoud.nl
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- .gitignore
|
49
|
+
- CHANGELOG.md
|
50
|
+
- Gemfile
|
51
|
+
- LICENSE.txt
|
52
|
+
- README.md
|
53
|
+
- Rakefile
|
54
|
+
- capistrano-typo3.gemspec
|
55
|
+
- lib/capistrano/tasks/deploy.cap
|
56
|
+
- lib/capistrano/tasks/git.cap
|
57
|
+
- lib/capistrano/tasks/typo3.cap
|
58
|
+
- lib/capistrano/typo3.rb
|
59
|
+
- lib/capistrano/typo3/version.rb
|
60
|
+
homepage: https://github.com/mipmip/capistrano-typo3
|
61
|
+
licenses:
|
62
|
+
- MIT
|
63
|
+
metadata: {}
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options: []
|
66
|
+
require_paths:
|
67
|
+
- lib
|
68
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
requirements: []
|
79
|
+
rubyforge_project:
|
80
|
+
rubygems_version: 2.4.2
|
81
|
+
signing_key:
|
82
|
+
specification_version: 4
|
83
|
+
summary: Capistrano 3 tasks for TYPO3 CMS
|
84
|
+
test_files: []
|