В данной статье я опишу процесс установки Composer пакетов в Github Actions с помощью php-actions/composer@v6 action, а так-же рассмотрим что такое GitHub Action.
Что такое GitHub Action
GitHub Action — это пользовательское приложение для платформы GitHub Actions, которое выполняет сложную, но часто повторяющуюся задачу. GitHub Action используется, чтобы сократить количество повторяющегося кода, который вы пишется в workflow файлах.
GitHub Action может сделать git pull
вашего git-репозиторий из GitHub, установить правильный инструментарий для вашего workflow или настроить аутентификацию для вашего облачного провайдера.
Так-же вы можете создать свой собственный action.
Action php-actions/composer@v6
php-actions/composer@v6 — это GitHub action который позволяет устанвливать Composer пакеты для запуска линтера, UnitTests, Integration Tests, статических анализаторов или сборки проекта.
Преимущества использования php-actions/composer@v6
:
- Простота использования: Данный GitHub Action легко настраивается и используется в вашем проекте, что дает быстрый старт и облегчает автоматизацию работы с Composer.
- Интеграция с GitHub Actions: Его использование в рамках системы GitHub Actions обеспечивает единое средство для управления автоматизацией в вашем проекте.
- Обновления и поддержка: Action активно поддерживается разработчиками, что обеспечивает своевременные исправления проблем и новые функциональные возможности.
- Интеграция с другими действиями GitHub Actions: Вы можете комбинировать
php-actions/composer@v6
с другими действиями GitHub Actions для создания сложных рабочих процессов.
Использование
Создайте Github Workflow файл в .github/workflows/ci.yml
со следующим содержимым:
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: php-actions/composer@v6
# now run your PHPCS package
- name: Run PHPCS
run: composer run phpcs
Теперь, когда вы запушите ваш код в репозиторий, и перейдете во вкладку Actions, вы увидите как запустился GitHub Action pipeline

Если раскрыть php-actions/composer@v6 вы увидите лог установки Composer пакетов:

Использование кеша
Github Actions позволяет кэшировать загрузку Composer пакетов из интернета между разными workflow/jobs. Это позволяет ускорить сборку проекта. Если файл composer.lock изменится, то пакеты будут заново скачиваться из интернета, т.к. кеш будет недействителен.
Использовать кеш в php-actions/composer@v6 можно следующим образом:
name: CI
on: [push]
jobs:
build:
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v3
- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: /tmp/composer-cache
key: ${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
- uses: php-actions/composer@v6
...
В приведенном примере в Cache
передается «ключ», который состоит из хэша файла composer.lock. Это означает, что пока содержимое composer.lock не меняется между рабочими процессами, каталог кэша Composer будет сохраняться между рабочими процессами.
Пример
С реальным примером использования Composer, PHPCS и GtiHub Actions вы можете ознакомиться подробнее в репозитории https://github.com/renakdup/using-phpcs-for-wordpress
Итог
В данной короткой статье вы познакомились с тем что такое GitHub Action, как использовать php-actions/composer@v6 action а так-же рассмотрели как использовать кеширование. Есть так-же много других настроек о которых вы можете прочитать здесь.