funciona - ¿Puedo almacenar la configuración de Jenkins en el repositorio del proyecto(como Travis CI)?
travis github (2)
¿Cómo mantiene la configuración del trabajo de Jenkins en SCM junto con el código fuente?
A medida que el código fuente evoluciona, también lo hace la configuración del trabajo. Sería ideal poder mantener la configuración del trabajo en SCM, para los siguientes beneficios:
- Es fácil ver quién es un historial de los cambios, incluidos el autor y la descripción.
- capaz de reconstruir la rama / etiqueta antiguas comprobando la revisión y la compilación simplemente funciona
- no tener que desplazarse por la interfaz de usuario para encontrar la sección apropiada y hacer cambios
Veo que hay un plugin Jenkins Job Builder . Prefiero una solución en la línea de Travis CI , donde la configuración del trabajo se mantiene en un archivo YAML (.travis.yml). ¿Alguna buena sugerencia?
Nota: la mayoría de nuestros proyectos están utilizando Java y Maven.
Puede hacer todo esto con el complemento de flujo de trabajo y mucho más. El flujo de trabajo es una de las técnicas más avanzadas para usar jenkins y tiene un soporte muy sólido.
Se basa en un maravilloso DSL y le permite mantener toda la configuración en el SCM de su elección (por ejemplo, GIT, SVN ...).
Actualización 2016: Jenkins ahora proporciona un Jenkinsfile que proporciona exactamente esto. Esto es apoyado por los desarrolladores centrales de Jenkins y desarrollado activamente.
Beneficios:
La creación de un archivo Jenkins, que se registra en el control de origen, proporciona una serie de beneficios inmediatos:
- Revisión de código / iteración en la tubería
- Pista de auditoría para el oleoducto.
- Una única fuente de verdad para Pipeline, que puede ser vista y editada por múltiples miembros del proyecto.
He escrito un plugin que hace esto!
Aparte de mi complemento, tiene algunas opciones (limitadas) con los complementos de Jenkins existentes:
Use un solo script de prueba
Si configura su Jenkins para simplemente ejecutar:
$ bash run_tests.sh
Luego, puede registrar un archivo run_tests.sh
en su repositorio de SCM y ahora está rastreando los cambios para determinar cómo ejecuta las pruebas. Sin embargo, esto no rastreará la configuración de ningún complemento.
Del mismo modo, si está utilizando Maven, el complemento del proyecto Maven simplemente ejecuta un objetivo específico para su repositorio.
El complemento Literate permite que Jenkins ejecute los comandos en su archivo README.md, pero aún no se ha liberado.
Rastrea los cambios a la configuración de Jenkins
Puede usar el complemento de configuración de sincronización de SCM para escribir cambios de configuración en SCM, de modo que al menos tenga un registro persistente. Esto es global, en todos los proyectos en su instancia de Jenkins.
También está el complemento de historial de configuración del trabajo , que almacena el historial de configuración en el sistema de archivos.
Escribir la configuración de Jenkins desde SCM
El proyecto del generador de trabajos Jenkins que mencionó le permite verificar los cambios de configuración en SCM y aplicarlos a su instancia de Jenkins. Una vez más, esto es en todos los proyectos en su instancia de Jenkins.
Escribir la configuración de Jenkins desde otro trabajo.
Puede utilizar el complemento DSL de trabajo con un repo de scripts de groovy. Jenkins luego sondea ese repositorio, ejecuta los guiones geniales, que crean configuraciones de trabajo.
Los debates
El número 996 (ahora cerrado) trata este tema, y también se ha analizado en la lista de correo: "Realizar un seguimiento de los cambios de configuración de Hudson" y "guardar la configuración de hudson en svn" .