edit | blame | history | raw

Jenkins Build And Deploy Runbook

Build artifact

lm-livekit-helper should be deployed as its own artifact. It is not part of the LiveKit server image and does not modify LiveKit source code.

Recommended Jenkins build steps:

  1. Checkout lm-livekit-helper.
  2. Run lightweight checks:
cargo fmt --check
  1. Build Docker image:
docker build -t ${HELPER_IMAGE}:${GIT_COMMIT} .
  1. Push image to the internal registry.
  2. Record the image tag in Jenkins build metadata.

Full host cargo check is not required for every commit until the Rust toolchain and WebRTC native dependency cache are fixed. Docker image build is the deployment verification path.

Runtime integration

lmrobot-app starts the helper through runtime configuration. A staging deployment should provide:

COMBRABO_VOICE_RUNTIME_WORKDIR=/opt/lmrobot/lm-livekit-helper
COMBRABO_VOICE_RUNTIME_LAUNCH_COMMAND=/opt/lmrobot/lm-livekit-helper/run-local.sh
COMBRABO_VOICE_RUNTIME_HELPER_MODE=docker
COMBRABO_VOICE_RUNTIME_HELPER_IMAGE=${HELPER_IMAGE}:${GIT_COMMIT}

LiveKit connection material remains generated by lmrobot-app for each call and is injected as CV_* variables when launching the helper.

Staging smoke

After deploying a new helper image, run the minimal smoke:

  1. SDK token exchange through the staging token provider.
  2. call-greetings/prepare returns READY.
  3. calls/start with greetingId returns success.
  4. Activity contains:
  • runtime_start_requested
  • runtime_ready
  • bot_participant_joined
  • bot_track_ready
  • greeting_consumed
  1. calls/end returns success.

For S7 bidirectional smoke, additionally require:

  • turn_bridge_requested
  • turn_bridge_completed
  • bot_reply_audio_write_started
  • bot_reply_audio_write_finished
  • turn_completed

Rollback

Rollback is helper-image level first:

  1. Switch COMBRABO_VOICE_RUNTIME_HELPER_IMAGE to the previous known-good tag.
  2. Restart affected lmrobot-app runtime if it keeps helper launch config in process env.
  3. Re-run the minimal smoke.

If rollback does not recover, disable Combrabo Voice feature flag on lmrobot-app side and keep LiveKit server unchanged.