Class: Lita::Handlers::EyDeploy

Inherits:
EyBase
  • Object
show all
Defined in:
lib/lita/handlers/ey_deploy.rb

Instance Method Summary collapse

Instance Method Details

#deploy(response) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/lita/handlers/ey_deploy.rb', line 21

def deploy(response)
  app = response.matches[0][0]
  env = response.matches[0][1]

  response.reply "Deploy what to where?" and return unless valid_app?(app) && valid_env?(app, env)

  git_ref = (response.matches[0][2] || default_branch_for(app, env)).strip

  do_if_can_access(response, app, env) do
    response.reply "Deploying #{app} git ref '#{git_ref}' to #{env}"

    cmd = ey_deploy_cmd(app, env, git_ref)
    Lita.logger.info cmd
    deploy_result = `#{cmd}`

    feedback_msg = deploy_result.include?(ey_failure_msg) ? failed_msg : success_msg
    response.reply feedback_msg
  end
end

#disable_maintenance(response) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/lita/handlers/ey_deploy.rb', line 75

def disable_maintenance(response)
  app = response.matches[0][0].strip
  env = response.matches[0][1].strip

  response.reply "Disable maintenance page where?" and return unless valid_app?(app) && valid_env?(app, env)

  do_if_can_access(response, app, env) do
    response.reply "Disabling maintenance page at #{app} #{env}..."

    cmd = ey_maintenance_on_cmd(app, env)
    Lita.logger.info cmd
    result = `#{cmd}`

    response.reply result
  end
end

#enable_maintenance(response) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/lita/handlers/ey_deploy.rb', line 58

def enable_maintenance(response)
  app = response.matches[0][0].strip
  env = response.matches[0][1].strip

  response.reply "Place maintenance page where?" and return unless valid_app?(app) && valid_env?(app, env)

  do_if_can_access(response, app, env) do
    response.reply "Placing maintenance page at #{app} #{env}..."

    cmd = ey_maintenance_on_cmd(app, env)
    Lita.logger.info cmd
    result = `#{cmd}`

    response.reply result
  end
end

#rollback(response) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/lita/handlers/ey_deploy.rb', line 41

def rollback(response)
  app = response.matches[0][0].strip
  env = response.matches[0][1].strip

  response.reply "Rollback what?" and return unless valid_app?(app) && valid_env?(app, env)

  do_if_can_access(response, app, env) do
    response.reply "Rolling back #{app} #{env} to previous version..."

    cmd = ey_rollback_cmd(app, env)
    Lita.logger.info cmd
    result = `#{cmd}`

    response.reply result
  end
end