No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

1D
15H
15M
38S

Connect谩ndonos a GitHub

10/15
Recursos

Aportes 31

Preguntas 18

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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 鈥淏ranches 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 鈥淏uild Triggers鈥 se debe marcar la opci贸n 鈥淕itHub 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 鈥淛ust the push event鈥.

Que placer cuando todos nuestros jobs muestran un solecito 馃槉

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


Workflow

  1. Ejecutar job "test-sum-node2

  2. Jenkins clona el repositorio

  3. Busca el 煤ltimo 鈥淐ommit鈥

  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

Por si a alguno le aparece este error:

Lo solucione habilitando la opcion 鈥淕itHub project鈥 en la configuraci贸n general del job

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

tutorial

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

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/

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.

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

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 鈥楨xecute 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鈥u茅 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!!!