Генератор рабочих процессов для GitHub Actions

Далее

Свежий репозиторий на GitHub без CI находится в одном git push от следующего сломанного деплоя. Этот генератор создаёт стартовый .github/workflows/ci.yml для Node, PHP или Laravel, связывая воедино checkout, нужный action среды выполнения, установку зависимостей и стандартную команду запуска тестов, всё, что нужно, чтобы зажечь зелёную/красную точку.

Как создать рабочий процесс

  1. 1

    Выберите стек

    Node (использует `actions/setup-node`), PHP (использует `shivammathur/setup-php`) или Laravel (PHP + `php artisan test`).

  2. 2

    Задайте основную ветку

    `main`, значение по умолчанию; измените его, если ваш репозиторий всё ещё использует `master` или собственное имя.

  3. 3

    Сгенерируйте

    Инструмент собирает файл YAML с триггерами `push` и `pull_request` на этой ветке.

  4. 4

    Закоммитьте в .github/workflows/

    Создайте файл по пути `.github/workflows/ci.yml` и выполните push, на следующем коммите загорится вкладка Actions.

Как выглядит рабочий процесс

name: CI
on:
  push:
    branches: [main]
  pull_request:
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: shivammathur/setup-php@v2
        with:
          php-version: '8.4'
      - run: composer install --no-interaction
      - run: php artisan test

Действия, закреплённые генератором

Действие Назначение
actions/checkout@v4 Клонирует репозиторий в раннер
actions/setup-node@v4 Устанавливает набор инструментов Node
shivammathur/setup-php@v2 Устанавливает версию PHP с расширениями

Что добавить дальше

  • Шаг линтинга (npm run lint, ./vendor/bin/phpstan analyse) перед шагом тестирования.
  • Матричная сборка: запуск на нескольких версиях Node/PHP с помощью strategy.matrix.
  • Загрузка покрытия: codecov-action или coveralls-action после шага тестирования.
  • Секреты: никогда не хардкодьте токены, используйте secrets.XXX и задайте их в Settings → Actions.

Частые ошибки

  • Забыть загрузить теги: укажите with: { fetch-depth: 0 } в checkout, если логика релиза читает теги.
  • Использование Docker-образов latest: фиксируйте версии, чтобы запуски оставались воспроизводимыми и спустя месяцы.
  • Запуск 30-минутного набора тестов при каждом push: разбивайте длинные задачи с помощью needs: для параллелизации.

Часто задаваемые вопросы

Файл находится в папке .github/workflows/ci.yml, расположенной в корневой директории вашего репозитория. GitHub автоматически считывает все файлы с расширением YAML из этой папки и отображает каждый из них как отдельный рабочий процесс на вкладке «Действия».

Запросы pull из форков выполняют рабочий процесс, однако параметр GITHUB_TOKEN установлен в режиме только для чтения. Внешние участники не могут получить доступ к вашим секретным данным, если вы не дали им соответствующего разрешения.

Добавьте блок strategy.matrix.php: [8.2, 8.3, 8.4] и укажите на ${{ matrix.php }} на шаге setup-php. Программа параллельно запустит по одному заданию для каждой версии.

Нет. Сгенерированный YAML отображается на странице, никуда не загружается и не сохраняется, а вы просто копируете его.

Сопутствующие инструменты

Смешивание цветов

Смешайте два HEX-цвета в 2-20 равномерных образцов. Каждый промежуточный цвет показывается как HEX-код в верхнем регистре, включая оба края.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Генератор вымышленных телефонных номеров

Создавайте до 50 вымышленных номеров из официально зарезервированных диапазонов пяти стран.

Генератор бейджей README

Создавайте бейджи shields.io для файлов README на GitHub: статус сборки, версия, лицензия, число загрузок и покрытие кода. Просмотрите и скопируйте фрагмент Markdown.

Генератор случайных адресов

Создавайте 1–20 похожих на адрес записей для макетов и тестов в трёх упрощённых форматах.

Инструмент доступен на других языках