No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
16 Hrs
9 Min
52 Seg

Connectándonos a GitHub

10/15
Recursos

Aportes 33

Preguntas 18

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Mi aporte:

Es posible conectar un repositorio de GitHub a Jenkins para que cada vez que exista un push se haga un build del source code. Para que esto sea posible debemos realizar cambios tanto en Jenkins como en GitHub.

En Jenkins:

1- Debemos tener el GitHub plugin instalado
2- Al crear el Job, debemos marcar el SCM la opción de Git, y pegar la URL del repo. (Para esta acción el host de Jenkins debe tener instalado Git)
3- En el apartado "branches to build" si dejamos en blanco tomara en cuenta cualquier branch. 
4- En "Build Triggers" debemos marcar la opción "GitHub hook trigger for GITScm polling"

En GitHub:

1- Vamos al repo de GitHub.
2- Entramos en Settings -> Webhooks.
3- Añadimos un nuevo Webhook.
4- Añadimos la Payload URL. (Si la URL no acaba en /github-webhook/ GItHub lanzara un error.)
5- Marcar "Just the push event"

Hola a todos, para los que estan intentando usar su jenkins local conectandolo a su github para luego disparar el job una vez se suba un cambio en los branches de su repo, aqui les tengo unos pasos, lo unico diferente es la creación de un agente webhook para poder hacer ese puente de conexión entre el jenkins y el github, aqui la url: https://drive.google.com/open?id=1vhBQIPUCZqQoE_NA5BEMHQ4ryJt4U5OS

Mi aporte :

Si lo estan corriendo local - localhost:8080

Primero deben instalar ngrok es super facil y rapido.

luego de instalarlo

linux

./ngrok http 8080

windows

ngrok http 8080

El les va a dar una url

http--://[url_ngrok]/github-webhook/

Tomé como base al comentario de @josemdiaza agregué un par de notas y formatié el texto.

Conectando a GitHub con Jenkins

Es posible conectar un repositorio de GitHub a Jenkins, de modo que cuando ocurra un evento en el repositorio (por ejemplo, un push) automaticamente se ejecute un build del source code. Para que esto sea posible se deben realizar algunas configuraciones en Jenkins y GitHub.

Jenkins:

  1. Verificar que el GitHub plugin esté instalado (en caso de no estarlo proceder a instalarlo).
  2. Al crear el Job, se debe marcar en la sección SCM (Source Code Management) la opción de Git, y pegar la URL del repositorio (para esta acción el host de Jenkins debe tener instalado Git).
    • En el apartado “Branches to build” se especifica el branch que Jenkins identificará y monitoreará.
    • En caso de presentarse este error: (403) No valid crumb was included in the request Jenkins, en este post de Stackoverflow se plantean soluciones.
  3. En la sección “Build Triggers” se debe marcar la opción “GitHub hook trigger for GITScm polling”.

GitHub:

  1. Ingresar al repositorio de GitHub.
  2. Ingresar en la sección Settings -> Webhooks.
    • Webhooks permite que servicios externos sean notificados cuando ocurren ciertos eventos. Cuando ocurra un evento especifico (por ejemplo, un push), GitHub enviará una solicitud POST a cada una de las URL proporcionadas en la configuración. Obtenga más información en la Guía de Webhooks.
  3. Se añade un nuevo Webhook.
  4. Se añade la Payload URL (si la URL no finaliza en /github-webhook/, GItHub lanzara un error.)
  5. Por ultimo, se selecciona la opción “Just the push event”.

Que placer cuando todos nuestros jobs muestran un solecito 😊

URL del repositorio usado en el video:
https://github.com/elbuo8/platzi-scripts

Pequeño tuto para los que lo ejecutan en local, para hacer la prueba use ngrok.com deben crear una cuenta descargar el archivo para su sistema, descomprimirlo y se autentican ./ngrok authtoken SU TOKEN y ejecutarlo ./ngrok http 8080
en Github en Webhooks agregan la url que des dio la consola usen la https:
Payload URL
https://SU_URL.ngrok.io/github-webhook/

Despues hacen cambios en el repositorio agregan el commit, push y la magia se hace.

Mi repositorio forked https://github.com/jhonsu01/platzi-scripts/

Success


Alguien sabe como conectar Github con jenkins de windows? En windows se accede usando localhost en lugar de la IP, por lo que no se exactamente que IP ingresar en Github.

Clic en el siguiente enlace Notion para realizar todo lo referente hasta esta clase:

tutorial

Workflow

  1. Ejecutar job "test-sum-node2

  2. Jenkins clona el repositorio

  3. Busca el último “Commit”

  4. Se empiezan a ejecutar los últimos comandos

GIT
Configuración manual del webhook

  1. Settings > Webhooks > Add webhook
    Payload URL: ip:8080/github-webhook/ #importante terminar con '/'
    Events: Just the push event

Configuración automática

  1. Se crea el job en Jenkins

  2. Configurar Jenkins para que se autoregistre

Al intentar la conexion me sale el siguiente error
Failed to connect to repository : Error performing git command: C:\Program Files\Git\bin ls-remote -h https://github.com/elbuo8/platzi-scripts HEAD

