Описание проблемы:
- Установить для envvar для сцены необязательный параметр конвейера, если он не равен нулю (для случая ручного выполнения)
- Установить для envvar stage значение выражения конвейера, используя триггерные параметры, если параметр конвейера равен нулю (для запуска при запуске от jenkins)
подробности:
У меня есть необязательный параметр конвейера APK_URL. Если он установлен, то я хочу использовать его как envVar APK_URL для сцены. Если он не установлен, то я хочу использовать URL, созданный с использованием параметров триггера с использованием выражения конвейера. Я попробовал следующее:
{
...
"parameterConfig": [
{
"description": "The url or url-key for apk to deploy to device",
"label": "APK_URL",
"name": "APK_URL",
"required": false
}
],
"stages": [
{
...
"containers": [
{
"args": [],
"command": [
"./scripts/entrypoint-deploy.sh"
],
"envVars": [
{
"name": "APK_URL",
"value": "(${parameters[\"APK_URL\"]} != null) ? ${parameters[\"APK_URL\"]} : https://my.com/application/${trigger['buildInfo']['scm']['branch']/${trigger['buildInfo']['artifacts'][0]['displayPath']}"
}
],
...
}
]
...
}
Когда я запускаю конвейер вручную (без триггера) с указанным параметром APK_URL, это выдает ошибку:
Failed to evaluate [value] EL1007E: Property or field 'branch' cannot be found on null
Похоже, что троичный оператор java оценивает URL, созданный из параметров триггера, даже если APK_URL не равен нулю.
Может кто-нибудь сказать мне, как я устанавливаю параметр stage для параметра конвейера для ручного выполнения и задаю параметр stage для выражения конвейера для инициируемого выполнения. ТИА.