How to discover Jenkinsfile in subfolders
Asked Answered
Z

3

10

I have a project with two folders, that are independent, and needs separate builds in Jenkins (running v2.74)

My structure is

folder
├── project1
│   └── Jenkinsfile
└── project2
    └── Jenkinsfile

When I click "scan organization" in Jenkins, it doesnt discover the Jenkinsfiles in subdirectories.

Here is a sample from the "Scan organization log":

Proposing kg-pipeline
Examining my-test-project

  Checking branches...

  Getting remote branches...

    Checking branch jenkins
      ‘Jenkinsfile’ not found
    Does not meet criteria

    Checking branch master
      ‘Jenkinsfile’ not found
    Does not meet criteria

  2 branches were processed

Finished examining my-test-project

I didnt touch the configuration of the job that scans the organization and finds branches with Jenkinsfiles. Here is the current setting for the project

Jenkinsfile discoverability configuration

My question is: How do I configure Jenkins to see each folder individually? I am also interested in links to example projects set up this way.

Zared answered 12/10, 2017 at 8:45 Comment(1)
From looking at the plugin sources here now it looks like that the script path check code considers the path absolut and does not process wildcards. So if that is correct the plugin still only considers 1 Jenkinsfile per repository. This is an unfortunate limitation.Chauncey
D
16

There is a simple solution.

  1. go to JENKINS_URL/job/JOB_NAME/configure
  2. under Build Configuration, select by Jenkinsfile for Mode
  3. under Script Path, set it to DIR_NAME/Jenkinsfile

For instance, if you had your Jenkinsfile inside a src directory, then you would set it to src/Jenkinsfile and Jenkins will be able to find the Jenkinsfile now

Drogheda answered 21/6, 2018 at 17:58 Comment(2)
Would such a configuration work if I have 2 or more project folders, each with their respective Jenksfile .Necolenecro
It looks like that the plugin only checks for the given name explicitly, and does not process wildcards, so this will still only provide a single Jenkinsfile per repoisitory.Chauncey
A
1

Currently trying to set up the same thing - this might help, even though it's not a complete answer:

According to this you should be able to setup two Multibranch Pipeline Projects, each with the configuration Mode "by Jenkinsfile".

Support for using custom paths for the Jeninsfile was added in JENKINS-34561

Antenna answered 18/12, 2017 at 9:31 Comment(0)
P
0

You can add more than one "Pipeline Jenkinsfile" under Project Recognizers with your paths to Jenkins files.

Pathos answered 1/2, 2019 at 17:3 Comment(3)
Can you please add more details explaining how this answers the question ?Underlay
In an Organization Folder, when you are scanning multiple repositories - different repos may have Jenkinsfile at different locations. Using multiple project recognizers solves this for you to be able to scan all repos in your organization when they have different structures. However, if you expect multiple jenkins files to be loaded from the same repo, unfortunately this cannot be done in one Organization Folder setupPathos
Multiple Jenkinsfile per repository is still being explored: issues.jenkins-ci.org/browse/…Greatgrandaunt

© 2022 - 2024 — McMap. All rights reserved.