Я пытаюсь поместить переменную в параметр конвейера yml для Azure DevOps. Я пытаюсь сделать это так:
variables:
myArg: true
- template: my-custom-template.yml@myrep
parameters:
myArg: $[ eq(variables.argVal, 'true') ]
Но я получаю сообщение об ошибке:
$[eq(variables.argVal, 'истина') ]
Не удается обработать преобразование аргумента для параметра | 'мойАрг'. Не удается преобразовать значение «System.String» в тип | "Системный.Булев". Логические параметры принимают только логические значения и | числа, такие как $True, $False, 1 или 0.
Вместо $[ eq(variables.argVal, 'true') ]
я попробовал ${{ eq(variables.argVal, 'true') }}
и $( eq(variables.argVal, 'true') )
. Все выдавали одну и ту же ошибку.
Итак, может ли кто-нибудь помочь мне понять, как правильно преобразовать переменную в логический параметр в конвейере Azure DevOps yml, пожалуйста?
Вы не можете использовать параметры с выражениями времени выполнения ($[]
). Параметры разрешаются во время компиляции шаблона, прежде чем можно будет оценить выражения времени выполнения. Вы должны использовать выражения компиляции, ${{}}