Как настроить GitHub Actions для запуска проверки с помощью pint, не внося изменения в файлы?

Добрый день! Я новичок в PHP и Laravel, а также не уверен в своих навыках работы с Git. Мне необходимо настроить репозиторий таким образом, чтобы с помощью GitHub Actions проверялся новый коммит линтером. Поскольку в Laravel уже встроен Pint, я планирую использовать именно его. Я нашел примеры, которые описывают ситуации, когда линтер вносит изменения в код, но мне требуется только проверка: если линтер находит ошибки, то должен появляться красный крестик, если ошибок нет — зеленая галочка. Можете подсказать, как это организовать?
  • 19 октября 2024 г. 10:23
Ответы на вопрос 1
Добрый день! Настроить GitHub Actions для автоматического запуска линтера Laravel Pint можно довольно просто. Вы можете создать файл конфигурации, который будет запускать Pint и не вносить изменения в ваши файлы. 

Вот пример, как можно это сделать:

1. Убедитесь, что у вас есть Laravel Pint в вашем проекте. Если его нет, установите с помощью Composer:

   ```bash
   composer require --dev laravel/pint
   ```

2. Создайте файл конфигурации для GitHub Actions. В корне вашего репозитория создайте директорию `.github/workflows`, если она еще не существует.

3. Внутри директории `.github/workflows` создайте файл, например, `pint.yml`:

   ```yaml
   name: PHP Pint Action

   on:
     push:
       branches:
         - main  # или другая ветка, на которую вы хотите реагировать
     pull_request:

   jobs:
     lint:
       runs-on: ubuntu-latest

       steps:
       - name: Checkout code
         uses: actions/checkout@v2

       - name: Set up PHP
         uses: shivammathur/setup-php@v2
         with:
           php-version: '8.0'  # укажите вашу версию PHP
           extensions: mbstring, xml, bcmath

       - name: Install dependencies
         run: composer install --prefer-dist --no-progress --no-suggest --no-interaction

       - name: Run Pint
         run: ./vendor/bin/pint --test
   ```

В этом файле:

- Задается имя workflow и условия его срабатывания (при `push` и `pull_request` на ветку `main`).
- Определяется job `lint`, который будет запускаться на последней версии Ubuntu.
- Степы выполняют следующие действия:
  - Клонирование репозитория с помощью `actions/checkout`.
  - Установка PHP с необходимыми расширениями.
  - Установка зависимостей с помощью Composer.
  - Запуск команды `./vendor/bin/pint --test`, которая проверяет код на наличие ошибок, но не вносит изменения.

После того как вы настроите этот файл и закоммитите изменения, при каждом новом коммите (или при создании pull request) GitHub Actions будет запускать линтер. В результате вы будете получать информацию о статусе проверки (зеленая галочка или красный крестик) в интерфейсе GitHub.

Если у вас есть еще вопросы, не стесняйтесь задавать!
Похожие вопросы