Thought I’d post this here first in case I am doing something wrong before I log it as an issue.
As the title suggests, whenever I try to create a variable by joining a string and another variable, or, running a rules: if statement on a string joined with a variable it never evaluates correctly. To demonstrate my point, here is a simple yml file to test:
variables:
a: "powershell"
b: "whizz"
bot: "powershell${b}"
debug:
rules:
- if: $GITLAB_USER_LOGIN == $bot
script:
|
echo $bot
echo $GITLAB_USER_LOGIN
In the above example my username is powershellwhizz and the debug job should execute everytime I update the repo with a change, ONLY if executed by me. I then update any file as me to trigger the job but it never does so. If I change the $bot variable to the string “powershellwhizz” it then works, it’s as if the rules can’t see the variable inside the string. Here are the variations I have tried on the $bot variable and none of them work:
'powershell"$b"'
'powershell$b'
'powershell${b}'
"powershell${b}"
The 'powershell"$b"'
one is directly from the doco here which suggests it should work GitLab CI/CD variables | GitLab. Extract below:
Use variables in other variables
You can use variables inside other variables:
job:
variables:
FLAGS: '-al'
LS_CMD: 'ls "$FLAGS"'
script:
- 'eval "$LS_CMD"' # Executes 'ls -al'