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

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

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

Я пробовал:

  • Вручную загрузите пакет на портал торговой площадки VSTS для "my-dev-publisher". Результаты:

    "Ошибка загрузки": идентификатор издателя "my-prod-publisher", указанный в манифесте расширения, должен совпадать с идентификатором издателя "my-dev-publisher", под которым вы пытаетесь опубликовать это расширение.

  • Изменить пакет VSIX:

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

      TF400898: Произошла внутренняя ошибка. Идентификатор активности: 64d37121-ea19-42dc-9994-dbef8e6dc205.

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

  • Опубликовать через 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 (не авторизован). Убедитесь, что ваш личный токен доступа верен и не истек.

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

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

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

    • номера версий пакетов / заданий неправильно отображаются или значения отличаются от PROD.
    • файлы / изменения, пропущенные во время фиксации в строке релиза.

1 ответ

Решение

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

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

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

  • TF400898: An Internal Error Occurred. Activity Id: 64d37121-ea19-42dc-9994-dbef8e6dc205. Это происходит, когда почтовый индекс использует неправильный метод сжатия. В задачах расширения мне пришлось немного поиграться, чтобы получить 7z syntx.
  • Received response 401 (Not Authorized). Check that your personal access token is correct and hasn't expired. вызвано тем, что при публикации из vsix --extension-id а также --publisher игнорируются Но TFX не говорит вам.
Другие вопросы по тегам