¿Qué complementos y funciones de complementos debo configurar para que mi trabajo de Jenkins desencadene una compilación cada vez que se confíe código a un proyecto SVN? He instalado tanto el complemento SVN estándar como el complemento de etiquetado SVN, pero no veo ninguna característica nueva que permita la configuración del desencadenador.Jenkins CI: Cómo desencadenar compilaciones en el compromiso de SVN
Respuesta
Hay dos maneras de hacer esto:
recomiendo la primera opción inicialmente, debido a su facilidad de implementación. Una vez que madure en sus procesos de compilación, cambie a la segunda.
Realice una búsqueda en el repositorio para ver si se produjeron cambios. Esto podría "omitir" una confirmación si entran dos confirmaciones dentro del mismo intervalo de sondeo. Description of how to do so here, tenga en cuenta la cuarta captura de pantalla donde configura en el trabajo un "disparador de compilación" basado en sondear el repositorio (con una configuración de tipo crontab).
Configure su repositorio para que tenga un enlace posterior a la confirmación que notifique a Jenkins que debe iniciarse una compilación. Description of how to do so here, en la sección "ganchos post-commit"
La característica Tag SVN no es parte de la votación, que es parte de la promoción de la "cabeza" actual del código fuente de una etiqueta, en una instantánea de un construir. Esto le permite hacer referencia a Jenkins buid # 32 como SVN tag/tags/build-32 (o algo similar).
ganchos post-commit rock. Tiempos de respuesta más rápidos, y (a escala) su sistema de IC no destruye el repositorio de origen con cientos de solicitudes de registro de cambios. – EricMinick
@EricMinick Son geniales, pero a veces pueden derretir el servidor de CI, si obtienes un pequeño número de confirmaciones en un corto período de tiempo. Todos son caballos para los cursos, y es difícil saber qué método es favorable sin analizar cómo funciona actualmente su proceso de desarrollo. –
@EdwinBuck: ¿Sabes si hay una forma de configurar Jenkins para construir solo confirmaciones selectivas? Explicaré, tengo unStory de tortuga marina y un proyecto de Jenkins que sigue sondeando el repositorio. Ahora, si deseo que el compromiso que hago no desencadene a Jenkins, ¿hay alguna manera de hacerlo? –
Hice una herramienta usando python con algo de bash para activar una versión de jenkins. Básicamente, usted tiene que recoger estos dos valores de post-commit cuando un servidor cometer golpeado SVN:
REPOS = "$ 1" REV = "$ 2"
A continuación, se utiliza "svnlook dirs-changed $ 1-R $ 2 "para obtener el camino que acaba de comprometerse". Luego, desde allí puede verificar qué repositorio desea construir. Imagina que tienes cientos de miles de proyectos. No puedes verificar el repositorio completo, ¿verdad?
Se puede extraer de mi guión de github
escribí este guión ya que acabo de aprender Python, y todavía usando ahora. Tenía pensado mejorarlo, pero los nuevos proyectos y las cosas me detienen todo el tiempo. Todo el mundo tiene un buen conocimiento de que Python definitivamente tiene una mejor herramienta integrada. Si alguien pudiera compartir, me encantaría tenerlo.
Puede utilizar un enganche post-commit.
Coloque la secuencia de comandos de enlace de confirmación posterior en la carpeta hooks
, cree un wget_folder
en su unidad C: \ y coloque el archivo wget.exe
en esta carpeta. Agregue el código siguiente en el archivo llamado post-commit.bat
SET REPOS=%1
SET REV=%2
FOR /f "tokens=*" %%a IN (
'svnlook uuid %REPOS%'
) DO (
SET UUID=%%a
)
FOR /f "tokens=*" %%b IN (
'svnlook changed --revision %REV% %REPOS%'
) DO (
SET POST=%%b
)
echo %REPOS% ----- 1>&2
echo %REV% -- 1>&2
echo %UUID% --1>&2
echo %POST% --1>&2
C:\wget_folder\wget^
--header="Content-Type:text/plain"^
--post-data="%POST%"^
--output-document="-"^
--timeout=2^
http://localhost:9090/job/Test/build/%UUID%/notifyCommit?rev=%REV%
donde se utilizó la prueba = nombre del trabajo
echo
para ver el valor y también se puede añadir exit 2
al final para saber sobre el tema y si el script de gancho post-commit se está ejecutando o no.
¿Recomendarían GitHub en lugar de SVN para desencadenar las compilaciones? En realidad, simplemente sé SVN, pero me pregunto por qué tantas personas tienden a usar GitHub en su lugar.
Necesita requerir solo un complemento que sea un complemento de subversión. continuación Simplemente, Id por Jenkins-> job_name-> sección Ejecución Build -> (i) Origen construir de forma remota (es decir, desde guiones) autenticación del token: -Token_name
luego ir a directorio de ganchos del servidor SVN y luego después del fuego debajo de los comandos: - (a) cp post-commit.tmpl post-commit (b) chmod 777 post-commit (c) chown -R www-data: www-data post-commit (d) vi post- commit nota: Todas las líneas deben ser comentadas agregar debajo de la línea al final synta x (para el usuario Linux): -/usr/bin/enrollamiento http://username:[email protected]:8081/job/job_name/build?token=Token_name sintaxis
(para el usuario de Windows): - C:/curl_for_win/enrollamiento http://username:[email protected]:8081/job/job_name/build?token=Token_name
- 1. ¿Cómo desencadenar dinámicamente versiones posteriores en jenkins?
- 2. Reglas de compromiso de SVN
- 3. ¿Cómo deshacerse de directorios faltantes en el compromiso SVN?
- 4. Espacio libre en Jenkins eliminar el directorio 'compilaciones'
- 5. Jenkins deshabilita o borra el caché para compilaciones de maven
- 6. Integración de SourceMonitor en un sistema Jenkins CI
- 7. Jenkins/Hudson SVN Issue
- 8. Vista basada en compilación de las compilaciones de Jenkins
- 9. Compromiso de SVN con fecha/hora anterior
- 10. Error de compromiso de SVN: Directorio desactualizado
- 11. En Hudson o Jenkins, ¿cómo se pueden restaurar las compilaciones eliminadas?
- 12. Subversivo: ¿Cambiar el mensaje de compromiso SVN retroactivamente?
- 13. Jenkins (Hudson) SVN checkout dir
- 14. Error de autenticación con SVN en Jenkins
- 15. Listar todas las compilaciones para siempre en Jenkins?
- 16. Obtener el último archivo Fecha de compromiso desde SVN
- 17. ¿Cómo configurar las credenciales de SVN en Jenkins?
- 18. ¿Cómo construir una revisión específica de SVN en Hudson/Jenkins
- 19. Creando una revisión particular en Jenkins Pipeline
- 20. Cómo creo una plantilla de mensaje de compromiso de SVN y un gancho para verificar
- 21. Disparador Construir en Jenkins Por CORREO ELECTRÓNICO
- 22. Ir a svn: Agregar fecha de compromiso para registrar mensajes
- 23. Cómo mapear usuario SVN a gente de Jenkins
- 24. git-svn error de compromiso: no se puede determinar la información de SVN en sentido ascendente
- 25. ¿Cómo puedo hacer que Jenkins CI con gatillo git en empujes domine?
- 26. Configuración del complemento Atlassian JIRA para trabajar con el sistema de Jenkins CI
- 27. Ivy, Ant, Jenkins: ¿es una buena idea utilizar <ivy: cleancache> en las compilaciones de Jenkins?
- 28. Uso del protocolo bittorrent para distribuir compilaciones de CI y nocturnas
- 29. Desencadenar el trabajo de Jenkins al cambiar solo a una subcarpeta específica en la carpeta de trabajo scm
- 30. Git: recuperar compromiso específico
posible duplicado de [TRIGGER Hudson acumulación cuando SVN] (http : //stackoverflow.com/questions/4792466/trigger-hudson-build-when-svn-commit) – highlycaffeinated