]> git.immae.eu Git - perso/Immae/Projets/Puppet.git/blobdiff - modules/role/manifests/cryptoportfolio.pp
Add notification for app deployment
[perso/Immae/Projets/Puppet.git] / modules / role / manifests / cryptoportfolio.pp
index 6c760b580c9b0c9327e36a97fe85af492f275e08..67d88fb7b38c97e21e2c0780d1b3788e2a937c7a 100644 (file)
@@ -41,6 +41,8 @@ class role::cryptoportfolio {
   $cf_bot_app_conf = "${cf_home}/bot_config.ini"
   $cf_bot_app_reports = "${cf_home}/bot_reports"
 
+  $cf_webhook_url = lookup("cryptoportfolio::slack_webhook") |$key| { "" }
+
   file { "/var/lib/postgres/data/certs":
     ensure  => directory,
     mode    => "0700",
@@ -179,6 +181,11 @@ class role::cryptoportfolio {
     password   => '!!',
   }
 
+  file { "/usr/local/bin/slack-notify":
+    mode   => "0755",
+    source => "puppet:///modules/role/cryptoportfolio/slack-notify.py",
+  }
+
   $front_version = lookup("cryptoportfolio::front_version") |$key| { {} }
   $front_sha256 = lookup("cryptoportfolio::front_sha256") |$key| { {} }
 
@@ -261,6 +268,15 @@ class role::cryptoportfolio {
         Archive["${cf_home}/trader_${bot_version}.tar.gz"]
       ],
     }
+
+    unless empty($cf_webhook_url) {
+      exec { "bot-slack-notify":
+        refreshonly => true,
+        command     => "/usr/local/bin/slack-notify Trader '${cf_webhook_url}' '${bot_version}'",
+        require     => File["/usr/local/bin/slack-notify"],
+        subscribe   => Exec["py-cryptoportfolio-dependencies"],
+      }
+    }
   }
 
   # FIXME: restore backup
@@ -387,5 +403,14 @@ class role::cryptoportfolio {
       command     => "/usr/bin/make static ENV=${cf_env}",
       refreshonly => true,
     }
+
+    unless empty($cf_webhook_url) {
+      exec { "front-slack-notify":
+        refreshonly => true,
+        command     => "/usr/local/bin/slack-notify Front '${cf_webhook_url}' '${front_version}'",
+        require     => File["/usr/local/bin/slack-notify"],
+        subscribe   => [Exec["go-cryptoportfolio-app"], Exec["web-cryptoportfolio-build"]],
+      }
+    }
   }
 }