GitLab CI rules evaluation behaves unexpectedly with empty variables
If you have a variable that you assign to a unassigned variable, rule expressions behave unexpectedly:
variables:
MY_VARIABLE: $I_AM_UNDEFINED
# left out the rest for breviety
- if: '$MY_VARIABLE == null' # evaluates to false
- if: '$MY_VARIABLE == ""' # evaluates to false
- if: '$MY_VARIABLE' # evaluates to true
- if: '$I_AM_UNDEFINED == null' # evaluates to true
- if: '$I_AM_UNDEFINED == ""' # evaluates to false
- if: '$I_AM_UNDEFINED' # evaluates to false
Here is an MR showing it in detail: leipert/test-project!14 (diffs), with the associated pipeline: https://gitlab.com/leipert/test-project/-/pipelines/286308049
Edited by Lukas 'ai-pi' Eipert