I am working on a CI/CD pipeline with a setup that, to simplify, runs mix.compile in one step and mix.release in the next.
Specifically, there are two compilation stages: one for ARM64 and another for AMD architecture. Each of these stages serves as a dependency for its corresponding mix.release step.
However, I believe it is unnecessary to compile for each architecture, as the compilation process generates bytecode for the BEAM VM. That said, I still need to perform a release for each architecture since this step translates bytecode into machine code.
My question is: am I overlooking any important detail?
If you use any dependencies that use NIFs, as those are interacting with native binaries, you most likely need to compile for both targets, which is 90% of projects out there.