At the company where I work, there is a GitHub Enterprise instance hosted on-site on which my department has an a.
The main repository my departments owns on that GitHub Enterprise instance is a big monorepo with several dozen projects in that single repository. Since most projects in the repository have at least one Jenkinsfile, we all in all have about 140 Jenkins pipelines associated with that single GitHub repo. Each pipeline is associated with an individual trigger path file which lists the repository paths which should trigger a pipeline run when changes are pushed to them.
The pipelines are communicating with GitHub via a GitHub App. All in all, this setup works.
The main issue we face is that when changes are pushed to the GitHub server, Jenkins easily takes 40 minutes to decide for each pipeline individually if it should run or not based on the trigger path files. Thus, 40 minutes pass between the first pipeline being triggered by the push event and the last pipeline being triggered.
We have only recently migrated from SVN and while SVN had its own issues, the SVN commit webhooks were handled quickly and all pipelines related to commits were triggered in less than a minute.
Is there some way to speed up Jenkins when GitHub is the SCM for our Multibranch pipeles?
Versions in use:
- GitHub Enterprise Server - 3.14.2
- Jenkins - 2.492.2 Pipeline:
- Pipeline: Multibranch - 803.v08103b_87c280
- Pipeline: Multibranch build strategy extension - 60.vce1b_19770361
- GitHub Branch Source Plugin - 1810.v913311241fa_9