-
Improvement
-
Resolution: Unresolved
-
Minor
-
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.
[JENKINS-66852] Using GitHub instead of plain Git makes builds noticeably slower
Description |
Original:
Building a Multibranch Pipeline project with this pipeline
{code:java} 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" } } } } } } }{code} 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. |
New:
Building a Multibranch Pipeline project with this pipeline
{code:java} 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" } } } } } } }{code} 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. |
Component/s | New: github-checks-plugin [ 27523 ] | |
Component/s | Original: github-plugin [ 15896 ] |
Assignee | Original: Kirill Merkushev [ lanwen ] | New: Kezhi Xiong [ xiongkezhi ] |
Uninstalling the GitHub Checks plugin fixed the issue. Installing it again reintroduces the issue. Changing the component to github-checks-plugin.