GibilGibil

Debug a Failing Build

SSH into an ephemeral VM to diagnose and fix build failures

Your build is failing in CI but passes locally. Instead of guessing, forge a clean server and debug it interactively.

The workflow

# Forge a server with your repo — longer TTL for debugging
gibil create --name debug \
  --repo https://github.com/you/project \
  --ttl 60

# SSH in
gibil ssh debug

# You're on the VM now — reproduce the issue
cd /root/project
pnpm install
pnpm build    # see the actual error

# Fix and retry
vim src/problem-file.ts
pnpm build    # does it pass?

# When done
exit
gibil destroy debug

Check cloud-init logs

If the server itself isn't booting correctly, check what cloud-init did:

gibil ssh debug

# Full cloud-init log
cat /var/log/cloud-init-output.log

# Check if tasks completed
ls -la /root/.gibil-ready         # infra is set up
ls -la /root/.gibil-tasks-done    # all tasks passed
ls -la /root/.gibil-tasks-failed  # a task failed

Compare environments

Your local machine and the Gibil VM might differ. Common differences:

# On the VM
node --version        # v20.x (from .gibil.yml)
pnpm --version        # latest
cat /etc/os-release   # Ubuntu 24.04
docker --version      # if services defined
env | grep DATABASE   # check env vars

Next steps

On this page