Hi y'all.
I set out to boot my Phoenix app on Travis-CI to run some cypress tests against it. Since it boots my `dev` env as normally (mix phx.server) I noticed that code-reloading and asset building was on.
It's not a massive issue, but I wanted to turn it off on ci.
So I went ahead and created a config file just for CI like so:
use Mix.Config
import_config "dev.exs"
config :advisor, AdvisorWeb.Endpoint,
code_reloader: false,
watchers: []
config :advisor, AdvisorWeb.Endpoint,
live_reload: []
To my surprise, the watchers for asset building and code-reloading were still on.
Given that I import the dev.exs config, I thought I'd just be overwriting the watches and live_reload settings.
But, keyword lists are deep-merged with the config macro.
This is fine as long as you want to add things.
In my case, I wanted to explicitly remove things.
I resorted to duplicating my `dev.exs` instead of importing it.
I could imagine something like a specific keyword like :none or false to be used to let empty lists take priority when merging.
My config would then look something like this (or with false).
use Mix.Config
import_config "dev.exs"
config :advisor, AdvisorWeb.Endpoint,
code_reloader: false,
watchers: :none
config :advisor, AdvisorWeb.Endpoint,
live_reload: :none
I imagine merging multiple things could become a night-mare though?
Let me know what you think or if there are other solutions to my issue.
Cheers,
Felipe