Как опубликовать сборку 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 не говорит вам.