【问题标题】:mix release crashing with exception混合发布崩溃异常
【发布时间】:2016-08-01 02:05:38
【问题描述】:

设置使用 Travis CI 的新构建/发布流程。当我在测试通过后尝试创建版本时,我遇到了崩溃。

命令:

mix release --verbosity=verbose

错误:

===> Provider successfully run: resolve_release
===> Running provider release
** (exit) an exception was raised:
    ** (MatchError) no match of right hand side value: {:error, :enoent}
        src/rlx_prv_assembler.erl:224: :rlx_prv_assembler.rewrite_app_file/2
        (stdlib) lists.erl:1238: :lists.map/2
        src/ec_plists.erl:753: anonymous fn/3 in :ec_plists.local_runmany/3
    src/ec_plists.erl:900: :ec_plists.handle_error/3
    src/ec_plists.erl:764: :ec_plists.local_runmany/3
    src/rlx_prv_assembler.erl:161: :rlx_prv_assembler.copy_app_directories_to_output/3
    src/rlx_prv_assembler.erl:59: :rlx_prv_assembler.do/1
    src/relx.erl:308: :relx.run_provider/2
    (stdlib) lists.erl:1262: :lists.foldl/3
    src/relx.erl:291: :relx.run_providers_for_actions/2
    lib/exrm/utils.ex:103: ReleaseManager.Utils.relx/5
18:03:06.402 [error] Process #PID<0.13561.0> raised an exception
** (MatchError) no match of right hand side value: {:error, :enoent}
    src/rlx_prv_assembler.erl:224: :rlx_prv_assembler.rewrite_app_file/2
    (stdlib) lists.erl:1238: :lists.map/2
    src/ec_plists.erl:753: anonymous fn/3 in :ec_plists.local_runmany/3    ===> Provider successfully run: resolve_release
===> Running provider release
** (exit) an exception was raised:
    ** (MatchError) no match of right hand side value: {:error, :enoent}
        src/rlx_prv_assembler.erl:224: :rlx_prv_assembler.rewrite_app_file/2
        (stdlib) lists.erl:1238: :lists.map/2
        src/ec_plists.erl:753: anonymous fn/3 in :ec_plists.local_runmany/3
    src/ec_plists.erl:900: :ec_plists.handle_error/3
    src/ec_plists.erl:764: :ec_plists.local_runmany/3
    src/rlx_prv_assembler.erl:161: :rlx_prv_assembler.copy_app_directories_to_output/3
    src/rlx_prv_assembler.erl:59: :rlx_prv_assembler.do/1
    src/relx.erl:308: :relx.run_provider/2
    (stdlib) lists.erl:1262: :lists.foldl/3
    src/relx.erl:291: :relx.run_providers_for_actions/2
    lib/exrm/utils.ex:103: ReleaseManager.Utils.relx/5
18:03:06.402 [error] Process #PID<0.13561.0> raised an exception
** (MatchError) no match of right hand side value: {:error, :enoent}
    src/rlx_prv_assembler.erl:224: :rlx_prv_assembler.rewrite_app_file/2
    (stdlib) lists.erl:1238: :lists.map/2
    src/ec_plists.erl:753: anonymous fn/3 in :ec_plists.local_runmany/3

这是在 Ubuntu 12.02 上运行 Elixir 1.2.2 和 OTP 18.2.1

这可能是安装 OTP 的问题吗?

编辑

mix.exs 的应用程序列表中缺少 exrm。在那里添加它,现在这是错误:

===> Provider successfully run: app_discover
===> Running provider resolve_release
===> Solving Release cymbal-0.0.1
===> Provider (resolve_release) failed with: {error,
                                                 {rlx_prv_release,
                                                  {failed_solve,
                                                   {unreachable_package,
                                                    ssl_verify_fun}}}}
==> ERROR: "Unable to find application ssl_verify_fun. See the debug output for more information."

【问题讨论】:

  • 当我遇到这种问题时,它与库的版本有关。检查你的机器和 CI 机器中的 deps 版本是否相同。
  • @migore 我该如何检查? mix.lock 文件没有改变,所以我想无论它在哪里运行,一切都应该保持不变。它也通过了所有测试,所以我想它正在拉下正确的库。

标签: erlang elixir travis-ci exrm


【解决方案1】:

我正在拉入一个发布 (rel) 目录,以便在部署之前将新版本添加到其中。该目录的格式不正确,因此当exrm 添加新版本时,它找不到它正在寻找的内容并崩溃了。 如果您遇到此问题,请尝试从新的 rel 目录开始,看看是否能解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-16
    • 2016-08-26
    • 2013-08-15
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多