Wrong template after release and deploy

For an application which is running for over a year now - it is getting automatically deployed via CI/DC - I have encountered a very strange problem:

I changed the root layout, the html.heex itself with new output. Nothing special, just added some HTML Tags and content.

But after deployment, the root layout is still the old one before I made the changes. I do not find my changes.

I then double checked:

  • Pull latest code and see if the changes are there: check
  • Run it locally to see the changes with mix phx.server: check
  • Deleted cache, used other browsers: check
  • Redeployed the whole app based on main HEAD, where the changes are present: check

Nothing seems to work here. All other features which were merged in the meantime are present after release and deployment.

Is there some caching mechanism for root layouts I am not aware of? Has anyone encountered something similar?

Not sure if anyone can help you if you don’t share how are you deploying?


yes of course:

mix deps.get --only prod
MIX_ENV=prod mix compile

pushd apps/myapp/assets
npm install
npm run deploy
cd ..
mix phx.digest

pushd apps/myapp
MIX_ENV=prod mix release --overwrite

To build the release. And:

FROM elixir:1.13.3-slim AS app


RUN chown nobody:nogroup /app

USER nobody:nogroup
COPY --chown=nobody:nogroup _build/prod/rel/myapp ./

CMD ["bin/myapp", "start"]

to build the docker container.

This procedure did not change lately.

FYI: I was assuming some Docker build cache. But it seems to be related to Gitlab’s Runner cache.

I have to investigate further, as this happened with no other feature I added in the meantime.