Skip to content

phoenixframework/phoenix

Back Improve integration test CI visibility, healthchecks, and reliability (#6825)

Commit details

Improve integration test CI visibility, healthchecks, and reliability (#6825)

Description

Previously, the integration test CI job ran entirely within a monolithic `integration_test/test.sh` script inside an Alpine container. Bundling system package installation, Hex/Rebar setup, proxy startup, dependency compilation, and test execution into a single script obscured the duration of each phase in CI metrics. CI also lacked explicit database readiness checks, relying solely on the duration of preceding commands to avoid connection failures. This updates `.github/workflows/ci.yml` with the following improvements: - Decompose monolithic test execution into discrete, individually timed CI steps (package installation, Hex/Rebar setup, proxy bridges, dependency fetching, MIX_ENV=test dependency compilation, and test execution) to surface exact phase timings in GitHub Actions UI. - Add explicit container healthcheck probes (`--health-cmd`) for Postgres, MySQL, and MSSQL services to eliminate startup race conditions before tests begin. - Detach background `socat` proxy streams (`> /dev/null 2>&1 &`) so the proxy step completes immediately without blocking the runner's step listener. - Enable concurrent dependency and NIF compilation (`MIX_OS_DEPS_COMPILE_PARTITION_COUNT: 2` and `MAKEFLAGS: "-j2"`) tuned to runner vCPU capacity without CPU oversubscription. - Standardize Alpine matrix parameterization by separating the `alpine` version tag from string suffixes.

Metadata

Author
Rodolfo Carvalho rhcarvalho@gmail.com
Committed
Commit

Contributors

  • Rodolfo Carvalho rhcarvalho@gmail.com Author