GitHub Actions
При сборке сайта Jekyll с помощью GitHub Pages Jekyll работает в среде с ограничениями, введёнными по соображениям безопасности, но при этом содержащей множество разрешённых плагинов и тем, чтобы упростить настройку сайта.
Раньше единственным способом контролировать среду сборки и набор gem-пакетов, используя при этом GitHub Pages для размещения сайта, было выполнить сборку в другом месте и отправить содержимое собранного каталога в ветку gh-pages репозитория.
Однако теперь GitHub предоставляет возможность использовать собственный продукт CI/CD под названием GitHub Actions, чтобы собирать и развёртывать (размещать) сайт Jekyll, полностью контролируя среду сборки и набор gem-пакетов.
Преимущества использования Actions
Контроль над набором gem-пакетов
-
Версия Jekyll — Вместо классической версии, предоставляемой GitHub Pages и указанной в списке версий зависимостей, можно использовать любую нужную вам версию Jekyll. Например,
4.4.1или напрямую указать репозиторий в Gemfile. -
Плагины — Можно использовать любые плагины Jekyll, даже если они не входят в список разрешённых GitHub, в том числе любые файлы
*.rb, размещённые в каталоге_pluginsвашего сайта. - Темы — Хотя использовать собственную тему можно и без Actions, теперь можно использовать темы, зависящие от возможностей, появившихся в более новых версиях Jekyll.
Если вы переходите с классического процесса, но хотите продолжить использовать тему, размещённую на GitHub, можно воспользоваться плагином jekyll-remote-theme, добавить все необходимые зависимости темы (которые ранее входили в комплект по умолчанию) в файлы_config.ymlиGemfileи правильно указать идентификатор репозитория темыremote_theme: <owner>/<repo_name>в файле_config.yml.
Управление рабочим процессом
- Настройка — Создав файл рабочего процесса для запуска Actions, можно указать пользовательские этапы сборки и использовать переменные среды.
- Журналирование — Журнал сборки доступен для просмотра, и его можно настроить на подробный вывод, поэтому с помощью Actions гораздо проще отлаживать ошибки.
-
Кэширование — Действие
ruby/setup-rubyпозволяет автоматически кэшировать установленные gem-пакеты, избавляя от необходимости скачивать bundle при каждой сборке.
Настройка рабочего пространства
Первое и главное требование — наличие проекта Jekyll, размещённого на GitHub. Выберите существующий проект Jekyll или выполните краткое руководство и отправьте репозиторий на GitHub, если он ещё там не размещён.
Сайт Jekyll, который мы будем использовать далее на этой странице, изначально состоит только из _config.yml, страницы index.md и файла Gemfile. Их содержимое соответственно:
# _config.yml title: "Jekyll Actions Demo"
---
---
Welcome to My Home Page
{% assign date = '2020-04-13T10:20:00Z' %}
- Original date - {{ date }}
- With timeago filter - {{ date | timeago }}
# Gemfile source 'https://rubygems.org' gem "jekyll", "~> 4.2" group :jekyll_plugins do gem "jekyll-timeago", "~> 0.13.1" end
В демонстрационном сайте используются Jekyll 4 и сторонний плагин, которые в настоящее время не входят в список разрешённых для использования на GitHub Pages. Плагин позволяет указать, сколько времени прошло с определённой даты. Например, если задать дату2016-03-23T10:20:00Z, а текущая дата —2020-04-13T10:20:00Z, результатом будет4 years and 3 weeks ago.
Используемое нами действие устанавливает gem-пакеты и зависимости Ruby. Это упрощает настройку для пользователя, однако могут возникнуть проблемы, если вы также добавите в репозиторий файл Gemfile.lock, созданный с помощью старой версии Bundler. Настройка действия
- Перейдите на вкладку Настройки репозитория.
- Нажмите Pages в разделе Код и автоматизация.
- Измените параметр Источник в разделе Сборка и развёртывание с Развёртывать из ветки на GitHub Actions.
- Перейдите на вкладку Actions репозитория.
- Создайте Новый рабочий процесс и найдите Jekyll.
- Нажмите Настроить под рабочим процессом Jekyll (не под рабочим процессом GitHub Pages Jekyll).
- Проверьте изменения и нажмите Зафиксировать изменения.
Сборка и развёртывание
После отправки любых локальных изменений в ветку по умолчанию действие запустится, и сборка начнётся.
Чтобы следить за ходом выполнения и видеть ошибки сборки, проверяйте её статус одним из следующих способов:
-
Просмотр по коммиту
- Перейдите к представлению репозитория на GitHub. Под последним коммитом (в верхней части страницы) рядом с сообщением коммита отображается значок статуса — галочка или X. Наведите на него курсор и нажмите ссылку Подробнее.
-
Вкладка Actions
- Перейдите на вкладку Actions репозитория. Нажмите вкладку рабочего процесса
jekyll.
- Перейдите на вкладку Actions репозитория. Нажмите вкладку рабочего процесса
Если всё пройдёт успешно, все этапы будут отмечены зелёным цветом, а собранные ресурсы будут загружены в GitHub Pages.
Чтобы открыть опубликованный сайт, перейдите на вкладку Развёртывания репозитория и нажмите URL развёрнутого сайта.
Чтобы внести дополнительные изменения на сайт, создайте коммит в ветке по умолчанию и отправьте его. Рабочий процесс повторно соберёт и развернёт сайт.
Внешние ссылки
- starter-workflows — официальный репозиторий с шаблоном рабочего процесса, используемым в этом руководстве.
© 2025 Jekyll Core Team and contributors
Licensed under the MIT license.
https://jekyllrb.com/docs/continuous-integration/github-actions/