heroku_san_sanity 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -3,7 +3,9 @@ heroku_san_sanity
3
3
 
4
4
  heroku_san_sanity is a sibling task to the heroku_san gem
5
5
 
6
- If you are deploying with Heroku_san, Heroku_san_sanity will sense check all production deploys with an 'Are you sure?' message
6
+ If you are deploying with Heroku_san, Heroku_san_sanity will sense check all production deploys with an 'Are you sure?' message.
7
+
8
+ heroku_san_sanity now also checks the status of the heroku platform prior to a deploy, and asks if you want to continue should the platform not be reported as healthy.
7
9
 
8
10
  Installation
9
11
  ------------
@@ -17,7 +17,8 @@ Gem::Specification.new do |s|
17
17
  s.add_dependency "heroku", ">= 1.17.10"
18
18
  s.add_dependency "heroku_san", ">= 1.0.0"
19
19
  s.add_dependency "highline", ">= 1.6.1"
20
-
20
+ s.add_dependency "hpricot", ">= 0.8.4"
21
+
21
22
  s.files = `git ls-files`.split("\n")
22
23
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
24
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
@@ -1,4 +1,5 @@
1
1
  require "highline/import"
2
+ require 'hpricot'
2
3
 
3
4
  @exec = false
4
5
 
@@ -11,8 +12,27 @@ def check_answer(answer, name)
11
12
  true
12
13
  end
13
14
 
15
+ def check_heroku_integrity(name)
16
+ doc = Hpricot(open("http://status.heroku.com/"))
17
+ incident = doc.search("li.yellow, li.red")
18
+ if incident.present?
19
+ puts ""
20
+ puts " ! WARNING: Potentially Unstable Deploy"
21
+ puts " ! "
22
+ puts " ! Heroku is experiencing some issues at present as detailed"
23
+ puts " ! on the heroku status blog http://status.heroku.com"
24
+ puts ""
25
+ puts " ! To continue, type \"OK\""
26
+ puts ""
27
+ answer = ask("> ", String)
28
+ check_answer(answer.downcase, "ok")
29
+ end
30
+ end
31
+
14
32
  desc 'Force sanity check on production deploys'
15
33
  task :before_deploy => :environment do |name, t, args|
34
+ return false if !check_heroku_integrity(name)
35
+
16
36
  each_heroku_app do |name, app, repo|
17
37
  if name == 'production' && @exec == false
18
38
  puts ""
@@ -1,3 +1,3 @@
1
1
  module HerokuSanSanity
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heroku_san_sanity
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
5
4
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 1
10
- version: 0.0.1
5
+ version: 0.0.2
11
6
  platform: ruby
12
7
  authors:
13
8
  - Neil Middleton
@@ -15,7 +10,7 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-03-07 00:00:00 +00:00
13
+ date: 2011-07-18 00:00:00 +01:00
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
@@ -26,11 +21,6 @@ dependencies:
26
21
  requirements:
27
22
  - - ">="
28
23
  - !ruby/object:Gem::Version
29
- hash: 71
30
- segments:
31
- - 1
32
- - 17
33
- - 10
34
24
  version: 1.17.10
35
25
  type: :runtime
36
26
  version_requirements: *id001
@@ -42,11 +32,6 @@ dependencies:
42
32
  requirements:
43
33
  - - ">="
44
34
  - !ruby/object:Gem::Version
45
- hash: 23
46
- segments:
47
- - 1
48
- - 0
49
- - 0
50
35
  version: 1.0.0
51
36
  type: :runtime
52
37
  version_requirements: *id002
@@ -58,14 +43,20 @@ dependencies:
58
43
  requirements:
59
44
  - - ">="
60
45
  - !ruby/object:Gem::Version
61
- hash: 13
62
- segments:
63
- - 1
64
- - 6
65
- - 1
66
46
  version: 1.6.1
67
47
  type: :runtime
68
48
  version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: hpricot
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: 0.8.4
58
+ type: :runtime
59
+ version_requirements: *id004
69
60
  description: Adds a sanity check 'Are you sure?' before deploying to any environment named 'production'
70
61
  email:
71
62
  - neil.middleton@gmail.com
@@ -100,23 +91,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
100
91
  requirements:
101
92
  - - ">="
102
93
  - !ruby/object:Gem::Version
103
- hash: 3
104
- segments:
105
- - 0
106
94
  version: "0"
107
95
  required_rubygems_version: !ruby/object:Gem::Requirement
108
96
  none: false
109
97
  requirements:
110
98
  - - ">="
111
99
  - !ruby/object:Gem::Version
112
- hash: 3
113
- segments:
114
- - 0
115
100
  version: "0"
116
101
  requirements: []
117
102
 
118
103
  rubyforge_project: heroku_san_sanity
119
- rubygems_version: 1.4.2
104
+ rubygems_version: 1.6.2
120
105
  signing_key:
121
106
  specification_version: 3
122
107
  summary: Sanity check deploys with heroku_san