rio517

rio517

Path dependency Causes Github CI to fail - missing .app file

I recently added a local dependency to my project.

{:foobar, path: "path/to/foobar"}

This works fine on the server and locally. However, when trying to compile in Github actions, I get several errors that I’m not sure how to start debugging.

The step from my CI:

      - name: Check warnings
        run: mix compile --warnings-as-errors
==> my_app
Could not compile :foobar, no "mix.exs", "rebar.config" or "Makefile" (pass :compile as an option to customize compilation, set it to "false" to do nothing)
.
.
.
Unchecked dependencies for environment test:
* foobar (./vendor/foobar)
  could not find an app file at "_build/test/lib/live_admin/ebin/foobar.app". This may happen if the dependency was not yet compiled or the dependency indeed has no app file (then you can pass app: false as option)

Using elixir 1.15.7

Thanks in advance for any help!

Marked As Solved

kip

kip

ex_cldr Core Team

I believe this is expected behaviour.

When CI checks out out your repo it’s not going to also checkout your path dependency. As a result, that dependency doesn’t exist in the CI image.

The approach I use is to promote the path dependency to a git branch and use the branch as a dependency - which will then be resolved in all environments.

Also Liked

dimitarvp

dimitarvp

You either have to put the dependency in another repo and give your CI system access to it, or you’ll have to add it directly inside your app.

Last Post!

dimitarvp

dimitarvp

You either have to put the dependency in another repo and give your CI system access to it, or you’ll have to add it directly inside your app.

Where Next?

Popular in Questions Top

vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New

Other popular topics Top

jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New