kind: pipeline type: docker name: default services: - name: postgres image: docker.io/library/postgres:17.2 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres steps: - name: lint & test image: docker.io/library/elixir:1.18.3-otp-27 environment: MIX_ENV: test TEST_POSTGRES_HOST: postgres commands: # Install hex package manager - mix local.hex --force # Fetch dependencies - mix deps.get # Check for compilation errors & warnings - mix compile --warnings-as-errors # Check formatting - mix format --check-formatted # Wait for postgres to become available # TODO: pg_isready is not installed in the elixir image # - | # for i in {1..20}; do # pg_isready -h postgres -p $DATABASE_PORT && break # sleep 2 # done # echo "Postgres did not become available, aborting" # exit 1 # Run tests - mix test