Composite actions
Тема дорожной карты · GitHub Actions
Composite actions — механизм повторного использования в GitHub Actions, позволяющий группировать последовательность шагов workflow в единую вызываемую единицу, сокращая дублирование в CI/CD-пайплайнах крупных репозиториев или на уровне всей организации. В отличие от JavaScript- или Docker-actions, composite actions полностью определяются в YAML в файле action.yml, в котором задаётся runs.using: composite и перечисляется массив steps:, содержащий любое сочетание run:-скриптов и ссылок uses: на другие actions. Composite actions принимают типизированные inputs: и могут передавать outputs:, записывая значения в $GITHUB_OUTPUT внутри своих шагов, что обеспечивает богатый обмен данными между composite action и последующими этапами пайплайна вызывающего workflow. Команды часто публикуют composite actions в специализированных репозиториях и ссылаются на них через uses: org/action-repo@v2, применяя ту же дисциплину версионирования, что и для любого другого компонента повторно используемой автоматизации workflow. Освоение composite actions — ключевой навык GitHub Actions для platform-инженеров, стремящихся предоставлять стандартизированные, самоуверенные строительные блоки пайплайнов, не привязывая потребителей к конкретному образу контейнера или версии Node.js.
Как это работает
Composite actions пакетируют несколько шагов в один переиспользуемый action без написания JavaScript или Docker-контейнера. Определяется в action.yml с runs: using: "composite" + список steps:. Inputs (inputs:) + outputs (outputs:). Хранятся в корне репо или поддиректории + ссылка через uses: ./.github/actions/my-action (локально) или uses: org/repo/.github/actions/x@sha (remote).
Когда применять
Composite actions — для дедупликации повторяющихся между workflows шагов (например "setup + cache + install" прелюдия). Дешевле JS или Docker actions — просто YAML-wrapper. Локальный composite — для repo-внутреннего переиспользования; публичный action — только когда другие команды хотят. Smoke-test workflow, гоняющий composite action.
Типичные ошибки
Ловушки Composite actions: глубоко вложенные composite actions, зовущие другие composite actions (отладка сложная); нет версионирования вашего action (другие workflows тянут main, сюрпризы ломают); большие composite actions, делающие "всё" (делите на меньшие).
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…