!reference tags overwrite extended job variables
Summary
!reference tags overwrite extended job variables when job does not select a specific variable to reuse.
Steps to reproduce
create a .gitlab-ci.yaml file with the below configuration:
.vars-1:
variables:
VAR_1_TEST: "this is var-1"
.vars-2:
variables:
VAR_2_TEST: "this is var-2"
test-all-vars:
extends: .vars-1
variables: !reference [.vars-2, variables]
script:
- printenv
What is the current bug behavior?
Job referencing variables does not include extended variables.
Sample output from CI/CD editor:
---
".vars-1":
variables:
VAR_1_TEST: this is var-1
".vars-2":
variables:
VAR_2_TEST: this is var-2
test-all-vars:
variables:
VAR_2_TEST: this is var-2
extends: ".vars-1"
script:
- printenv
What is the expected correct behavior?
Job include both referenced and extended variables.
Example below:
---
".vars-1":
variables:
VAR_1_TEST: this is var-1
".vars-2":
variables:
VAR_2_TEST: this is var-2
test-all-vars:
variables:
VAR_1_TEST: this is var-1
VAR_2_TEST: this is var-2
extends: ".vars-1"
script:
- printenv