Automating Elixir Release Tests in Continuous Integration

230
clicks
Automating Elixir Release Tests in Continuous Integration
Almir Sarajčić, a Software Developer, shares insights into the necessity of automating Elixir release tests in a Continuous Integration (CI) environment. He spotlights a common issue where apps deployed without thorough pre-deployment in a production environment may run into problems like missing NIFs or unstarted third-party applications. To counter this, Almir narrates his experience in automating the building and testing of Elixir releases for an umbrella project in CI. This not only saved time but also ensured stable deployments. At his company, Optimum, preview apps are deployed to confirm the app builds and runs successfully on a server. He introduces a practical example wherein he demonstrates using a sample Phoenix app to test code that would fail in production, along with the associated errors that surface when running in a CI environment. Furthermore, he details the process of setting up Docker in GitHub Actions and using a script to check HTTP status codes to ensure proper functioning. Almir then delves into solving an UndefinedFunctionError by adjusting the `:extra_applications` in the `mix.exs` file, demonstrating how a simple CI enhancement can avoid future complications. The article concludes with a successful CI pipeline test, validating the efficacy of automated release testing.

© HashMerge 2024