¿Qué complementos y funciones de complementos necesito configurar para que mi trabajo de Jenkins active una compilación cada vez que el código se compromete con 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 disparador.
svn
continuous-integration
jenkins
jenkins-plugins
IAmYourFaja
fuente
fuente
Respuestas:
Hay dos maneras de hacer esto:
Recomiendo la primera opción inicialmente, debido a su facilidad de implementación. Una vez que haya madurado en sus procesos de construcción, cambie al segundo.
Sondee el repositorio para ver si se produjeron cambios. Esto podría "omitir" una confirmación si dos confirmaciones entran dentro del mismo intervalo de sondeo. Descripción de cómo hacerlo aquí , 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 similar a crontab).
Configure su repositorio para que tenga un enlace posterior a la confirmación que notifique a Jenkins que debe comenzar una compilación. Descripción de cómo hacerlo aquí , en la sección "Ganchos posteriores a la confirmación"
La función Etiqueta SVN no es parte del sondeo, es parte de la promoción del "encabezado" actual del código fuente a una etiqueta, para tomar una instantánea de una compilación. Esto le permite referirse a Jenkins buid # 32 como etiqueta SVN / tags / build-32 (o algo similar).
fuente
Solo necesita un complemento, que es el complemento de Subversion.
Luego, simplemente, vaya a Jenkins → job_name → sección Build Trigger → (i) Trigger build de forma remota (es decir, desde scripts) Token de autenticación: Token_name
Vaya al directorio de ganchos del servidor SVN y luego active los siguientes comandos:
cp post-commit.tmpl post-commit
chmod 777 post-commit
chown -R www-data:www-data post-commit
vi post-commit
Nota: Todas las líneas deben ser comentadas Agregue la línea de abajo al final
Sintaxis (para usuarios de Linux):
Sintaxis (para usuarios de Windows):
fuente
Hice una herramienta usando Python con algo de bash para activar una compilación de Jenkins. Básicamente, debe recopilar estos dos valores de la confirmación posterior cuando una confirmación llega al servidor SVN:
Luego usa "svnlook dirs-modified $ 1 -r $ 2" para obtener la ruta que se acaba de confirmar. Luego, a partir de eso, puede verificar qué repositorio desea construir. Imagina que tienes cientos de miles de proyectos. No puede comprobar todo el repositorio, ¿verdad?
Puedes consultar mi script desde GitHub .
fuente
Puede usar un gancho posterior a la confirmación.
Coloque el script de enlace posterior a la confirmación en la
hooks
carpeta, cree unwget_folder
en su unidad C: \ y coloque elwget.exe
archivo en esta carpeta. Agregue el siguiente código en el archivo llamadopost-commit.bat
donde Test = nombre del trabajo
echo
se usa para ver el valor y también puede agregarexit 2
al final para conocer el problema y si el script de enlace posterior a la confirmación se está ejecutando o no.fuente