Gitlab Pipeline | CI_COMMIT_BEFORE_SHA is zero in case of $CI_PIPELINE_SOURCE = "web"

Viewed 392

Trying to retrieve latest commit in main branch before the new head.

But using CI_COMMIT_BEFORE_SHA its returning always zero's. In case, if I run pipeline from the GitLab UI.

It working fine if its trigged automatically in case of a push to main branch.

Pipline Custome Variables using Predefined Gitlab CI variables:--

  • NX_HEAD=$CI_COMMIT_SHA
  • NX_BASE=${CI_MERGE_REQUEST_DIFF_BASE_SHA:-$CI_COMMIT_BEFORE_SHA}

enter image description here

1 Answers

Check if this is related to issue 12850 "CI_COMMIT_BEFORE_SHA is all zero in a merge request pipeline".
Or issue 28252 "Expose CI_MERGE_REQUEST_SOURCE_BRANCH_SHA and CI_MERGE_REQUEST_TARGET_BRANCH_SHA in detached merge request pipelines"

Try a simple test to see if that would work better with your current version of GitLab:

image: node:8

test-ci-vars:
  only:
    - master
    - merge_requests
  script:
    - echo CI_COMMIT_REF_NAME=${CI_COMMIT_REF_NAME}
    - echo CI_MERGE_REQUEST_SOURCE_BRANCH_SHA=${CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}
    - echo CI_MERGE_REQUEST_TARGET_BRANCH_SHA=${CI_MERGE_REQUEST_TARGET_BRANCH_SHA}
    - echo CI_MERGE_REQUEST_SOURCE_BRANCH_NAME=${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}
    - echo CI_MERGE_REQUEST_TARGET_BRANCH_NAME=${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}

Related