Conectar Jenkins con GitHub usando webhooks
Clase 10 de 15 • Curso Básico de Jenkins
Contenido del curso
Jenkins Core
Jobs
Plugins
Pipelines
Slave
Cierre
Integrar Jenkins con GitHub no tiene por qué ser complejo: con un webhook bien configurado y un job freestyle, puedes ejecutar tus tests de Node.js en cada push o pull request. Aquí verás el flujo completo, desde enlazar el repositorio por HTTPS hasta activar el trigger correcto y evitar errores comunes como olvidar el slash final del webhook.
¿Cómo integrar Jenkins con GitHub y disparar builds con webhooks?
La clave está en configurar el SCM, habilitar el trigger de GitHub y preparar los build steps para npm. Además, valida que tengas Git instalado donde corre Jenkins.
- Crear un nuevo item en Jenkins: freestyle project (por ejemplo, “test sum node js”).
- Marcar “This is a GitHub project” y pegar la URL del repo por HTTPS.
- En Git (SCM): pegar el repositorio. Si aparece error: probablemente Git no está instalado.
- Repositorio público: sin credenciales. Las credenciales se verán más adelante.
- Branch specifier vacío: ejecuta en todas las ramas y también en pull requests.
- En Build Triggers: activar GitHub hook trigger para que el webhook inicie el build.
¿Qué comandos ejecutar con npm y Node.js?
Prepara dos build steps con Execute shell para instalar dependencias y correr tests con mocha.
cd jenkins test
npm install
cd jenkins test
npm test
# equivalente a: npm run test
- Recuerda que cada Execute shell vuelve al workspace inicial: usa
cden cada paso. - Asegura la versión de Node.js y que
npmesté en el PATH con el plugin de Jenkins: Provide Node en npm bin folder to path. - Evita depender de la versión del sistema operativo: elige la versión de Node.js desde Jenkins.
¿Cómo configurar el webhook en GitHub para Jenkins?
Sin webhook activo, GitHub no avisará a Jenkins. Configúralo en el repositorio para que cada push dispare el build automáticamente.
- Verifica que el GitHub plugin esté instalado en Jenkins (viene con los plugins sugeridos).
- En GitHub: Settings → Webhooks → Add webhook.
- URL del webhook:
http://IP:PUERTO/github-webhook/con slash final. Usa dominio en lugar de IP si es posible. - Detalle crítico: incluye el slash final. Sin él, recibirás un 302 en GitHub y Jenkins no redirige.
- Content type: dejar por defecto.
- Seguridad: en producción usa secret.
- Eventos: seleccionar solo push event.
- Activar: en Recent deliveries busca un 200 para confirmar que llegó a Jenkins.
¿Cómo validar que Jenkins ejecuta al hacer push?
- Realiza un commit y
git pushen el repo conectado. - En GitHub: revisa Recent deliveries con respuesta 200.
- En Jenkins: refresca el dashboard, verás el build iniciado por el webhook y el log con:
- Clonado del repositorio.
- Detección del último commit.
- Ejecución de
cd jenkins test,npm installynpm test.
¿Qué errores evitar y qué buenas prácticas aplicar?
Pequeños detalles frenan la integración. Ajusta estos puntos para tener builds confiables y reproducibles.
- No tener Git instalado: el SCM fallará al clonar.
- Olvidar
cden cada Execute shell: cada paso regresa al workspace. - No añadir Node.js y
npmal PATH: Jenkins usará la versión del sistema operativo. - No activar GitHub hook trigger: Jenkins no reaccionará a los push.
- Configurar mal la URL del webhook: falta de slash final provoca 302.
- Dejar el branch specifier vacío si buscas cubrir todas las ramas y PRs.
- Seguridad: usar secret para el webhook en entornos productivos.
- Automatización: busca auto-registrar el webhook al crear repos o jobs en tu organización.
¿Ya conectaste Jenkins con GitHub y te funcionó el webhook a la primera? Cuéntame qué parte te gustaría automatizar primero o qué detalle te dio más pelea.