Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-66852

Using GitHub instead of plain Git makes builds noticeably slower

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Minor Minor
    • github-checks-plugin
    • None

      Building a Multibranch Pipeline project with this pipeline

       

      pipeline {
        agent {
          label 'my_label'
        }
      
        options {
          skipDefaultCheckout()
          disableConcurrentBuilds()
          durabilityHint('PERFORMANCE_OPTIMIZED')
        }
      
        stages {
          stage('Build') {
            matrix {
              axes {
                axis {
                  name 'PLATFORM'
                  values 'A',
                         'B',
                         'C',
                         'D',
                         'E',
                         'F',
                         'G',
                         'H',
                         'I',
                         'J',
                         'K',
                         'L',
                         'M',
                         'N',
                         'O'
                }
              }
      
              stages {
                stage('Build A') {
                  steps {
                    sh label:  'Configure',
                       script: "echo 1"
                    sh label:  'Build',
                       script: "echo 2"
                  }
                }
      
                stage('Build B') {
                  steps {
                    sh label:  'Configure',
                       script: "echo 3"
                    sh label:  'Build',
                       script: "echo 4"
                  }
                }
      
                stage('Install') {
                  steps {
                    sh label:  'Install A',
                       script: "echo 4"
                    sh label:  'Install B',
                       script: "echo 5"
                  }
                }
              }
            }
          }
        }
      }

      takes 3 minutes if I use "GitHub" as "Branch Sources", but 3 seconds if I use "Git".

       

      I guess this happens because when using the GitHub Branch Source Jenkins continuously updates GitHub with the state of the build. But it's a crazy amount of time.

      I don't think it's the case, but if this is causes because of some intrinsic limitation in GitHub I would like to have an option to disable all the intermediate status updates. I basically just want to know it has started and when it has finished.

      I use the GitHub app as "Credentials" in both cases, so I have the big (12,500?) rate limit.

      Jenkins 2.303.2 with the latest versions of "GitHub API", "GitHub Authentication", "GitHub Branch Source", "GitHub Checks", "GitHub Pipeline for Blue Ocean" and "GitHub" plugins installed.

      I'm assigning this to the "github-plugin" component, but I'm not really sure if it should go into github-api, github-checks or something else.

            xiongkezhi Kezhi Xiong
            reddwarf94 Cristian
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: