jenkinsci / github-checks-plugin

Jenkins Plugin for GitHub Checks API
https://plugins.jenkins.io/github-checks/
MIT License
78 stars 38 forks source link

When multiple builds are enabled for a single commit, GH checks get overwritten by the latest to finish #279

Open aitorpazos opened 2 years ago

aitorpazos commented 2 years ago

Jenkins and plugins versions report

Environment ```text Jenkins: 2.332.3 OS: Linux - 5.11.0-1022-gcp --- ace-editor:1.1 analysis-model-api:10.10.1 ansible:1.1 ansicolor:1.0.1 ant:475.vf34069fef73c antisamy-markup-formatter:2.7 apache-httpcomponents-client-4-api:4.5.13-1.0 artifactory:3.16.2 authentication-tokens:1.4 authorize-project:1.4.0 azure-commons:1.1.3 basic-branch-build-strategies:1.3.2 blueocean:1.25.5 blueocean-autofavorite:1.2.5 blueocean-bitbucket-pipeline:1.25.5 blueocean-commons:1.25.5 blueocean-config:1.25.5 blueocean-core-js:1.25.5 blueocean-dashboard:1.25.5 blueocean-display-url:2.4.1 blueocean-events:1.25.5 blueocean-git-pipeline:1.25.5 blueocean-github-pipeline:1.25.5 blueocean-i18n:1.25.5 blueocean-jira:1.25.5 blueocean-jwt:1.25.5 blueocean-personalization:1.25.5 blueocean-pipeline-api-impl:1.25.5 blueocean-pipeline-editor:1.25.5 blueocean-pipeline-scm-api:1.25.5 blueocean-rest:1.25.5 blueocean-rest-impl:1.25.5 blueocean-web:1.25.5 bootstrap4-api:4.6.0-5 bootstrap5-api:5.1.3-7 bouncycastle-api:2.26 branch-api:2.1046.v0ca_37783ecc5 build-blocker-plugin:1.7.8 build-time-blame:64.vd8f4018a2bbe build-user-vars-plugin:1.8 caffeine-api:2.9.3-65.v6a_47d0f4d1fe checks-api:1.7.4 cloudbees-bitbucket-branch-source:773.v4b_9b_005b_562b_ cloudbees-disk-usage-simple:0.10 cloudbees-folder:6.729.v2b_9d1a_74d673 cobertura:1.17 code-coverage-api:2.0.4 command-launcher:84.v4a_97f2027398 conditional-buildstep:1.4.2 config-file-provider:3.10.0 convert-to-pipeline:1.0 cortex-metrics:1.0.1 couchdb-build-metadata:0.15.2 credentials:1087.1089.v2f1b_9a_b_040e4 credentials-binding:523.vd859a_4b_122e6 data-tables-api:1.11.4-4 declarative-pipeline-migration-assistant:1.5.2 declarative-pipeline-migration-assistant-api:1.5.2 disable-github-multibranch-status:1.2 display-url-api:2.3.6 docker-build-publish:1.3.3 docker-build-step:2.8 docker-commons:1.19 docker-slaves:1.0.7 docker-workflow:1.28 doclinks:0.6.1 durable-task:496.va67c6f9eefa7 echarts-api:5.3.2-3 email-ext:2.88 embeddable-build-status:2.0.3 envinject:2.866.v5c0403e3d4df envinject-api:1.199.v3ce31253ed13 extended-choice-parameter:346.vd87693c5a_86c extended-read-permission:3.2 external-monitor-job:191.v363d0d1efdf8 favorite:2.4.1 font-awesome-api:6.1.1-1 forensics-api:1.14.0 git:4.11.3 git-changelog:3.23 git-client:3.11.0 git-parameter:0.9.17 git-server:1.11 github:1.34.3 github-api:1.303-400.v35c2d8258028 github-branch-source:1637.vd833b_7ca_7654 github-checks:1.0.18 google-oauth-plugin:1.0.6 gradle:1.39.1 h2-api:1.4.199 handlebars:3.0.8 handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953 hashicorp-vault-pipeline:1.3 hashicorp-vault-plugin:336.v182c0fbaaeb7 htmlpublisher:1.30 http_request:1.15 ivy:2.2 jackson2-api:2.13.3-285.vc03c0256d517 jacoco:3.3.2 javadoc:217.v905b_86277a_2a_ javax-activation-api:1.2.0-3 javax-mail-api:1.6.2-6 jaxb:2.3.6-1 jdk-tool:1.5 jenkins-design-language:1.25.5 jira:3.7.1 jjwt-api:0.11.5-77.v646c772fddb_0 jnr-posix-api:3.1.7-3 job-dsl:1.79 jquery:1.12.4-1 jquery-detached:1.2.1 jquery3-api:3.6.0-4 jsch:0.1.55.2 junit:1119.va_a_5e9068da_d7 kubernetes:3636.v84b_a_1dea_6240 kubernetes-cd:2.3.1 kubernetes-client-api:5.12.2-193.v26a_6078f65a_9 kubernetes-credentials:0.9.0 ldap:2.10 lockable-resources:2.15 mailer:414.vcc4c33714601 mapdb-api:1.0.9.0 matrix-auth:3.1.2 matrix-project:771.v574584b_39e60 maven-plugin:3.19 mercurial:2.16.2 metrics:4.1.6.2 momentjs:1.1.1 multibranch-build-strategy-extension:1.0.10 oauth-credentials:0.5 oic-auth:1.8 okhttp-api:4.9.3-105.vb96869f8ac3a opentelemetry:2.7.1 packer:1.5 pam-auth:1.8 parameter-separator:1.3 parameterized-trigger:2.44 pipeline-build-step:2.18 pipeline-github-lib:38.v445716ea_edda_ pipeline-graph-analysis:195.v5812d95a_a_2f9 pipeline-groovy-lib:593.va_a_fc25d520e9 pipeline-input-step:448.v37cea_9a_10a_70 pipeline-maven:3.10.0 pipeline-milestone-step:101.vd572fef9d926 pipeline-model-api:2.2086.v12b_420f036e5 pipeline-model-definition:2.2086.v12b_420f036e5 pipeline-model-extensions:2.2086.v12b_420f036e5 pipeline-rest-api:2.24 pipeline-stage-step:293.v200037eefcd5 pipeline-stage-tags-metadata:2.2086.v12b_420f036e5 pipeline-stage-view:2.24 pipeline-utility-steps:2.12.2 plain-credentials:1.8 plugin-util-api:2.17.0 popper-api:1.16.1-3 popper2-api:2.11.5-2 prism-api:1.28.0-2 prometheus:20.0.11 pubsub-light:1.16 rebuild:1.34 resource-disposer:0.19 robot:3.2.0 run-condition:1.5 saml:2.298.vc7a_2b_3958628 sbt:1.5 scm-api:608.vfa_f971c5a_a_e9 scmskip:1.0.3 script-security:1175.v4b_d517d6db_f0 slack:608.v19e3b_44b_b_9ff snakeyaml-api:1.30.1 sonar:2.14 sse-gateway:1.25 ssh-agent:295.v9ca_a_1c7cc3a_a_ ssh-credentials:277.v95c2fec1c047 sshd:3.237.v883d165a_c1d3 structs:318.va_f3ccb_729b_71 subversion:2.15.5 timestamper:1.17 token-macro:293.v283932a_0a_b_49 trilead-api:1.57.v6e90e07157e1 uno-choice:2.6.2 validating-string-parameter:2.8 variant:1.4 warnings-ng:9.12.0 windows-slaves:1.8.1 workflow-aggregator:581.v0c46fa_697ffd workflow-api:1164.v760c223ddb_32 workflow-basic-steps:948.v2c72a_091b_b_68 workflow-cps:2725.v7b_c717eb_12ce workflow-cps-global-lib:588.v576c103a_ff86 workflow-durable-task-step:1146.v1a_d2e603f929 workflow-job:1186.v8def1a_5f3944 workflow-multibranch:716.vc692a_e52371b_ workflow-scm-step:400.v6b_89a_1317c9a_ workflow-step-api:625.vd896b_f445a_f8 workflow-support:820.vd1a_6cc65ef33 ```

What Operating System are you using (both controller, and any agents involved in the problem)?

Linux VM for controller and agents running in kubernetes.

Reproduction steps

  1. Configure a GitHub app for Jenkins and have it configured with multibranch repositories
  2. Configure multibranch repositories to build on branches and on PRs (useful for using a merging strategy and test the result of the merge), thus resulting in multiple builds reporting to a single commit.
  3. Enable Skip GitHub Branch Source notifications so we on get checks issued by github-checks-plugin in GitHub.

Expected Results

Different checks to be published in GitHub, one for the branch build and one for the PR build.

Actual Results

A single check is published under Jenkins (by default) which correspond to the last build finishing.

Anything else?

No response

KalleOlaviNiemitalo commented 2 years ago

What should the checks ID be for the branch and for the pull request?

usmonster commented 1 year ago

What should the checks ID be for the branch and for the pull request?

It could copy the configuration from Jenkins, which by default reports these checks as continuous-integration/jenkins/pr-merge, continuous-integration/jenkins/branch, etc.