tag - qué tipos de etiquetas existen en git
Revise múltiples repositorios git en el mismo espacio de trabajo de Jenkins (6)
Usando Jenkins 1.501 y Jenkins Git plugin 1.1.26
Tengo 3 repositorios git diferentes, cada uno con múltiples proyectos.
Ahora necesito consultar todos los proyectos desde los repositorios de 3 git en el mismo espacio de trabajo en un esclavo Jenkins. He definido cada repositorio git en: Código fuente Gestión: múltiples SCM . Pero cada vez que se revisa un repositorio, se borra el repositorio anterior (y sus proyectos asociados).
He leído esto:
http://jenkins.361315.n4.nabble.com/multiple-git-repos-in-one-job-td4633300.html
pero en realidad no ayuda. He intentado especificar la misma carpeta en el subdirectorio Local para repo (opcional) para todos los repos pero da el mismo resultado.
Si esto es simplemente imposible usando Jenkins, creo que algunos pasos / secuencias de comandos previos a la construcción podrían usarse para mover los proyectos a la ubicación correcta. No es una opción modificar la configuración de compilación de los proyectos.
Con el complemento Multiple SCMs:
crea una entrada de repositorio diferente para cada repositorio que necesites para pagar (proyecto principal o proyecto dependiente).
para cada proyecto, en el menú "avanzado" (el segundo menú "avanzado", hay dos botones etiquetados como "avanzado" para cada repositorio), encuentre el campo de texto "Subdirectorio local para el repositorio (opcional)". Puede especificar allí el subdirectorio en el directorio "workspace" donde desea copiar el proyecto. Podrías mapear el sistema de archivos de mi computadora de desarrollo.
El "segundo menú avanzado" ya no existe; en su lugar, lo que se debe hacer es usar el botón "Agregar" (en la sección "Comportamientos adicionales") y elegir "Buscar en un subdirectorio".
- si está usando ant, como ahora el archivo build.xml con los objetivos de compilación no está en el directorio raíz del espacio de trabajo sino en un subdirectorio, debe reflejar eso en la configuración "Invocar Ant". Para hacerlo, en "Invocar hormiga", presione "Avanzado" y complete el texto de entrada "Crear archivo", incluido el nombre del subdirectorio donde se encuentra el archivo build.xml.
Espero que ayude.
Dado que Multiple SCMs Plugin está en desuso.
Con Jenkins Pipeline es posible verificar múltiples repositorios git y luego de construirlo usando gradle
node {
def gradleHome
stage(''Prepare/Checkout'') { // for display purposes
git branch: ''develop'', url: ''https://github.com/WtfJoke/Any.git''
dir(''a-child-repo'') {
git branch: ''develop'', url: ''https://github.com/WtfJoke/AnyChild.git''
}
env.JAVA_HOME="${tool ''JDK8''}"
env.PATH="${env.JAVA_HOME}/bin:${env.PATH}" // set java home in jdk environment
gradleHome = tool ''3.4.1''
}
stage(''Build'') {
// Run the gradle build
if (isUnix()) {
sh "''${gradleHome}/bin/gradle'' clean build"
} else {
bat(/"${gradleHome}/bin/gradle" clean build/)
}
}
}
Es posible que desee considerar el uso de submódulos de git en lugar de una tubería personalizada como esta.
Dependiendo de las relaciones de los repositorios, otro enfoque es agregar el otro repositorio (repositorios) como submódulos de git a uno de los repositorios. Un submódulo git crea una referencia a los otros repositorios. Esos repos de submódulos no se clonan a menos que se especifique el --recursive
cuando se --recursive
el "superproyecto" (término oficial).
Aquí está el comando para agregar un submódulo en el proyecto actual:
git submodule add <repository URI path to clone>
Estamos usando Jenkins v1.645 y el git SCM hará un clon recursivo para superproyectos fuera de la caja. Si obtiene los archivos del superproyecto y todos los archivos de repositorio dependientes (submódulo) en sus respectivos directorios en el mismo espacio de trabajo de trabajo de Jenkins.
No estoy seguro de que este sea el enfoque correcto , sino un enfoque.
Estamos usando git-repo para administrar nuestros múltiples repositorios GIT. También hay un plugin de Jenkins Repo que permite verificar la totalidad o parte de los repositorios gestionados por git-repo en el mismo espacio de trabajo de Jenkins.
No es posible verificar más de un repositorio a la vez en un único espacio de trabajo con Jenkins + Git Plugin.
Como solución alternativa, puede tener múltiples trabajos ascendentes que comprueben un solo repositorio cada uno y luego copie en el espacio de trabajo final del proyecto (Problemática en varios niveles), o puede configurar un paso de creación de scripts que verifique cada repositorio necesario para el espacio de trabajo de trabajo en tiempo de construcción.
Definitivamente recomendaría este último enfoque ya que no tendrá que preocuparse si la ubicación del espacio de trabajo cambia (puede usar la variable de entorno $ WORKSPACE).
EDICIÓN 2014: esta respuesta está desactualizada y ya no refleja las mejores prácticas. Por favor, consulte las respuestas a continuación con respecto al complemento Multiple SCM .
EDIT2 de 2016: el complemento Multiple SCM está en desuso. Desde la página del complemento Multiple SCM: "Los usuarios deben migrar a https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin . Pipeline ofrece una mejor manera de verificar varios SCM, y es compatible con Jenkins. equipo central de desarrollo ".
Utilicé el complemento Multiple SCMs junto con el complemento de Git con éxito con Jenkins.