Как опубликовать сборку продукта нашего пакета расширений VSTS в моем разработчике VSTS (не в продукте VSTS), чтобы я мог проверить его перед публикацией в продукте VSTS?

Я хочу взять пакет в том виде, в котором он создан в строке выпуска, и установить его на другой (не производственный) VSTS, чтобы я мог проверить его работу перед установкой на наш прод ВСЦ.

Мы используем сборку VSTS vNext с задачей VSTS «Расширение пакета» для компиляции пакета. Это компилирует Publisher со значением my-prod-publisher в файл extension.vsixmanifest.

Я пробовал:

  • # P4 #
    # P5 #
  • Измените пакет VSIX:

    • Unzip the .VSIX package
    • Отредактируйте файл extension.vsixmanifest, чтобы изменить значение Publisher со значения my-prod-publisher на my-dev-publisher.
    • заархивировать содержимое в новый ZIP-файл
    • изменить суффикс файла пакета .ZIP на .VSIX
    • загрузить на портал VSTS Marketplace для 'my-dev-publisher'
    • Результаты:
      # P7 #

    Моему google-fu не удалось найти информацию об этой ошибке, относящуюся к моему делу. Не стал слишком усердно искать в этом вопросе, так как я не ожидал, что повторное архивирование файлов даст те же результаты, что и при компиляции этих пакетов.

  • Опубликовать через tfx-cli

    tfx extension publish --service-url https://marketplace.visualstudio.com/ --publisher "my-dev-publisher" --vsix .\my-prod-publisher.vsts-buildrelease-tasks-0.6.181012.vsix --accounts my-dev-vsts --auth-type pat --token [my-dev-vsts-PAT] --trace-level debug

    Результаты по ошибке:

    Получен ответ 401 (Not Authorized). Убедитесь, что ваш личный токен доступа правильный и срок его действия не истек.

    Я подтвердил, что срок действия «my dev vsts PAT» не истек и разрешен для «Все области» в VSTS «my-dev-vsts».

  • Проверка сборки ветки вместо сборки строки выпуска

    Компиляция пакета с «Publisher» = «my-dev-publisher» позволяет мне публиковать на портале «my-dev-publisher», который затем позволяет мне установить пакет расширений в «my-dev-VSTS». Это было недостаточно эффективно, так как меня обжигали такие тонкие проблемы, как:

    • package/tasks version numbers not getting bumped correctly, or different values from PROD.
    • файлы / изменения, пропущенные во время фиксации в строке выпуска.

person Grumpy Curmudgeon    schedule 11.04.2018    source источник


Ответы (1)


У нас есть поддержка этих функций в CI / CD-задачи для расширений. Эти задачи сборки также предлагают возможность изменения версии расширения и задач сборки, включенных в расширение. При желании вы можете стандартизировать процесс сборки с помощью группы задач. Или используйте Release Management для продвижения vsix от разработчика к продукту. Эти задачи фактически переопределят идентификатор издателя. Вам также придется переопределить идентификатор расширения и сделать его закрытым. Только одно общедоступное расширение prod может быть сделано общедоступным, а идентификаторы расширений уникальны во всем мире.

Альтернативой является одновременная сборка разработчика и выпуска vsix, чтобы убедиться, что они совпадают. Тогда не используйте пакет выпуска, пока он вам не понадобится.

Проблемы, которые вы видите, являются причиной, по которой мы создали эти задачи.

  • TF400898: An Internal Error Occurred. Activity Id: 64d37121-ea19-42dc-9994-dbef8e6dc205. Это происходит, когда в zip-архиве используется неправильный метод сжатия. В задачах расширения мне пришлось немного повозиться, чтобы получить правильный синтаксис 7z.
  • Received response 401 (Not Authorized). Check that your personal access token is correct and hasn't expired. вызвано тем, что при публикации из vsix игнорируются --extension-id и --publisher. Но TFX вам не говорит.
person jessehouwing    schedule 11.04.2018
comment
Пытался выполнить задачу VSTS Опубликовать расширение в расширениях CI / CD: я все еще получаю ошибку 401 (Not Authorized). Ваша задача успешно сгенерировала новый пакет VSIX из пакета выпуска с нужным мне преобразованием (Publisher = my-dev-publisher), и я вручную загрузил его на свой портал разработки VSTS Marketplace. Успех! Мне также понравилась ваша идея о выпуске линии для компиляции пакетов разработки и выпуска. Спасибо! - person Grumpy Curmudgeon; 12.04.2018