kstrano 0.0.29 → 0.0.30
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/kumafy +7 -1
- data/lib/kstrano.rb +102 -76
- metadata +7 -39
data/bin/kumafy
CHANGED
@@ -16,7 +16,9 @@ STAGING_GIST = "https://raw.github.com/Kunstmaan/kStrano/master/config/staging.r
|
|
16
16
|
BUILD_GIST = "https://raw.github.com/Kunstmaan/kStrano/master/config/build.xml"
|
17
17
|
PHPCS_GIST = "https://raw.github.com/Kunstmaan/kStrano/master/config/phpcs.xml"
|
18
18
|
PHPMD_GIST = "https://raw.github.com/Kunstmaan/kStrano/master/config/phpmd.xml"
|
19
|
+
PHPDOX_GIST = "https://raw.github.com/Kunstmaan/kStrano/master/config/phpdox.xml"
|
19
20
|
PHPUNIT_GIST = "https://raw.github.com/Kunstmaan/kStrano/master/config/phpunit.xml.dist"
|
21
|
+
APPTEST_GIST = "https://raw.github.com/Kunstmaan/kStrano/master/config/app_test.php"
|
20
22
|
|
21
23
|
def update_capfile(base, context, force)
|
22
24
|
file = File.join(base, "Capfile")
|
@@ -129,12 +131,16 @@ def update_jenkins_config(ui, base, context, force)
|
|
129
131
|
end
|
130
132
|
|
131
133
|
build_dir = File.join(base, "build")
|
134
|
+
web_dir = File.join(base, "web")
|
132
135
|
Dir.mkdir(build_dir) unless File.directory?(build_dir)
|
136
|
+
Dir.mkdir(web_dir) unless File.directory?(web_dir)
|
133
137
|
|
134
138
|
{
|
135
139
|
File.join(build_dir, "phpcs.xml") => PHPCS_GIST,
|
136
140
|
File.join(build_dir, "phpmd.xml") => PHPMD_GIST,
|
137
|
-
File.join(
|
141
|
+
File.join(build_dir, "phpdox.xml") => PHPDOX_GIST,
|
142
|
+
File.join(base, "app", "phpunit.xml.dist") => PHPUNIT_GIST,
|
143
|
+
File.join(web_dir, "app_test.php") => APPTEST_GIST
|
138
144
|
}.each do |file, gist|
|
139
145
|
write = true
|
140
146
|
|
data/lib/kstrano.rb
CHANGED
@@ -1,9 +1,20 @@
|
|
1
1
|
# PHP binary to execute
|
2
2
|
set :php_bin, "php"
|
3
|
-
|
4
|
-
set :
|
3
|
+
|
4
|
+
set :copy_vendors, true
|
5
5
|
|
6
6
|
set :force_schema, false
|
7
|
+
set :force_migrations, false
|
8
|
+
|
9
|
+
set :webserver_user, "www-data"
|
10
|
+
set :permission_method, :acl
|
11
|
+
|
12
|
+
set :dump_assetic_assets, true
|
13
|
+
set :interactive_mode, true
|
14
|
+
set :clear_controllers, false # set this by default to false, because it's quiet dangerous for existing projects. You need to make sure it doesn't delete your app.php
|
15
|
+
|
16
|
+
# http://getcomposer.org/doc/03-cli.md
|
17
|
+
set :composer_options, "--no-scripts --verbose --prefer-dist --optimize-autoloader"
|
7
18
|
|
8
19
|
require "#{File.dirname(__FILE__)}/helpers/git_helper.rb"
|
9
20
|
require "#{File.dirname(__FILE__)}/helpers/kuma_helper.rb"
|
@@ -12,42 +23,56 @@ require 'etc'
|
|
12
23
|
|
13
24
|
namespace :kuma do
|
14
25
|
|
15
|
-
|
16
|
-
task :fixcron do
|
17
|
-
sudo "sh -c 'if [ -f /opt/kDeploy/tools/fixcron.py ] ; then cd /opt/kDeploy/tools/; python fixcron.py #{application}; fi'"
|
18
|
-
end
|
26
|
+
namespace :ssh_socket do
|
19
27
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
28
|
+
task :fix do
|
29
|
+
sudo "chmod 777 -R `dirname $SSH_AUTH_SOCK`"
|
30
|
+
end
|
24
31
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
32
|
+
task :unfix do
|
33
|
+
sudo "chmod 775 -R `dirname $SSH_AUTH_SOCK`"
|
34
|
+
end
|
29
35
|
|
30
|
-
desc "Make the SSH Authentication socket reachable for project user"
|
31
|
-
task :unfix_ssh_socket do
|
32
|
-
sudo "chmod 775 -R `dirname $SSH_AUTH_SOCK`"
|
33
36
|
end
|
34
37
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
+
namespace :fix do
|
39
|
+
|
40
|
+
desc "Run fixcron for the current project"
|
41
|
+
task :cron do
|
42
|
+
sudo "sh -c 'if [ -f /opt/kDeploy/tools/fixcron.py ] ; then cd /opt/kDeploy/tools/; python fixcron.py #{application}; fi'"
|
43
|
+
end
|
44
|
+
|
45
|
+
desc "Run fixperms for the current project"
|
46
|
+
task :perms do
|
47
|
+
sudo "sh -c 'if [ -f /opt/kDeploy/tools/fixperms.py ] ; then cd /opt/kDeploy/tools/; python fixperms.py #{application}; fi'"
|
48
|
+
end
|
49
|
+
|
38
50
|
end
|
39
51
|
|
40
|
-
|
41
|
-
|
42
|
-
|
52
|
+
namespace :fpm do
|
53
|
+
|
54
|
+
desc "Reload PHP5 fpm"
|
55
|
+
task :reload do
|
56
|
+
sudo "/etc/init.d/php5-fpm reload"
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "Restart PHP5 fpm"
|
60
|
+
task :restart do
|
61
|
+
sudo "/etc/init.d/php5-fpm restart"
|
62
|
+
end
|
63
|
+
|
43
64
|
end
|
44
65
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
66
|
+
namespace :apc do
|
67
|
+
|
68
|
+
desc "Clear the APC cache"
|
69
|
+
task :clear do
|
70
|
+
serverproject = domain.split('.')[0]
|
71
|
+
sudo "sh -c 'curl https://raw.github.com/gist/3987685/ > /home/projects/#{serverproject}/site/apcclear.php'"
|
72
|
+
sudo "chmod 777 /home/projects/#{serverproject}/site/apcclear.php"
|
73
|
+
sudo "curl http://#{domain}/apcclear.php"
|
74
|
+
end
|
75
|
+
|
51
76
|
end
|
52
77
|
|
53
78
|
end
|
@@ -55,65 +80,69 @@ end
|
|
55
80
|
namespace :deploy do
|
56
81
|
|
57
82
|
task :create_symlink, :except => { :no_release => true } do
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
end
|
83
|
+
on_rollback do
|
84
|
+
if previous_release
|
85
|
+
try_sudo "ln -sf #{previous_release} #{current_path}; true"
|
86
|
+
else
|
87
|
+
logger.important "no previous release to rollback to, rollback of symlink skipped"
|
64
88
|
end
|
65
|
-
try_sudo "ln -sfT #{latest_release} #{current_path}"
|
66
89
|
end
|
90
|
+
try_sudo "ln -sfT #{latest_release} #{current_path}"
|
91
|
+
end
|
67
92
|
|
68
|
-
|
93
|
+
desc "Deploy and run pending migrations"
|
94
|
+
task :migrations, :roles => :app, :except => { :no_release => true }, :only => { :primary => true } do
|
95
|
+
set :force_migrations, true
|
96
|
+
deploy.update
|
97
|
+
deploy.restart
|
98
|
+
end
|
69
99
|
|
70
|
-
namespace :
|
100
|
+
namespace :schema do
|
101
|
+
|
102
|
+
desc "Deploy and update the schema"
|
103
|
+
task :update, :roles => :app, :except => { :no_release => true }, :only => { :primary => true } do
|
104
|
+
set :force_schema, true
|
105
|
+
deploy.update
|
106
|
+
deploy.restart
|
107
|
+
end
|
71
108
|
|
72
|
-
desc "Copy vendors from previous release"
|
73
|
-
task :copy_vendors, :except => { :no_release => true } do
|
74
|
-
pretty_print "--> Copying vendors from previous release"
|
75
|
-
try_sudo "mkdir #{release_path}/vendor"
|
76
|
-
try_sudo "sh -c 'if [ -d #{previous_release}/vendor ] ; then cp -a #{previous_release}/vendor/* #{release_path}/vendor/; fi'"
|
77
|
-
puts_ok
|
78
109
|
end
|
79
110
|
|
80
|
-
|
81
|
-
namespace :schema do
|
111
|
+
end
|
82
112
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
113
|
+
# make it possible to run schema:update and migrations:migrate at the right place in the flow
|
114
|
+
after "symfony:bootstrap:build" do
|
115
|
+
if model_manager == "doctrine"
|
116
|
+
if force_schema
|
117
|
+
symfony.doctrine.schema.update
|
118
|
+
end
|
89
119
|
|
120
|
+
if force_migrations
|
121
|
+
symfony.doctrine.migrations.migrate
|
90
122
|
end
|
91
123
|
end
|
92
|
-
|
93
124
|
end
|
94
125
|
|
95
|
-
before "symfony:vendors:install", "symfony:copy_vendors" # Symfony2 2.0.x
|
96
|
-
before "symfony:composer:install", "symfony:copy_vendors" # Symfony2 2.1
|
97
|
-
before "symfony:composer:update", "symfony:copy_vendors" # Symfony2 2.1
|
98
|
-
|
99
126
|
# Fix the SSH socket so that it's reachable for the project user, this is needed to pass your local ssh keys to github
|
100
|
-
before "symfony:vendors:install", "kuma:
|
101
|
-
before "symfony:vendors:reinstall", "kuma:
|
102
|
-
before "symfony:vendors:upgrade", "kuma:
|
103
|
-
before "symfony:composer:update", "kuma:
|
104
|
-
before "symfony:composer:install", "kuma:
|
105
|
-
after "symfony:vendors:install", "kuma:
|
106
|
-
after "symfony:vendors:reinstall", "kuma:
|
107
|
-
after "symfony:vendors:upgrade", "kuma:
|
108
|
-
after "symfony:composer:update", "kuma:
|
109
|
-
after "symfony:composer:install", "kuma:
|
110
|
-
|
111
|
-
# ask to update the schema
|
112
|
-
after "symfony:bootstrap:build", "symfony:doctrine:schema:update"
|
127
|
+
before "symfony:vendors:install", "kuma:ssh_socket:fix"
|
128
|
+
before "symfony:vendors:reinstall", "kuma:ssh_socket:fix"
|
129
|
+
before "symfony:vendors:upgrade", "kuma:ssh_socket:fix"
|
130
|
+
before "symfony:composer:update", "kuma:ssh_socket:fix"
|
131
|
+
before "symfony:composer:install", "kuma:ssh_socket:fix"
|
132
|
+
after "symfony:vendors:install", "kuma:ssh_socket:unfix"
|
133
|
+
after "symfony:vendors:reinstall", "kuma:ssh_socket:unfix"
|
134
|
+
after "symfony:vendors:upgrade", "kuma:ssh_socket:unfix"
|
135
|
+
after "symfony:composer:update", "kuma:ssh_socket:unfix"
|
136
|
+
after "symfony:composer:install", "kuma:ssh_socket:unfix"
|
113
137
|
|
114
138
|
# clear the cache before the warmup
|
115
139
|
before "symfony:cache:warmup", "symfony:cache:clear"
|
116
140
|
|
141
|
+
# set the right permissions on the vendor folder ...
|
142
|
+
after "symfony:composer:copy_vendors" do
|
143
|
+
sudo "chown -R #{application}:#{application} #{latest_release}/vendor"
|
144
|
+
end
|
145
|
+
|
117
146
|
# Before update_code:
|
118
147
|
## Make the cached_copy readable for the current user
|
119
148
|
before "deploy:update_code" do
|
@@ -138,8 +167,8 @@ before "deploy:finalize_update" do
|
|
138
167
|
end
|
139
168
|
|
140
169
|
after "deploy:finalize_update" do
|
141
|
-
kuma.
|
142
|
-
kuma.
|
170
|
+
kuma.fpm.reload
|
171
|
+
kuma.apc.clear
|
143
172
|
end
|
144
173
|
|
145
174
|
before :deploy do
|
@@ -147,10 +176,7 @@ before :deploy do
|
|
147
176
|
%x(ssh-add)
|
148
177
|
end
|
149
178
|
|
150
|
-
# After deploy:
|
151
|
-
## Notify the people on campfire of this deploy
|
152
|
-
## Notify airbrake to add a new deploy to the deploy history
|
153
179
|
after :deploy do
|
154
|
-
kuma
|
180
|
+
kuma.fix.cron
|
155
181
|
deploy::cleanup ## cleanup old releases
|
156
182
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kstrano
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.30
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,16 +9,16 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: capifony
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.
|
21
|
+
version: 2.2.7
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 2.
|
29
|
+
version: 2.2.7
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: capistrano-ext
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -43,38 +43,6 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 1.2.1
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: capistrano_colors
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 0.5.5
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 0.5.5
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: capifony
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - '='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 2.1.15
|
70
|
-
type: :runtime
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - '='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 2.1.15
|
78
46
|
- !ruby/object:Gem::Dependency
|
79
47
|
name: json
|
80
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +91,7 @@ dependencies:
|
|
123
91
|
- - ! '>='
|
124
92
|
- !ruby/object:Gem::Version
|
125
93
|
version: 1.6.11
|
126
|
-
description: Deploying applications
|
94
|
+
description: Deploying symfony2 applications for the kDeploy server setup.
|
127
95
|
email: support@kunstmaan.be
|
128
96
|
executables:
|
129
97
|
- kumafy
|
@@ -160,5 +128,5 @@ rubyforge_project:
|
|
160
128
|
rubygems_version: 1.8.25
|
161
129
|
signing_key:
|
162
130
|
specification_version: 3
|
163
|
-
summary: Deploying applications
|
131
|
+
summary: Deploying symfony2 applications for the kDeploy server setup.
|
164
132
|
test_files: []
|