Spinnaker: установите для параметра stage значение «piepline param», если в противном случае - выражение конвейера с использованием параметров триггера - PullRequest
0 голосов
/ 15 января 2019

Описание проблемы:

  • Установить для 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 для выражения конвейера для инициируемого выполнения. ТИА.

1 Ответ

0 голосов
/ 02 июля 2019

На самом деле Spinnaker не предоставляет такую ​​функциональность напрямую.

Но вы можете сделать это несколькими различными способами:

  • Стадия сценария
  • Этап Дженскинса
  • Стадия выполнения задания

И реализуй там ту логику, которая тебе нужна.

Другой вариант - добавить несколько этапов условий, которые будут пропущены в зависимости от вашего ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...