ey-deploy 0.2.4.pre2 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010 YOUR NAME
1
+ Copyright (c) 2010 Engine Yard, Inc
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -34,18 +34,15 @@ module EY
34
34
  # task
35
35
  def restart
36
36
  puts "~> Restarting app servers"
37
+ puts "~> restarting app: #{c.latest_release}"
37
38
  roles :app_master, :app, :solo do
38
39
  restart_command = case c.stack
39
40
  when "nginx_unicorn"
40
- "/etc/init.d/unicorn_#{c.app} restart"
41
+ sudo("/etc/init.d/unicorn_#{c.app} deploy")
41
42
  when "nginx_mongrel"
42
- "monit restart all -g #{c.app}"
43
+ sudo("monit restart all -g #{c.app}")
43
44
  when "nginx_passenger", "apache_passenger"
44
- "touch #{c.latest_release}/tmp/restart.txt"
45
- end
46
- if restart_command
47
- puts "~> restarting app: #{c.latest_release}"
48
- sudo("cd #{c.current_path} && INLINEDIR=/tmp #{c.framework_envs} #{restart_command}")
45
+ sudo("touch #{c.latest_release}/tmp/restart.txt")
49
46
  end
50
47
  callback(:after_restart)
51
48
  end
@@ -109,6 +106,7 @@ module EY
109
106
  "ln -nfs #{c.shared_path}/system #{release_to_link}/public/system",
110
107
  "ln -nfs #{c.shared_path}/pids #{release_to_link}/tmp/pids",
111
108
  "ln -nfs #{c.shared_path}/config/database.yml #{release_to_link}/config/database.yml",
109
+ "ln -nfs #{c.shared_path}/config/mongrel_cluster.yml #{release_to_link}/config/mongrel_cluster.yml",
112
110
  "chown -R #{c.user}:#{c.group} #{release_to_link}"
113
111
  ].join(" && ")
114
112
  end
@@ -7,6 +7,7 @@ module EY
7
7
 
8
8
  strategy = klass.new(
9
9
  :repository_cache => c.repository_cache,
10
+ :app => c.app,
10
11
  :repo => c.repo,
11
12
  :branch => c.branch
12
13
  )
@@ -20,6 +21,7 @@ module EY
20
21
 
21
22
  def initialize(opts)
22
23
  @opts = opts
24
+ set_up_git_ssh(@opts[:app])
23
25
  end
24
26
 
25
27
  def fetch
@@ -31,13 +33,42 @@ module EY
31
33
  end
32
34
 
33
35
  def checkout
34
- `#{git} reset --hard origin/#{opts[:branch]}`
36
+ `#{git} reset --hard origin/#{opts[:branch]}`
35
37
  end
36
38
 
37
39
  private
38
40
  def git
39
41
  "git --git-dir #{opts[:repository_cache]}/.git --work-tree #{opts[:repository_cache]}"
40
42
  end
43
+
44
+ def set_up_git_ssh(app)
45
+ # hold references to the tempfiles so they don't get finalized
46
+ # unexpectedly; tempfile finalization unlinks the files
47
+ @git_ssh = Tempfile.open("git-ssh")
48
+ @config = Tempfile.open("git-ssh-config")
49
+
50
+ @config.write "StrictHostKeyChecking no\n"
51
+ @config.write "CheckHostIP no\n"
52
+ @config.write "PasswordAuthentication no\n"
53
+ @config.write "IdentityFile ~/.ssh/#{app}-deploy-key\n"
54
+ @config.chmod(0600)
55
+ @config.close
56
+
57
+ @git_ssh.write "#!/bin/sh\n"
58
+ @git_ssh.write "unset SSH_AUTH_SOCK\n"
59
+ @git_ssh.write "ssh -F \"#{@config.path}\" $*\n"
60
+ @git_ssh.chmod(0700)
61
+ # NB: this file _must_ be closed before git looks at it.
62
+ #
63
+ # Linux won't let you execve a file that's open for writing,
64
+ # so if this file stays open, then git will complain about
65
+ # being unable to exec it and will exit with a message like
66
+ #
67
+ # fatal: exec /tmp/git-ssh20100417-21417-d040rm-0 failed.
68
+ @git_ssh.close
69
+
70
+ ENV['GIT_SSH'] = @git_ssh.path
71
+ end
41
72
  end
42
73
  end
43
74
  end
@@ -1,3 +1,3 @@
1
1
  module EY
2
- VERSION = "0.2.4.pre2"
2
+ VERSION = "0.2.4"
3
3
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ey-deploy
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: true
4
+ prerelease: false
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
8
  - 4
9
- - pre2
10
- version: 0.2.4.pre2
9
+ version: 0.2.4
11
10
  platform: ruby
12
11
  authors:
13
12
  - EY Cloud Team
@@ -15,21 +14,21 @@ autorequire: ey-deploy
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-04-02 00:00:00 -07:00
17
+ date: 2010-04-19 00:00:00 -07:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- name: json
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
21
+ type: :runtime
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
23
  requirements:
26
24
  - - ">="
27
25
  - !ruby/object:Gem::Version
28
26
  segments:
29
27
  - 0
30
28
  version: "0"
31
- type: :runtime
32
- version_requirements: *id001
29
+ requirement: *id001
30
+ name: json
31
+ prerelease: false
33
32
  description: A gem that deploys ruby applications on EY Cloud instances
34
33
  email: cloud@engineyard.com
35
34
  executables:
@@ -108,13 +107,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
107
  version: "0"
109
108
  required_rubygems_version: !ruby/object:Gem::Requirement
110
109
  requirements:
111
- - - ">"
110
+ - - ">="
112
111
  - !ruby/object:Gem::Version
113
112
  segments:
114
- - 1
115
- - 3
116
- - 1
117
- version: 1.3.1
113
+ - 0
114
+ version: "0"
118
115
  requirements: []
119
116
 
120
117
  rubyforge_project: