delete - Mostrar el estado actual de la compilación de Jenkins en el repositorio de GitHub
delete tag git (10)
Agregue la línea siguiente en su archivo README.md y cambie ambas URL de acuerdo con su proyecto jenkins.
[![Build Status](https://jenkins../..project/lastBuild/buildStatus)](https://jenkins../..project/lastBuild/)
¿Hay alguna manera de mostrar el estado de compilación de Jenkins en el archivo de mi proyecto GitHub Readme.md?
Uso Jenkins para ejecutar compilaciones de integración continua. Después de cada confirmación, asegura que todo compila, así como también ejecuta las pruebas de unidad y de integración, antes de finalmente producir la documentación y lanzar los paquetes.
Todavía existe el riesgo de cometer inadvertidamente algo que rompa la construcción. Sería bueno para los usuarios que visitan la página del proyecto GitHub saber que el maestro actual está en ese estado.
Bien, así es cómo puedes configurar a Jenkins para establecer los estados de compilación de GitHub. Esto supone que ya tienes a Jenkins con el plugin de GitHub configurado para hacer construcciones en cada empuje.
Vaya a GitHub, inicie sesión, vaya a Configuración , tokens de acceso personal , haga clic en Generar nuevo token .
Verificar repo: estado (no estoy seguro de que sea necesario, pero lo hice, y funcionó para mí).
Genera el token, cópialo.
Asegúrese de que el usuario de GitHub que va a utilizar sea un colaborador de repositorio (para repositorios privados) o sea miembro de un equipo con acceso de inserción y extracción (para repositorio de organización) a los repositorios que desee construir.
Ve a tu servidor Jenkins, inicia sesión.
- Administrar Jenkins → Configurar sistema
Debajo de GitHub Web Hook, seleccione Permitir que Jenkins gestione automáticamente las URL de los enlaces , luego especifique su nombre de usuario de GitHub y el token de OAuth que obtuvo en el paso 3.
Verifique que funcione con el botón Credencial de prueba . Guarde la configuración.
Encuentre el trabajo de Jenkins y agregue Establecer estado de compilación en el compromiso de GitHub con los pasos posteriores a la compilación
Eso es. Ahora haga una compilación de prueba y vaya al repositorio de GitHub para ver si funcionó. Haga clic en Sucursales en la página principal del repositorio para ver los estados de compilación.
Debería ver marcas de verificación verdes:
Con respecto a la creación de la rama protegida de Jenkins y GitHub. Estoy usando Jenkins 2.6, y estos son los pasos que hice para que funcione:
En la página web de GitHub de su repositorio:
- Ve a Configuración> Sucursales.
- En Proteger ramas, haga clic en el menú Elegir una rama que se ahoga y seleccione la rama que desea establecer como una rama Protegida.
- Habilite las opciones según sea necesario.
En el servidor de Jenkins: (Asegúrate de tener instalado el complemento Git y GitHub)
- Ve a Gestionar Jenkins> Configurar sistema.
- En GitHub, establece la URL de la API en https://api.github.com . Aunque este es el valor predeterminado.
- Seleccione su token generado para las credenciales. Si aún no ha generado un token, haga clic en Avanzado ... luego en Acciones adicionales, puede convertir su nombre de usuario y contraseña en token y usarlo como su credencial.
Además, asegúrese de que la cuenta de GitHub que utiliza su Jenkins sea un colaborador para el repositorio. Lo he configurado con el nivel de permiso de escritura.
Espero que esto ayude.
Este complemento debería funcionar: https://wiki.jenkins-ci.org/display/JENKINS/Embeddable+Build+Status+Plugin
Debería poder incrustar insignias como esta en su archivo README.md
:
La API de estado de confirmación le permite ver la " API de estados Repo ".
Y desde el 26 de abril de 2013, ahora puede ver el estado de la compilación en la página de sucursal de repositorio de GitHub :
Eso significa que es otra forma, al visitar la página del proyecto GitHub, ver esos estados en lugar de tener solo a Jenkins.
A partir del 30 de abril de 2013, el punto final API para estados de compromiso se ha ampliado para permitir nombres de rama y etiqueta, así como para confirmar SHA .
Lo que hice es bastante simple:
- Instalar el complemento de tareas de Hudson Post
- Cree un token de acceso personal aquí: github.com/settings/tokens
Agregue un complemento de tarea de publicación que siempre tenga éxito
curl -XPOST -H "Authorization: token OAUTH TOKEN" https://api.github.com/repos/:organization/:repos/statuses/$(git rev-parse HEAD) -d "{ /"state/": /"success/", /"target_url/": /"${BUILD_URL}/", /"description/": /"The build has succeeded!/" }"
Agregue un complemento de tarea de publicación que colocará la falla si "marcada como falla"
curl -XPOST -H "Authorization: token OAUTH TOKEN" https://api.github.com/repos/:organization/:repos/statuses/$(git rev-parse HEAD) -d "{ /"state/": /"failure/", /"target_url/": /"${BUILD_URL}/", /"description/": /"The build has failed!/" }"
También puede agregar una llamada a pendiente al comienzo de las pruebas
curl -XPOST -H "Authorization: token OAUTH TOKEN" https://api.github.com/repos/:organization/:repos/statuses/$(git rev-parse HEAD) -d "{ /"state/": /"pending/", /"target_url/": /"${BUILD_URL}/", /"description/": /"The build is pending!/" }"
Si tiene instalado el plugin Github
en su Jenkins
, puede hacerlo en las Post build actions
como esta:
También hay este complemento que te dará una url de insignia que puedes publicar en tu archivo README.md y se ve así
https://wiki.jenkins-ci.org/display/JENKINS/Embeddable+Build+Status+Plugin
Jently actualiza tu estado de Github commit (como se describe en @vonc arriba), desafortunadamente aún tienen que implementar la API Repo Status
Editar:
Ya no estoy usando este enfoque, por favor use una de las otras respuestas.
Actualización: lo que terminé haciendo, para nuestro caso específico: (las respuestas anteriores fueron geniales, ¡gracias!)
Debido a que nuestro servidor de compilación no está en Internet, tenemos un script para publicar el estado de compilación en la rama gh-pages en github.
- Inicio de sellos de construcción que fallan
- Fin del éxito de sellos de construcción
- El proyecto se ejecuta después del proyecto principal para publicar los resultados: estado de compilación, documentos API, informes de prueba y cobertura de prueba.
GitHub almacena en caché las imágenes, por lo que creamos el archivo .htaccess, que indica un tiempo de espera de caché corto para la imagen de estado de compilación.
Coloque esto en el directorio con la imagen de estado de construcción:
ExpiresByType image/png "access plus 2 minutes"
Here''s el script de compilación. El objetivo que publica en gh-pages es ''--publish.site.dry.run''
Con menos de 400 líneas de configuración, tenemos:
- Compilar cheques
- pruebas de unidad e integración
- Informes de las pruebas
- Informes de cobertura de código
- API Docs
- Publicando en Github
. . y este script se puede ejecutar dentro o fuera de Jenkins, de modo que:
- Los desarrolladores pueden ejecutar esta secuencia de comandos antes del compromiso, lo que reduce la posibilidad de que una construcción se rompa y afecte a los demás.
- Una falla es fácil de reproducir localmente.
Los resultados:
La página principal del proyecto tiene el estado de compilación, actualizado después de cada compilación, junto con los últimos API Docs, resultados de pruebas y cobertura de prueba.