Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In Jenkins, how to checkout a project into a specific directory (using GIT)

Sorry for the 'svn' style - we are in a process of migration from SVN to GIT (including our CI Jenkins environment).

What we need is to be able to make Jenkins to checkout (or should I say clone?) the GIT project (repository?) into a specific directory. We've tried some refspecs magic but it wasn't too obvious to understand and use successfully.

Furthermore, if in the same Jenkins project we need to checkout several private GitHub repositories into several separate dirs under a project root, how can we do it please?

We have GitHub plugin installed. Hope we've phrased the things right.

like image 743
viebel Avatar asked Mar 19 '12 09:03

viebel


People also ask

How do I add a Git repository to Jenkins?

Follow these steps: Step 1 Go to Manage Jenkins -> Manage Plugin. Step 2 Search Github Plugin in the Available tab then click on Download now and install after the restart. Step 3 Under Source Code Management tab, select Git and then set the Repository URL to point to your GitHub Repository.


1 Answers

In the new Jenkins 2.0 pipeline (previously named the Workflow Plugin), this is done differently for:

  • The main repository
  • Other additional repositories

Here I am specifically referring to the Multibranch Pipeline version 2.9.

Main repository

This is the repository that contains your Jenkinsfile.

In the Configure screen for your pipeline project, enter your repository name, etc.

Do not use Additional Behaviors > Check out to a sub-directory. This will put your Jenkinsfile in the sub-directory where Jenkins cannot find it.

In Jenkinsfile, check out the main repository in the subdirectory using dir():

dir('subDir') {     checkout scm } 

Additional repositories

If you want to check out more repositories, use the Pipeline Syntax generator to automatically generate a Groovy code snippet.

In the Configure screen for your pipeline project:

  1. Select Pipeline Syntax. In the Sample Step drop down menu, choose checkout: General SCM.
  2. Select your SCM system, such as Git. Fill in the usual information about your repository or depot.
  3. Note that in the Multibranch Pipeline, environment variable env.BRANCH_NAME contains the branch name of the main repository.
  4. In the Additional Behaviors drop down menu, select Check out to a sub-directory
  5. Click Generate Groovy. Jenkins will display the Groovy code snippet corresponding to the SCM checkout that you specified.
  6. Copy this code into your pipeline script or Jenkinsfile.
like image 192
John McGehee Avatar answered Sep 20 '22 16:09

John McGehee