Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья5 мин чтенияПросмотры2

GitHub Actions перешёл с Node.js 20 на 24: почему может остановиться выкладка сайта

GitHub удалил Node.js 20 из среды Actions и отключил временный обход. Разбираем, какие автоматические сборки и собственные исполнители нужно проверить, чтобы обновление сайта не остановилось.

Комментарии 0

Рабочая станция с этапами автоматической сборки и тестовым сервером
В этой статье

23 сентября GitHub окончательно убрал Node.js 20 из сред выполнения GitHub Actions. JavaScript-действия теперь запускаются на Node.js 24, а временная возможность принудительно оставить старую версию больше не работает. Для владельца сайта это может выглядеть как новость исключительно для разработчиков, пока очередное обновление не перестанет собираться или выкладываться на сервер.

Важно различать две среды. Изменение GitHub не переводит сам сайт на Node.js 24 и не меняет PHP на сервере. Оно касается автоматических действий, из которых собран процесс проверки и публикации кода: установки зависимостей, сборки статики, запуска тестов, создания архива и доставки новой версии.

Где возникает несовместимость

Собственные JavaScript-действия указывают среду запуска в служебном файле. GitHub рекомендует перевести значение runs.using на node24 и выпустить новую версию действия. Если проект использует чужие действия, нужно перейти на их актуальные выпуски с поддержкой Node.js 24.

Сбой может появиться и без собственного JavaScript. Старый выпуск действия для загрузки артефакта, кеширования зависимостей или подключения к серверу способен внутри зависеть от Node.js 20. Файл процесса при этом выглядит привычно, а ошибка возникает только на этапе выполнения.

Обновлять ссылки на действия вслепую тоже нельзя. Между крупными версиями могли измениться параметры, права доступа или формат результата. Правильная миграция включает чтение описания выпуска и контрольный запуск на тестовой ветке.

Почему автоматическая выкладка касается бизнеса

Ручное копирование файлов кажется простым запасным вариантом, но оно плохо воспроизводится. Один сотрудник забудет очистить кеш, другой забудет удалить устаревший файл, третий перенесёт конфигурацию из тестовой среды. Автоматический процесс ценен не скоростью, а одинаковой последовательностью действий.

Для интернет-магазина полезный конвейер проверяет хотя бы сборку интерфейса, синтаксис, тесты критичных компонентов и наличие обязательных файлов. После этого он создаёт неизменяемый пакет версии, сохраняет его и только затем выполняет выкладку. Если шаг сборки перестал работать из-за обновления среды, публиковать код вручную в обход проверок особенно рискованно.

Сбой конвейера лучше воспринимать как остановку защитного механизма. Сайт может продолжать работать, но команда временно теряет надёжный способ выпускать исправления.

Отдельный риск — собственные исполнители

GitHub уточняет ограничения для self-hosted runners: Node.js 24 несовместим с macOS 13.4 и более ранними версиями и официально не поддерживает ARM32. Такие исполнители больше не подходят для нового режима.

Собственный runner часто устанавливают один раз и забывают. Он годами остаётся на сервере сборки, имеет доступ к репозиторию, ключам развёртывания и внутренней сети. Поэтому проверка должна охватывать не только версию приложения runner, но и операционную систему, архитектуру процессора и минимальные версии системных библиотек.

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

Что проверить в проекте сейчас

Начать стоит со списка всех файлов процессов и используемых действий. Для каждого внешнего действия фиксируют разработчика, закреплённую версию и назначение. Ссылки на случайную ветку опаснее стабильного выпуска: её содержимое может измениться без правки в вашем репозитории.

Затем проверяют собственные действия и инструменты командной строки. Нужно убедиться, что они запускаются на Node.js 24, не используют API, удалённые из среды выполнения, и работают с текущими версиями зависимостей. Локальный успешный запуск не заменяет тест в GitHub Actions, потому что окружение и права отличаются.

Следующий этап — разрешения. Обновлённому действию не следует автоматически выдавать запись во весь репозиторий или доступ ко всем секретам. Права токена задают минимально необходимыми, а секреты передают только тем шагам, которым они действительно нужны.

Наконец, выполняют тестовую сборку и выкладку в отдельное окружение. Проверяют не только зелёный статус, но и сам результат: открытие страниц, загрузку статики, версию файлов, миграции базы и очистку кеша. Для рабочего сайта должна существовать понятная процедура возврата к предыдущему пакету.

Обновление среды — повод проверить весь путь до сервера

Переход GitHub Actions на Node.js 24 — не функция, которую нужно включить на сайте. Это изменение основания, на котором выполняются автоматические операции. Оно полезно тем, что обнаруживает забытые действия, устаревшие исполнители и процессы, которые никто давно не запускал в чистой среде.

Если после замены версии процесс снова стал зелёным, работа ещё не закончена. Надёжный результат — когда команда знает, какие действия участвуют в выпуске, откуда они взяты, какие права имеют и как проверить опубликованную версию. Тогда очередное обновление среды не превращается в неожиданную остановку разработки.

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.