Рубрики
Uncategorized

Публикация задачи выпуска пользовательских трубопроводов Azure

Я хотел очистить свой кэш CloudFlare во время развертывания конвейера Azure. Cloudf … Tagged с Azurepipelines, Cloudflare, DevOps, ShowDev.

Я хотел очистить свой кэш CloudFlare во время развертывания конвейера Azure. Cloudflare предлагает API REST для этого, но вместо того, чтобы тащиться со сценариями, я решил посмотреть, как вместо этого я могу написать пользовательскую задачу для этого и опубликовать ее на рынке Visual Studio.

Получите расширение

Расширение Бесплатно на рынке Visual Studio И это Открытый источник на GitHub . Вот скриншот того, как он выглядит в Azure DevOps:

Как я его построил

Я следовал за великим Прогулка на Docs.microsoft Анкет Мне нравится, что инструкции продвигают TypeScript и тестирование, хотя я не собираюсь писать тесты для такой небольшой задачи.

Еще одна сеть уже указал что мне нужно было бы сначала запрашивать API CloudFlare REST, чтобы перевести имя зоны в идентификатор зоны, а затем запросить чистку. Я превратил эти инструкции в TypeScript , скомпилирован в JavaScript и объединил этот JavaScript как vsix extensiion с использованием tfx-cli Анкет

Над всем Код очень просто. Структура заключается в следующем:

  • / vss-extension.json

    • Расширение проявляется, определяет основную информацию о том, что делает экспентион. Справочные документы .
  • /images/extension-icon.png
    • Значок, представляющий расширение
  • /cloudflarepurge/ index.ts

    • Код, который выполняет задачу. Я не писал TypeScript до V2, поэтому я подозреваю, что обработка ошибок может быть более элегантно написана с асинхронным или аналогичным.
  • /cloudflarepurge/ task.json

    • Определяет, как будут отображаться параметры конфигурации задачи и какие сценарии будут выполняться во время сборки. Справочные документы

Если бы мы просто использовали JavaScript без зависимостей, это было бы так. Однако мы используем TypeScript, поэтому мы также имеем;

  • /cloudflarepurge/index.js
    • TSC вывод (сгенерированный)
  • /cloudflarepurge/ package.json

    • Nodejs зависимости
  • /cloudflarepurge/ tsconfig.json

    • конфигурация TypeScript

Как только это будет на месте, я упаковал расширение:

npx tfx-cli extension create --rev-version --manifest-globs vss-extension.json

Издательский

Публикация была немного странной — публично опубликовать вашу учетную запись Visual Studio Marketplace, которую должен быть одобрен в качестве издателя кем -то в Microsoft. Это было достигнуто путем введения некоторых подробностей о том, кем я был, и нажав кнопку «Одобрение запроса» (или аналогичное). Я получил одобрение и теперь вы одобрено электронным письмом от кого -то в Microsoft примерно через два дня.

Перед одобрением рынок заблокирует загрузку любого расширения, которое имеет public: true набор. Пост-утверждение. Загрузитель указал, что мне нужно включить Обзор.md на общественном расширении. Тем не менее, вы можете указать содержание/детали в вашем vss-extension.json в, скажем, Readme.md решить эту проблему:

"content": {
    "details": {
        "path": "README.md"
    } 
},

Вот и все!

В целом было довольно просто выполнить пользовательский код в выпуске Azure Pipeline и упаковывать его в расширение. Отсюда я хотел бы посмотреть, как такая задача может быть вызвана сборкой Azure Pipeline Yaml, и, чтобы автоматически развернуть обновления для этой задачи для рынка на Commit — у моего коллеги есть Пост об этом Анкет

Оригинал: «https://dev.to/staff0rd/publishing-a-custom-azure-pipelines-release-task-2pd»