У меня есть конвейер выпуска в devops Azure, где я делаю следующее:
- Получите значения из (возможно, несуществующего) keyvault, используя «Задачу хранилища ключей Azure» (https://github.com/Microsoft/azure-pipelines-tasks/blob/master/Tasks/AzureKeyVaultV1/README.md)
- Используя python-скрипт, проверьте, установлен ли пароль в хранилище ключей 2.1. Если установлено: сохранить как переменную. 2.2 Если не задано: создать новый пароль и сохранить как переменную
- .Запустите задачу шаблона arm, чтобы создать keyVault, хранящее пароль
Цель заключается в следующем: при первом запуске конвейера keyvault не создается, поэтому входные данные для сценария python пусты*. Затем я создаю пароль и задаю его как переменную, которая сохраняется в keyVault. При последующих запусках хранилище ключей существует, а скрипт python экспортирует существующие пароли. Значение пароля для пароля не изменяется. Всевсе в порядке
Однако: «Задача хранилища ключей Azure» завершается ошибкой, когда хранилище ключей не существует. Таким образом: Мне нужно установить задачу «Продолжить при ошибке». Это работает нормально, кромеиз одной детали: конвейер сообщает «Частично успешно» и использует оранжевый цвет.С моей точки зрения, этот трубопровод не "частично преуспел", он сделал именно то, что должен был сделать.Таким образом, это предупреждение вводит в заблуждение других, которые могут увидеть результат.
Итак, мой вопрос таков: есть ли способ полностью игнорировать ошибку в задаче конвейера?То есть: продолжить с ошибкой, не показывая «частично успешно»?
Или есть какой-то другой способ сделать то, что я пытаюсь здесь?Я знаю, что могу заранее создать пустое хранилище ключей, но выполнение этого вручную сводит на нет цель автоматизации вещей, а запуск еще одного шаблона ARM кажется ненужным и громоздким.
- Это еще одна странная проблема.Я обнаружил, что при передаче скрипта Python неопределенная переменная, например.$ (myUndefinedVariable), строка '$ (myUndefinedVariable)' фактически передана ... Хотя это не связано с этим вопросом ..