action.yml

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

Файл action.yml является ключевым элементом в определении интерфейса и конфигурации среды выполнения для каждого кастомного action в GitHub Actions. Этот файл служит контрактом между вашим action и любым workflow, который его использует. Внутри action.yml объявляются inputs: и outputs:, которые предоставляет action, блок runs:, указывающий, использует ли выполнение node20, docker или composite steps, а также читабельные name: и description:, отображаемые в GitHub Actions Marketplace. Хорошо структурированный action.yml позволяет другим пайплайнам вызывать action через uses: и передавать параметры через with:, что делает его краеугольным камнем повторно используемой автоматизации workflow и инструментария непрерывной интеграции.

Каждое поле action.yml валидируется runner GitHub Actions до запуска пайплайна, поэтому ошибки схемы обнаруживаются рано и предотвращают некорректные CI/CD-деплои. При публикации action в GitHub Actions Marketplace файл action.yml в корне репозитория является единственным источником истины, который платформа читает для генерации документации и валидации использования.

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

Файл action.yml пакетирует несколько шагов в один переиспользуемый action без необходимости писать JavaScript или Docker-контейнер. Внутри action.yml определяется с runs: using: "composite" + список steps:. В нем также объявляются inputs: и outputs:, которые позволяют передавать параметры и получать результаты от action. Файл action.yml может храниться в корне репозитория или в поддиректории, а ссылка на него может быть указана через uses: ./.github/actions/my-action (локально) или uses: org/repo/.github/actions/x@sha (удаленно).

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

Composite actions используются для дедупликации повторяющихся между workflows шагов, например "setup + cache + install" прелюдия. Они являются более дешевым вариантом по сравнению с JavaScript или Docker actions, так как представляют собой просто YAML-обертку. Локальный composite action используется для внутреннего переиспользования в рамках одного репозитория, тогда как публичный action может быть использован другими командами. Smoke-test workflow, который гоняет composite action, является эффективным способом тестирования и отладки.

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

В процессе работы с action.yml могут возникнуть различные проблемы. Например, глубоко вложенные composite actions, которые вызывают другие composite actions, могут усложнить отладку. Также важно версионировать ваш action, чтобы другие workflows не тянули main версию, что может привести к непредсказуемым результатам. Еще одной распространенной ошибкой является создание больших composite actions, которые пытаются делать "всё", что затрудняет поддержку и отладку. Вместо этого следует разбивать такие действия на более мелкие и управляемые части.

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

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