Jenkinsfile con dos repositorios git
jenkins-pipeline (2)
Estoy usando el plugin Jenkins pipeline con un Jenkinsfile.
En un repositorio, llamado vms.git, tengo el archivo Jenkins y una aplicación que construye.
Tengo otro repositorio llamado deploy.git, que contiene los scripts que quiero usar para implementar la aplicación en vms.git.
En este momento mi archivo Jenkins se ve así
node {
stage ''build''
checkout scm
y estoy definiendo el repositorio vms.git en la configuración del trabajo.
Entonces, lo que me gustaría hacer es revisar ambos repositorios, luego usar el archivo Jenkins en vms.git para definir el resto de la compilación. Quiero reutilizar los scripts de deploy.git en otras tuberías, por lo que no quiero poner un archivo Jenkins allí.
Otra solución elegante para manejar múltiples repositorios Git dentro de una sola tubería se puede encontrar en este hilo .
node {
dir(''RepoOne'') {
git url: ''https://github.com/somewhere/RepoOne.git''
}
dir(''RepoTwo'') {
git url: ''https://github.com/somewhere/RepoTwo.git''
}
sh(''. RepoOne/build.sh'')
sh(''. RepoTwo/build.sh'')
}
Puede desproteger varios directorios utilizando checkout
, pero debe especificar el directorio en el que desea verificar esto. Puede generar fragmentos de código utilizando jenkins (campo de script de abajo del generador de fragmentos de código). Elija checkout, el próximo repositorio de git y en Comportamientos adicionales elija: checkout en el subdirectorio.
Cuando tenga 2 repositorios, puede cargar el script del repositorio que desee que se load
. Ejemplo:
node {
// first repository
checkout([$class: ''GitSCM'', branches: [[name: ''*/master'']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: ''RelativeTargetDirectory'', relativeTargetDir: ''subdirectory1'']], submoduleCfg: [], userRemoteConfigs: [[url: ''repo1.git'']]])
// second repository
checkout([$class: ''GitSCM'', branches: [[name: ''*/master'']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: ''RelativeTargetDirectory'', relativeTargetDir: ''subdirectory2'']], submoduleCfg: [], userRemoteConfigs: [[url: ''repo2.git'']]])
// run first script
load ''subdirectory1/Jenkinsfile''
// run second script
load ''subdirectory2/Jenkinsfile''
}