首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用capistrano部署Node.js项目时,如何成功地将部署通知给Airbrake?

在使用capistrano部署Node.js项目时,如何成功地将部署通知给Airbrake?
EN

Stack Overflow用户
提问于 2013-05-07 04:33:40
回答 2查看 844关注 0票数 0

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

Capistrano 2.14.2

我正在使用capistrano部署两个Node.js项目,并且工作得很好(在相同的rvm和gemset Ruby安装中)。但是,我希望将这些部署通知给Airbrake。

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

代码语言:javascript
复制
airbrake.trackDeployment({repo: '...'}); 

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

添加

代码语言:javascript
复制
require 'airbrake/capistrano'

to deploy.rb肯定不起作用。

其他人如何成功地使用

代码语言:javascript
复制
airbrake.trackDeployment
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-18 04:10:26

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

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

代码语言:javascript
复制
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中,添加

代码语言:javascript
复制
require 'airbrake/capistrano'

代码语言:javascript
复制
namespace :airbrake do
  desc "Notify Airbrake of a new deploy."
  task :deploy do
    system "node deploy.js #{current_revision} #{repository} #{stage} #{user}"
  end
end
票数 0
EN

Stack Overflow用户

发布于 2013-05-15 06:39:44

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

代码语言:javascript
复制
deploy.task :notify_airbrake do
    `node notify_airbrake.js`
end

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

代码语言:javascript
复制
deploy.task :notify_airbrake do
    `ssh youserver "node notify_airbrake.js"`
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16406827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档