Spec-Zone.ru › Jekyll 4

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.

Настройка действия

  1. Перейдите на вкладку Настройки репозитория.
    1. Нажмите Pages в разделе Код и автоматизация.
    2. Измените параметр Источник в разделе Сборка и развёртывание с Развёртывать из ветки на GitHub Actions.
  2. Перейдите на вкладку Actions репозитория.
    1. Создайте Новый рабочий процесс и найдите Jekyll.
    2. Нажмите Настроить под рабочим процессом Jekyll (не под рабочим процессом GitHub Pages Jekyll).
    3. Проверьте изменения и нажмите Зафиксировать изменения.

Сборка и развёртывание

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

Чтобы следить за ходом выполнения и видеть ошибки сборки, проверяйте её статус одним из следующих способов:

  • Просмотр по коммиту
    • Перейдите к представлению репозитория на GitHub. Под последним коммитом (в верхней части страницы) рядом с сообщением коммита отображается значок статуса — галочка или X. Наведите на него курсор и нажмите ссылку Подробнее.
  • Вкладка Actions
    • Перейдите на вкладку Actions репозитория. Нажмите вкладку рабочего процесса jekyll.

Если всё пройдёт успешно, все этапы будут отмечены зелёным цветом, а собранные ресурсы будут загружены в GitHub Pages.

Чтобы открыть опубликованный сайт, перейдите на вкладку Развёртывания репозитория и нажмите URL развёрнутого сайта.

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

Внешние ссылки

  • starter-workflows — официальный репозиторий с шаблоном рабочего процесса, используемым в этом руководстве.

© 2025 Jekyll Core Team and contributors
Licensed under the MIT license.
https://jekyllrb.com/docs/continuous-integration/github-actions/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API