Por si a alguno le aparece este error:

Lo solucione habilitando la opcion “GitHub project” en la configuración general del job

Tengo un servidor con varios proyectos, pero el scope de jenkins esta en /home/var/lib, como puedo hacer para ejecutar una tarea de shell que afecte a los directorios que estan fuera del scope de jenkins, en /home/projects/

Pude hacerlo funcionar desde mi maquina virtual, esponiendo el puerto en mi router, y seteando modo bridge en la VM. no pude usar el https, pero con http fue suficiente para la prueba.

¡Hola!

Por si alguno se queda con la duda de ¿Qué es un web hook? Les dejo un resumen muy breve, es una tecnología en la que dos API’s se comunican por medio de métodos HTTP basado en eventos, muy utilizado en la cultura devops, les dejo el link si desean profundizar más.

me imagino que este error es por algun permiso, alguien que me ayude con la solucion, o que me guie, gracias

Me dio error debido a moca

Started by user Francisco Aleman
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/test-sum-nodejs
The recommended git tool is: NONE
No credentials specified

git rev-parse --resolve-git-dir /var/jenkins_home/workspace/test-sum-nodejs/.git # timeout=10
Fetching changes from the remote Git repository
git config remote.origin.url https://github.com/elbuo8/platzi-scripts.git # timeout=10
Fetching upstream changes from https://github.com/elbuo8/platzi-scripts.git
git --version # timeout=10
git --version # 'git version 2.30.2’
git fetch --tags --force --progress – https://github.com/elbuo8/platzi-scripts.git +refs/heads/:refs/remotes/origin/ # timeout=10
Seen branch in repository origin/master
Seen 1 remote branch
git show-ref --tags -d # timeout=10
Checking out Revision 9d9d5c10d5dbe71fe0b81f9e8178be5e27e86ce8 (origin/master)
git config core.sparsecheckout # timeout=10
git checkout -f 9d9d5c10d5dbe71fe0b81f9e8178be5e27e86ce8 # timeout=10
Commit message: "Add when branch"
git rev-list --no-walk 9d9d5c10d5dbe71fe0b81f9e8178be5e27e86ce8 # timeout=10
[test-sum-nodejs] $ /bin/sh -xe /tmp/jenkins10688467618647259765.sh

  • cd jenkins-tests npm install
    [test-sum-nodejs] $ /bin/sh -xe /tmp/jenkins5730116838594766650.sh
  • cd jenkins-tests
  • npm test

[email protected] test
mocha

sh: 1: mocha: not found
Build step ‘Execute shell’ marked build as failure
Finished: FAILURE

Es posible conectar un repositorio de GitHub a Jenkins para que cada vez que exista un push se haga un build del source code. Para que esto sea posible debemos realizar cambios tanto en Jenkins como en GitHub. En Jenkins: 1- Debemos tener el GitHub plugin instalado 2- Al crear el Job, debemos marcar el SCM la opción de Git, y pegar la URL del repo. (Para esta acción el host de Jenkins debe tener instalado Git) 3- En el apartado "branches to build" si dejamos en blanco tomara en cuenta cualquier branch. 4- En "Build Triggers" debemos marcar la opción "GitHub hook trigger for GITScm polling" En GitHub: 1- Vamos al repo de GitHub. 2- Entramos en Settings -> Webhooks. 3- Añadimos un nuevo Webhook. 4- Añadimos la Payload URL. (Si la URL no acaba en /github-webhook/ GItHub lanzara un error.) 5- Marcar "Just the push event"

Para hacer la automatizacion del webhook entre Github y Jenkins, se puede hacer uso del siguiente plugin https://plugins.jenkins.io/github/

Funciono

ya se que no es parte del curso, pero…qué versión del vim está utilizando?

esta herramienta es fantástica, hice la prueba y todo ok.

Buen ejercicio.

Me surgió el siguiente error: (403) No valid crumb was included in the request jenkins. Encontré una solución en este post de stackoverflow.

Webhooks permite que servicios externos sean notificados cuando ocurren ciertos eventos. Cuando ocurra un evento especifico (por ejemplo, un commit), GitHub enviará una solicitud POST a cada una de las URL proporcionadas en la configuración. Obtenga más información en la Guía de Webhooks.

Funciona a la perfeccion, tuve que usar ngrok para poder acceder a mi Jenkins ya que lo estoy corriendo localmente. Super practico, debo aprender a manejar Git desde la consola, esta vez tuve que hacer el commit desde la consola web.

Saludos, comparto esta información ya que no tenia claro los conceptos. Qué es un webhook? Un webhook es una devolución de llamada HTTP, un HTTP POST que ocurre cuando algo sucede a través de una simple notificación de eventos a través de HTTP POST.
Source Control Managent (SCM) solutions

Hola Amigos, para quien este usando Windows para subir Jenkis localmente, en mi canal hice un video explicando como se puede hacer la conexión de Jenkis y GitHub ya que toca hacer una serie de pasos adicionales. https://youtu.be/KF8x6qHbb2w
Espero les sirva mucho!!

Ojo al dato: lo bueno es que si usas Ubuntu, a partir de la versión 16 ya viene instalado Git por defecto 😄

Worales que cool!!!