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!

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.

2 Likes

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.

1 Like