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 - | 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 done # Run tests - mix test