Ruby on rails 4 特拉维斯CI“;命令";bundle exec rake“;以1退出+;神秘404错误
Ruby on rails 4 特拉维斯CI“;命令";bundle exec rake“;以1退出+;神秘404错误,ruby-on-rails-4,neo4j,travis-ci,rspec3,neo4j.rb,Ruby On Rails 4,Neo4j,Travis Ci,Rspec3,Neo4j.rb,bundle-exec-rake可以在本地完美地运行所有测试。然而,Travis CI在访问/身份验证方面不断出现问题,没有提供更多信息。以下是一个失败的构建:就我个人而言,当Travis试图运行bundle exec rake时,我无法找出是什么导致了身份验证错误 这是项目报告:我不确定Neo4j Travis使用的是什么版本(更新:他们使用1.9.4,不受支持),但我猜它比Neo4j.rb支持的版本稍旧一些。我是核心维护人员之一,构建了Neo4j 2.2 auth支持,这让您感到困惑,但我使
bundle-exec-rake
可以在本地完美地运行所有测试。然而,Travis CI在访问/身份验证方面不断出现问题,没有提供更多信息。以下是一个失败的构建:就我个人而言,当Travis试图运行bundle exec rake
时,我无法找出是什么导致了身份验证错误
这是项目报告:我不确定Neo4j Travis使用的是什么版本(更新:他们使用1.9.4,不受支持),但我猜它比Neo4j.rb支持的版本稍旧一些。我是核心维护人员之一,构建了Neo4j 2.2 auth支持,这让您感到困惑,但我使用不同的版本对其进行了测试,回到了早期的2.1 Subversion,没有遇到任何问题 最好的做法是根本不使用Travis的Neo4j。相反,将Travis配置为安装用于开发和生产的相同版本的数据库。另外,安装Neo的rake任务也会在2.2中禁用auth,因此您根本不需要处理这个问题。并不是我们反对auth,而是我们认为rake安装和配置任务是dev/test环境的方便功能,而不是产品,所以没有auth似乎是合理的默认设置 在我们的
.travis.yml
文件中查看一下我们是如何进行安装的。将解决您的问题的摘要:
script:
- "bundle exec rake neo4j:install['community-2.2.0-M02'] neo4j:start default --trace"
language: ruby
rvm:
- 2.0.0
将community-2.2.0-M02
替换为您想要使用的任何版本。我必须再次检查,但根据我的记忆,我们的版本可以追溯到2.1.2。我为没有在我们的文档中发布此消息而道歉——应该是这样的
我强烈建议将Ruby 2.2.0与Neo4j.rb结合使用。我们在密码查询过程中生成了很多符号,否则这些符号将不会被垃圾收集
编辑更多信息
auth模块要做的第一件事就是检查认证REST端点是否存在。在我测试的所有Neo4j版本中,它都没有给出这样的错误,只是返回了一个空的主体,我们将其解释为auth不受支持或被禁用的标志
后续编辑
Travis支持部门确认了他们提供的Neo4j版本是1.9.4。我刚刚推出了一个补丁版本4.0.1,可能会解决这个问题,但我突然想到,这可能是因为Neo4j版本在2.x之前,而gem不支持该版本。我刚刚通过电子邮件给Travis,查看他们正在运行的版本。如果仍然是1.9,也不会感到惊讶。