job:variables are not resolved before job:only:variables

Version

gitlab 12.7.5-ee

Summary

Assigning a job variable, a value from an environment variable fails to be resolved before the job only variables are evaluated. This prevents the job from being created.

Steps to reproduce

The following example has two test_jobs. test_job1 explicitly defines the SRC_BRANCH_NAME variable while test_job2 indirectly define the SRC_BRANCH_NAME via a global environment variable ALPHA_BRANCH.

It is expected that both jobs would run; however, only test_job1 runs.

variables:
  ALPHA_BRANCH: "develop"

stages:
  - test

test-job1:
  stage: test
  variables:
    SRC_BRANCH_NAME: 'develop'
    CI_DEBUG_TRACE: "true"
  script:
    - echo "hello"
  only:
    variables:
      - '$CI_COMMIT_REF_NAME== $SRC_BRANCH_NAME'

test-job2:
  stage: test
  variables:
    SRC_BRANCH_NAME: '$ALPHA_BRANCH'
    CI_DEBUG_TRACE: "true"
  script:
    - echo "hello"
  only:
    variables:
      - '$CI_COMMIT_REF_NAME == $SRC_BRANCH_NAME'

What is the current bug behavior?

Only one job runs

What is the expected correct behavior?

Both jobs should run

Edited by Joey Sullivan