CI with conditional steps validation issue

Problem to solve

Hello team,

I have a problem with a simple CI pipeline - whenever I raise MR against default branch, the validation fails even though it works completely fine when it runs triggered by push request. Can someone provide some information what is wrong?

Steps to reproduce

Raise MR from the future branch to default branch

Configuration

stages:          # List of stages for jobs, and their order of execution
 - build
 - test
 - deploy

build-job:       # This job runs in the build stage, which runs first.
 stage: build
 script:
   - echo "Compiling the code..."
   - echo "Compile complete."

unit-test-job:   # This job runs in the test stage.
 stage: test    # It only starts when the job in the build stage completes successfully.
 script:
   - echo "Running unit tests... This will take about 60 seconds."
   - sleep  1
   - echo "Code coverage is 90%"

lint-test-job:   # This job also runs in the test stage.
 stage: test    # It can run at the same time as unit-test-job (in parallel).
 script:
   - echo "Linting code... This will take about 10 seconds."
   - sleep 1 
   - echo "No lint issues found."

deploy-job:      # This job runs in the deploy stage.
 stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.
 needs:
   - unit-test-job
   - lint-test-job
 rules:
   - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
 script:
   - echo "Deploying application..."
   - echo "Application successfully deployed."

Versions

Please select whether options apply, and add the version information.

  • Self-managed
  • GitLab.com SaaS
  • Dedicated
  • Self-hosted Runners

Versions

  • GitLab 17.8
  • GitLab Runner, if self-hosted (Web /admin/runners or CLI gitlab-runner --version):

Can you share the job logs / screenshot of the error you are seeing?

Sure, it fails on the validation phase so it doesn’t even run the job