GitHub Marketplace

Тема дорожной карты · GitHub Actions

GitHub Actions Marketplace — это централизованный каталог, где разработчики могут находить, публиковать и повторно использовать созданные сообществом и официально поддерживаемые actions для ускорения разработки CI/CD-пайплайнов в любом репозитории. Каждая запись в GitHub Actions Marketplace включает версионированные релизы, примеры использования с ключами uses: и with:, а также рейтинг доверия, чтобы команды могли оценить качество перед интеграцией action в автоматизацию workflow. Любой marketplace action можно напрямую указать в файле workflow с закреплённым тегом версии, например uses: actions/checkout@v4, обеспечивая воспроизводимость и безопасность при всех запусках пайплайна на runner. Поиск по GitHub Actions Marketplace по категориям — деплой, тестирование, линтинг или публикация контейнеров — позволяет инженерам создавать сложные пайплайны непрерывной интеграции, не прописывая каждый шаг автоматизации с нуля. Для использования в production всегда закрепляйте marketplace actions на конкретный коммит SHA, а не на изменяемый тег, чтобы защитить окружение runner от атак на цепочку поставок.

Как это работает

GitHub Marketplace: три варианта. JavaScript actions (runs: using: node20) — быстрый старт, гоняются на runner напрямую, должны быть cross-platform. Docker actions (runs: using: docker) — только Linux, медленнее старт (pull/build образа), полный контроль env. Composite actions (рассматриваются отдельно). JS actions требуют dist/ в репо (или компиляция через @vercel/ncc). Дистрибуция через GitHub Marketplace или приватный internal-репо.

Когда применять

JavaScript actions — когда логика маленькая (< 200 строк) + нужен cross-platform. Docker actions — нужно конкретное OS-окружение или сложные зависимости. Composite — просто цепочка существующих actions. Всегда релизьте tagged-версии (v1, v1.2.3); никогда не говорите юзерам использовать main.

Типичные ошибки

Ловушки GitHub Marketplace: JS action без коммита dist/ (action валится, потому что node_modules недоступен); Docker action с огромным образом (медленный старт на каждом job); breaking input/output изменения в major-версии, которые юзеры на @v1 получают тихо (всегда major-version-пин или SHA).

Связанные понятия

Полезные ресурсы