Задний план: Я создаю настраиваемую задачу сборки для Azure DevOps.
Проблема Когда я пытаюсь отладить свою задачу, я не могу передать значения переменных для 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.info('Should not be here...');
}
}
catch (err) {
tl.setResult(tl.TaskResult.Failed, err.message);
}
}
run();
Это отлично работает, когда я запускаю его с консоли с помощью tsc; узел index.js, но при работе с отладчиком VS Code мне никогда не удается передать значение параметру 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.
@Matt мне не помог, но может быть моя неопытность в VS Code + Typescript. Но я не могу добавить аргументы в свой файл tasks.json с type is typescript. Возможно, это можно исправить, используя вместо этого тип оболочки (узла), но я не могу заставить его работать :(






Имя входного параметра Task, переданного как переменная среды, должно иметь префикс INPUT_.
В вашем примере вы должны установить параметр param1 в среде запуска следующим образом:
launch.json
"env": {
"INPUT_param1": "thisBeString"
}
Вам не нужно переименовывать param1 в коде, так как префикс автоматически добавляется при вызове getInput().
Префикс также добавляется конвейерами Azure DevOps при настройке среды задач во время выполнения. Это помогает снизить риск конфликтов с другими переменными среды.
Ссылку на источник пакета SDK для задач Azure Pipelines:
.
https://github.com/microsoft/azure-pipelines-task-lib/blob/master/node/task.ts#L219
это помогает?