You should use git submodules to handle multiple repositories.

Check the submodule documentation for more info.

/John

On Mon, 23 Nov, 2020, 2:15 am Sravya Kancherla, <[email protected]>
wrote:

>
> Hi,
>
> I have Pipeline for multiple Git repositories to checkout and i want to
> skip one repo at particular branch
>
> eg: repo1,repo2,repo3,repo4.....
>
> i want to skip repo3 when branch is re-5.1
> On Tuesday, May 28, 2019 at 5:53:09 PM UTC+5:30 Mark Waite wrote:
>
>>
>>
>> Git takes full control of the directory for each checkout.  Thus, the
>> last checkout "wins" by containing the content of only that checkout.
>>
>> Perform a checkout command for each repository in a separate directory.
>> Create the directory for each checkout with the dir() step or the ws()
>> step, and place the checkout inside the block from that step.  Something
>> like this:
>>
>> dir('dir-1-for-repo-1') {
>>   checkout([$class: 'GitSCM', branches: [[name: gitBranch]], extensions:
>> [[$class: 'CloneOption', timeout: 120]],
>>           userRemoteConfigs: [[credentialsId: "${credentialsId}", url:
>> mainProjectGITURL ]  ]])
>> }
>> dir('dir-2-for-repo-2') {
>>   checkout([$class: 'GitSCM', branches: [[name: gitBranch]], extensions:
>> [[$class: 'CloneOption', timeout: 120]],
>>           userRemoteConfigs: [[credentialsId: "${credentialsId}", url:
>> list[0] ]  ]])
>> }
>>
>> On Tue, May 28, 2019 at 4:14 AM Jacques van der Merwe <[email protected]>
>> wrote:
>>
>>> I know this is fairly old thread but I have an issue
>>> when using the multi repo checkout it seems to remove the previous repo
>>> checkout before doing the new one.
>>> I have tried checking all the repos required for my build using the
>>> Jenkins Declarative "checkout" command
>>> checkout([$class: 'GitSCM', branches: [[name: "${gitBranch}"]],
>>> doGenerateSubmoduleConfigurations: false, extensions: [[$class:
>>> 'CloneOption', timeout: 120]], submoduleCfg: [], userRemoteConfigs: [
>>>      [credentialsId: "${credentialsId}", url: "${mainProjectGITURL}"],
>>>      [credentialsId: "${credentialsId}", url: "${list[0]}"],
>>>      [credentialsId: "${credentialsId}", url: "${list[1]}"],
>>>      [credentialsId: "${credentialsId}", url: "${list[2]}"],
>>>      [credentialsId: "${credentialsId}", url: "${list[3]}"]
>>>      ]])
>>> With this config I can see on my build server each project are being
>>> checked out but only the last project is availbale after this checkout.
>>>
>>>
>> Multiple userRemoteConfigs in a single checkout command will perform a
>> single checkout of one of the remote configs.  It won't iterate over the
>> list of remote configs and definitely won't create the separate
>> subdirectories that would be needed to retain a checkout of multiple
>> repositories.
>>
>> Multiple userRemoteConfigs in a single checkout are allowed as a
>> historical use that was allowed for those rare cases where multiple
>> locations contained the same repository and any one of the repositories
>> could be used.  Multiple userRemoteConfigs won't help in this case and they
>> don't help in almost all cases.
>>
>>
>>> I also tried doing in a loop using "git" only
>>>    def list = "${includedProjectsGITURLS}".split("\n")
>>>     echo "Number of repos : " + list.size()
>>>     echo "Checking out main project (${gitBranch}) :  " +
>>> mainProjectGITURL + "\n";
>>>     git credentialsId: 'blablabla', url: "${mainProjectGITURL}"
>>>     for (String gitSubURL:list)
>>>  {
>>>     echo "Checking out sub project (${gitBranch}) :  " + gitSubURL +
>>> "\n";
>>>         git credentialsId: 'blablabla', url: "${gitSubURL}"
>>>  }
>>> The result is the same, making me think "checkout" is just wrapper for
>>> GIT
>>>
>>>
>> The git step is a simplified form of the checkout step.  If your case
>> does not need the full capability of the checkout step, you are welcome to
>> use the git step.  I find that I almost always want the checkout step
>> because it allows me to control things more precisely.
>>
>>
>>> I also tried checking each repo into its own sub folder but the result
>>> is the same
>>>
>>>
>> We'll need more explanation of what was tried in this case, since that is
>> the technique that works for many users.
>>
>> Thanks,
>> Mark Waite
>>
>>
>>> any ideas how I can checkout multiple repos in Jenkins declarative
>>> script for single build
>>>
>>>
>>>
>>> On Wednesday, December 21, 2016 at 7:25:43 PM UTC+2, Torsten Reinhard
>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I have a pipeline doing a build and afterwards a deployment to the TEST
>>>> environment.
>>>>
>>>> For the build I need to
>>>> // checkout sources for building
>>>> checkout scm
>>>>
>>>> and later on I need to
>>>> //checkout configuration for TEST environment
>>>> checkout scm (config)
>>>>
>>>> I wasn´t able to configure a working directory for each repo - and the
>>>> "Multiple SCMs plugin" is deprecated with a hint to the Pipeline plugin.
>>>> How can I setup the Pipeline job so it´s using "Pipeline script from
>>>> SCM" AND additionally some files/configs from a different repo?
>>>>
>>>> I know about the workaround with subtrees and also this issue:
>>>> https://issues.jenkins-ci.org/browse/JENKINS-13228,
>>>> but I´m wondering why help points to the Pipeline plugin ?
>>>>
>>>> Any sample setup available ?
>>>>
>>>> Thanx for helping,
>>>>
>>>> Torsten
>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Jenkins Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>>
>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/jenkinsci-users/0d41e558-853d-4cbc-8b8f-fbcdfffedb57%40googlegroups.com
>>> <https://groups.google.com/d/msgid/jenkinsci-users/0d41e558-853d-4cbc-8b8f-fbcdfffedb57%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>
>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> --
>> Thanks!
>> Mark Waite
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/a3a16754-74b5-4022-88ea-eb9e0ac19555n%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-users/a3a16754-74b5-4022-88ea-eb9e0ac19555n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/CAGJXh7o_iovEq2jqrA2f3dW7ajtansTJ7iW%3D8CtmvpnLExxBCg%40mail.gmail.com.

Reply via email to