Как задать входные переменные при отладке пользовательских задач Azure DevOps в VS Code и TypeScript - PullRequest
0 голосов
/ 08 января 2019

Справочная информация: Я создаю пользовательскую задачу сборки для DevOps Azure.

  • Для этой задачи необходим входной параметр, param1
  • Это написано в VS Code (v1.30.1) и TypeScript (tsc - версия состояния: v3.2.2)

Задача Когда я пытаюсь отладить свою задачу, я не могу передать значения переменных для param1. Точки разрыва поражены, так что часть работает.

Некий код: index.ts

import tl = require('azure-pipelines-task-lib/task');

async function run() {
   try {
      let param1: string = tl.getInput('param1', true);        
      if (param1 === null || param1 === undefined) {
        console.log('Should not be here...');
      }        
   }
   catch (err) {
      tl.setResult(tl.TaskResult.Failed, err.message);
   }
}
run();

Это прекрасно работает, когда я запускаю его из консоли с tsc; node index.js , но при работе с отладчиком кода VS мне кажется, что я никогда не смогу передать значение в param1, поэтому он падает внутри Метод getInput.

Мой launch.json

{
"version": "0.2.0",
"configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "TaskName",
        "program": "${workspaceFolder}/Extensions\\BuildTasks\\TaskName\\index.ts",
        "outFiles": [
            "${workspaceFolder}/Extensions\\BuildTasks\\TaskName\\**\\*.js"
        ]
    }
]}

Я также пытался добавить

"env": {
   "param1": "thisBeString"
 }

в выходных файлах, но безуспешно.

В отчаянии я тоже пытался использовать

"args": {
   "--param1": "thisBeString"
}

с ожидаемым результатом (сбой ...)

Я также использовал входные данные в моих tasks.json безуспешно ( в соответствии с этим SO Q & A)

Так что вопрос как передать значения переменных при отладке расширений Azure DevOps в VS Code.

1 Ответ

0 голосов
/ 23 июня 2019

Имя входного параметра Task, передаваемого в качестве переменной среды, должно начинаться с префикса INPUT_.

В вашем примере вы должны установить параметр param1 в среде запуска следующим образом:

launch.json

"env": {
   "INPUT_param1": "thisBeString"
 }

Вам не нужно переименовывать param1 в своем коде, так как префикс автоматически добавляется при вызове getInput().

Префикс также добавляется конвейерами DevOps Azure при настройке среды задач во время выполнения. Это помогает снизить риск конфликтов с другими переменными среды.

См. Здесь ссылку на исходный код пакета задач Azure Pipelines:
https://github.com/microsoft/azure-pipelines-task-lib/blob/master/node/task.ts#L219

...