Расширение для Azure Devops и выход - PullRequest
0 голосов
/ 24 апреля 2020

Я разработчик частного пользовательского расширения, которое можно использовать в Azure Devops.

У меня проблема c в выводе задачи. json в нашем расширении и я не могу помочь. чтобы прояснить / решить проблему c.

1-Что работает.

Я создал выпуск с 2-мя шагами: Первый шаг, выполнить мое расширение Второй шаг, получить выходную переменную (извините для именования задачи я нахожусь в режиме тестирования) enter image description here

Наша задача. json Выполните скрипт с именем vm.ps1

enter image description here

В этом скрипте vm.ps1 у меня есть фрагмент кода для установки значения переменной $ VirtualMachineId:

enter image description here

Это значение затем извлекается со вторым шагом выпуска, azure встроенный скрипт powershell:

enter image description here

Результат отображается в журнале: enter image description here

Мое значение восстановлено, цель достигнута sh.

2-Что не работает: Реализация Нет в задаче. json

Теперь, если я хочу полностью реализовать эту переменную в продукте, мне нужно добавить ее в выходной раздел нашей задачи. json:

enter image description here

Итак, пользовательский интерфейс нашего интерфейса будет отображаться в разделе вывода, как в примере ниже (не беспокойтесь, если не увидите VirtualMachineId на изображении ниже, это иллюстративное изображение): enter image description here

Я запускаю свой выпуск еще раз, как я вижу в журнале выполнения расширения, для переменной задано соответствующее значение.

enter image description here

Затем выполняется встроенный сценарий Azure и значение пусто : enter image description here

Для возобновления: если я объявлю переменную в разделе вывода задачи json, я не смогу получить значение или оно пустое. Кто-нибудь здесь имеет представление о том, что я делаю неправильно?

Спасибо, что нашли время, чтобы прочитать меня.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

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

Например: Загрузить защищенный файл У задачи есть выходная переменная (secureFilePath). Для того чтобы следующая задача ссылалась на свою выходную переменную. Имя ссылки должно быть определено (например, myFile).

enter image description here

Затем в следующих задачах. Вы можете обратиться к выходной переменной (secureFilePath) с помощью $(myFile.secureFilePath)

enter image description here

Надеюсь, что выше поможет!

0 голосов
/ 24 апреля 2020

Вот пример того, как передавать переменные между задачами (в adhoc scripting):

  1. Задача первая (установить новую переменную):
steps:
- powershell: 'Write-Host "##vso[task.setvariable variable=testvar;]testvalue"'
  displayName: 'set_variable'
Задача вторая (получить переменную из области):
steps:
- powershell: 'Write-Host $(testvar)'
  displayName: 'print_variable'

Таким образом, ваша переменная доступна во всех задачах при одинаковом выполнении задания.

Выходные переменные предназначены для быть способом передачи значения между задачами. Если вам нужно передать переменную между jobs, просто используйте dependencies с output variables.

Здесь я сделал пример этапа, который:

  • содержит 2 задания A & B
  • создает выходную переменную с именем testvar
  • передает выходную переменную между этапами с использованием зависимостей
  • отображает переменную
trigger:
- master

jobs:
- job: A
  steps:
  - powershell: 'Write-Host "##vso[task.setvariable variable=testvar;isOutput=true;]testvalue"'
    displayName: 'set_variable'  
    name: "Setter"
- job: B
  dependsOn: A
  variables:
    # map the output variable from A into this job
    varFromA: $[ dependencies.A.outputs['Setter.testvar'] ]
  steps:
  - script: echo $(varFromA)

Если это не решит проблему .. Это означает, что я не понимаю ваш вариант использования. Не могли бы вы подробнее рассказать?

Здесь вы можете увидеть полезную документацию.

GitHub Notes Microsoft Notes

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