【问题标题】:Travis-CI "The command "bundle exec rake" exited with 1." + mystery 404 errorTravis-CI“命令“bundle exec rake”以 1 退出。” + 神秘 404 错误
【发布时间】:2015-01-23 21:40:30
【问题描述】:

bundle exec rake本地完美地运行所有测试。然而,Travis CI 一直在用Problem accessing /authentication 炸毁,而没有提供更多信息。这是其中一个失败的构建:https://travis-ci.org/Nase00/Horizon/builds/48094102 对于我的一生,当 Travis 尝试运行 bundle exec rake 时,我无法弄清楚是什么导致了身份验证错误。

这里是项目仓库:https://github.com/Nase00/Horizon

【问题讨论】:

    标签: ruby-on-rails-4 neo4j travis-ci rspec3 neo4j.rb


    【解决方案1】:

    我不确定 Travis 使用的是哪个版本的 Neo4j(更新: 他们使用的是 1.9.4,不支持),但我猜它比 Neo4j.rb 的版本旧一些支持。我是核心维护者之一,构建了 Neo4j 2.2 auth 支持,这让你感到困惑,但我用不同的版本对其进行了测试,回到早期的 2.1 颠覆并没有遇到任何问题。

    最好的做法是根本不使用 Travis 的 Neo4j。相反,将 Travis 配置为安装用于开发和生产的数据库的相同版本。作为奖励,安装 Neo 的 rake 任务也会在 2.2 中禁用身份验证,因此您根本不必处理这个问题。并不是我们反对 auth,而是我们认为 rake 安装和配置任务是开发/测试环境的便利功能,而不是生产环境,所以没有 auth 似乎是一个合理的默认设置。

    查看我们的.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。

    【讨论】:

    • 我也刚刚推送了一个补丁版本 4.0.1 可能会解决这个问题
    • 虽然我突然想到可能是因为neo4j版本早于2.x,gem不支持这个
    • 我刚刚给 Travis 发了电子邮件,看看他们正在运行什么版本。如果它仍然是 1.9,也不会感到惊讶。
    猜你喜欢
    • 1970-01-01
    • 2018-08-31
    • 2015-08-24
    • 2017-05-01
    • 1970-01-01
    • 2012-04-18
    • 2013-08-05
    • 2015-03-17
    • 1970-01-01
    相关资源
    最近更新 更多