【问题标题】:How do I successfully notify Airbrake of a deployment when using capistrano to deploy a Node.js project?使用 capistrano 部署 Node.js 项目时,如何成功通知 Airbrake 部署?
【发布时间】:2013-05-06 20:33:40
【问题描述】:

这是一个有点奇怪的问题。

Capistrano 2.14.2

我正在使用 capistrano 部署几个 Node.js 项目,并且效果很好(在同一个 rvm 和 gemset Ruby 安装中)。但是,我想让 Airbrake 收到这些部署的通知。

使用“airbrake”Node.js 模块,并调用

airbrake.trackDeployment({repo: '...'}); 

有效,但不确定如何在部署时可靠地调用它一次。如果我在我的服务器中调用它,那么每次我的服务器启动时都会通知 Airbrake 一个“部署”,这显然是不正确的。

添加

require 'airbrake/capistrano'

deploy.rb 肯定不行。

别人如何成功使用

airbrake.trackDeployment

?

【问题讨论】:

    标签: node.js deployment capistrano airbrake


    【解决方案1】:

    您可以创建一个在本地(例如在您的机器上)运行的简单 js 文件,将 airbrake 通知为最后的部署任务。例如,您可以使用反引号运算符来运行任务:

    deploy.task :notify_airbrake do
        `node notify_airbrake.js`
    end
    

    如果您没有在本地安装节点,您也可以选择其中一台服务器通过 ssh 运行通知脚本:

    deploy.task :notify_airbrake do
        `ssh youserver "node notify_airbrake.js"`
    end
    

    【讨论】:

    • 是的,这就是我认为我需要做的。如果我在本地进行,我必须将正确的部署目标环境传递给 .js 程序。如果我使用 SSH 命令,那么我应该能够依赖 Node 环境。谢谢!这很简单。享受我的赏金:)。
    【解决方案2】:

    基于这个解决方案http://dwradcliffe.com/2011/09/26/using-airbrake-with-node.html(它显然嵌入在 Rails 应用程序中。),我想出了以下内容,它完全依赖于 Javascript:

    在我的 Node.js 根目录中,创建一个 deploy.js 文件,如下所示:

    var airbrake = require('airbrake').createClient("AIRBRAKE_API_KEY");
    
    var deployment = {rev: process.argv[2],
                      repo: process.argv[3],
                      env: process.argv[4],
                      user: process.argv[5]};
    
    airbrake.trackDeployment(deployment, function(err, params) {
      if (err) {throw err}
      console.log('Tracked deployment of %s to %s', params.rev, params.env);
    })
    

    在 config/deploy.rb 中,添加

    require 'airbrake/capistrano'
    

    和

    namespace :airbrake do
      desc "Notify Airbrake of a new deploy."
      task :deploy do
        system "node deploy.js #{current_revision} #{repository} #{stage} #{user}"
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 2021-06-07
      • 2012-07-19
      相关资源
      最近更新 更多