heroku_san_sanity 0.0.1 → 0.0.2

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.
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