Clean / Reproducible Builds

This week I upgraded from Phoenix 1.3 to 1.4.

Everything was compiling well on my machine afterwards.

This is the script I use to run a dev server

mix local.rebar --force;
mix local.hex --force;
mix clean;
mix deps.get --all;
mix compile;
iex --name api@127.0.0.1 -S mix phx.server;

I have a similar script which runs tests locally.

But after doing mix deps.clean --all and trying to recompile, I had a problem.

I have a custom Ecto type dependency → GitHub - OvermindDL1/ecto_interval: Interval type for Ecto, currently only implemented for PostgreSQL, other database PR's are welcome. · GitHub Which seems to have dependency problems. I have to figure that out.

(Turns out, just needed to update it to the latest version)

But my question is, what do you do to ensure your builds are reproducible and you catch problems like this?

I am sure I am committing a common mistake, perhaps it would be a good idea to somehow simplify the required mix commands…