为什么用户jenkins在Jenkins界面中运行capistrano脚本时会抛出错误但是命令行中的用户root不会?

时间:2016-09-29 17:23:37

标签: jenkins capistrano

我对詹金斯和卡皮斯特拉诺很新。我发现现有的文档在Jenkins中运行Capistrano时非常分散。话虽如此,我已经成功安装了Jenkins和Capistrano。我创建了这些项目并可以触发脚本。对于我的初始测试,我只是运行默认的部署脚本,因为它是开箱即用的。

当我通过Jenkins触发器运行以下内容时:

#!/bin/bash -exl

export PATH=$PATH:/usr/local/bin
cap staging deploy

我收到错误(为简洁而编辑):

+ USER=jenkins
+ LOGNAME=jenkins

Stage not set, please call something such as `cap production deploy`, where production is a stage you have defined.

*Nothing in /capistrano.log

当我从命令行在脚本中运行相同的命令时,我得到:

+ USER=root
+ LOGNAME=root

*capistrano.log file:
---
  INFO START 2016-09-29 16:50:03 +0000 cap staging deploy
  INFO ------------------------------------------------------------------------
---

似乎jenkins用户配置不正确并且缺少某些依赖项,但我无法找到解决方法。

帮助表示赞赏。如果有人知道将Capistrano与Jenkins一起使用的良好资源,这也将是一个巨大的帮助。

1 个答案:

答案 0 :(得分:0)

原来问题是我的工作区目录名称中有一个空格。由于某种原因,在Jenkins脚本中没有正确解释目录名,但在我从命令行运行的bash脚本中没有问题。感谢我的好友斯科特想出那一个!