¿Hay alguna manera de mostrar el estado de compilación de Jenkins en GitHub Readme.md de mi proyecto?
Uso Jenkins para ejecutar compilaciones de integración continua. Después de cada confirmación, se asegura de que todo se compila, así como ejecuta pruebas unitarias y de integración, antes de finalmente producir documentación y lanzar paquetes.
Todavía existe el riesgo de cometer inadvertidamente algo que rompe la compilación. Sería bueno para los usuarios que visiten la página del proyecto GitHub saber que el maestro actual está en ese estado.
Respuestas:
Ok, así es como puedes configurar Jenkins para configurar los estados de compilación de GitHub. Esto supone que ya tienes a Jenkins con el complemento GitHub configurado para hacer compilaciones en cada inserción.
Vaya a GitHub, inicie sesión, vaya a Configuración , tokens de acceso personal , haga clic en Generar nuevo token .
Verifique el repositorio: estado (no estoy seguro de que esto sea necesario, pero lo hice y funcionó para mí).
Genere el token, cópielo.
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 push y pull (para repositorios de la organización) a los repositorios que desea construir.
Vaya a su servidor Jenkins, inicie sesión.
En GitHub Web Hook, seleccione Permitir que Jenkins administre automáticamente las URL de enlace , luego especifique su nombre de usuario de GitHub y el token OAuth que obtuvo en el paso 3.
Verifique que funcione con el botón Probar credencial . Guarda la configuración.
Encuentre el trabajo de Jenkins y agregue Establecer estado de compilación en GitHub commit a 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 Ramas en la página principal del repositorio para ver los estados de compilación.
Debería ver marcas de verificación verdes:
fuente
Mientras tanto, la interfaz de usuario de Jenkins y GitHub ha cambiado un poco y me llevó un tiempo descubrir cómo configurar Jenkins ahora correctamente. La explicación aquí se basa en la versión 2.121.1 de Jenkins.
También supongo que ya ha configurado su trabajo de Jenkins para que lo active un webhook o una encuesta. Esos son los pasos que he tomado para que funcione:
repo:status
Configure System
y agregue el OAuth Secret como un servidor GitHub : úseloSecret Text
como un método de autenticación para poner el OAuth Secret allí.Set GitHub commit status
como acción posterior a la compilación . Establezca el resultado del estado enOne of the default messages and statuses
.Configurar Github
Configurar Jenkins
Configurar el trabajo de Jenkins
Resultado
Ahora verá el estado de sus confirmaciones y ramas:
fuente
Manage Hooks
cuadro está resaltado pero no está marcado en las imágenes de arriba, ¿eso significa que no debería estar marcado cuando guardamos?Lo que hice es bastante simple:
Agregue un complemento de tareas de publicación que siempre sea exitoso
Agregue un complemento de tarea posterior que pondrá la falla si "se marcó compilación como falla"
También puede agregar una llamada a pendiente al comienzo de las pruebas
fuente
sh
e incluso aprovechar el almacenamiento de credenciales con JenkinswithCredentials
Este complemento debería funcionar: https://wiki.jenkins-ci.org/display/JENKINS/Embeddable+Build+Status+Plugin
Debería poder insertar insignias como esta en su
README.md
archivo:fuente
La API de estado de confirmación le permite ver la " API de estados de repositorio ".
Y desde el 26 de abril de 2013, ahora puede ver el estado de compilación en su página de sucursal de repositorio de GitHub :
Eso significa que es otra forma, visitando la página del proyecto GitHub, para ver esos estados en lugar de tener solo Jenkins.
A partir del 30 de abril de 2013, el punto final de API para los estados de confirmación se ha ampliado para permitir nombres de sucursales y etiquetas, así como SHA de confirmación .
fuente
curl
( developer.github.com/v3/repos/statuses/… )También hay este complemento que le dará una URL de insignia que puede publicar en su archivo README.md y se ve así
https://wiki.jenkins-ci.org/display/JENKINS/Embeddable+Build+Status+Plugin
fuente
Si tiene un
Github
complemento instalado en suJenkins
, puede hacerlo de laPost build actions
siguiente manera:fuente
Agregue la línea siguiente en su archivo README.md y cambie ambas URL de acuerdo con su proyecto jenkins.
fuente
En lo que respecta a la configuració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:
En el servidor Jenkins: (asegúrese de tener instalado el complemento Git y GitHub)
Además, asegúrese de que la cuenta de GitHub que utiliza su Jenkins sea un colaborador para el repositorio. Lo configuré con el nivel de permiso de escritura.
Espero que esto ayude.
fuente
Seguí las instrucciones de Alex y funcionó.
Pero, para GitHub Enterprise, debe modificar la URL de la API al agregar el servidor a Jenkins.
Por ejemplo, si su empresa es creditcard.com, su URL sería
https://github.creditcard.com/api/v3/
fuente
Jently actualiza su Github cometer el estado (como se describe por @vonc arriba), por desgracia, aún no han implementado la API de estado Repo
fuente
Editar:
Ya no estoy usando este enfoque, 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.
GitHub almacena en caché las imágenes, por lo que creamos el archivo .htaccess, que indica un breve tiempo de espera de caché para la imagen de estado de compilación.
Ponga esto en el directorio con la imagen de estado de compilación:
Aquí está 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:
. . y este script se puede ejecutar dentro o fuera de Jenkins, de modo que:
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 documentos de API, resultados de prueba y cobertura de prueba.
fuente