Travis-CI "The command "bundle exec rake“以 1 退出。” +神秘的404错误

Travis-CI "The command "bundle exec rake" exited with 1." + mystery 404 error

bundle exec rake 运行s 所有测试都很好本地。然而,特拉维斯 CI 一直在 Problem accessing /authentication 上大发雷霆,却没有提供更多信息。这是失败的构建之一:https://travis-ci.org/Nase00/Horizon/builds/48094102 对于我的一生,当 Travis 尝试 运行 bundle exec rake.

时,我无法弄清楚是什么导致了身份验证错误

这是项目回购:https://github.com/Nase00/Horizon

我不确定 Neo4j Travis 使用的是什么版本(更新: 他们使用 1.9.4,不受支持)但我猜它有点旧比 Neo4j.rb 支持的要多。我是核心维护者之一,并构建了 Neo4j 2.2 身份验证支持,这让你感到厌烦,但我用不同的版本对其进行了测试,回到早期的 2.1 颠覆并且没有遇到任何问题。

最佳做法是完全不使用 Travis 的 Neo4j。相反,配置 Travis 以安装与您用于开发和生产的数据库相同的版本。作为奖励,安装 Neo 的 rake 任务还会在 2.2 中禁用身份验证,因此您根本不必处理它。这并不是说我们反对授权,而是我们认为 rake 安装和配置任务是 dev/test 环境的便利功能,而不是生产环境,因此没有授权似乎是合理的默认设置。

查看我们的 .travis.yml 文件,看看我们是如何进行安装的。 https://github.com/neo4jrb/neo4j/blob/master/.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。我们在 Cypher 查询期间生成大量符号,否则不会被垃圾收集。

编辑以获取更多信息

auth 模块做的第一件事是检查身份验证 REST 端点是否存在。在我测试的所有 Neo4j 版本中,它都没有给出这样的错误,它只是返回一个空体,我们将其解释为 auth 不受支持或禁用的标志。

后期编辑

Travis 支持确认他们提供的 Neo4j 版本是 1.9.4。