Azure Devops yml pipeline if else condition with variables

I was able to achieve the goal using some dirty work-around, but I do agree that using parameters would be much better way unless ternary operators are available for Azure DevOps YAML pipeline.

The issue is that ${{ if condition }}: is compile time expression, thus the variables under variable group are not available.

I was able to use runtime expressions $[<expression>]

Reference: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops

My pipeline:

trigger:
  - none

variables:
  - group: Temp-group-for-testing
  - name: fileName
    value: $[replace(replace('True',eq(variables['test'], 'True'), 'value1'),'True','value2')]

stages:
  - stage: test
    jobs: 
     - job: testvar
       continueOnError: false
       steps: 
         - bash: echo $(fileName)
           displayName: "echo variable"

Results are available on github