Jekyll — один из самых популярных генераторов статических сайтов (SSG), широко используемый сообществом разработчиков для создания блогов, портфолио и личных веб-сайтов. В этой статье объясняется, как создать сайт Jekyll с помощью GitHub Actions и бесплатно развернуть его с помощью статического хостинга сайтов Kinsta.
Статический хостинг сайтов Kinsta может автоматически создавать сайты из SSG и веб-приложений, созданных на основе Node.js. Для обслуживания другого статического контента, например статических сайтов, созданных Jekyll (построенных на Ruby), нам нужен другой подход.
Требования
Для этого урока мы предполагаем, что у вас есть:
- Опыт работы с Jekyll и Git.
- Веб-сайт Jekyll запущен и работает локально.
Чтобы продолжить, вы можете использовать этот пример кодовой базы в качестве справочника.
Разверните свой веб-сайт Jekyll в Kinsta
Существуют различные способы развертывания вашего веб-сайта Jekyll в Kinsta, например:
- Использование хостинга приложений Kinsta.
- Использование статического хостинга сайтов Kinsta любым из этих методов:
- А. Здание ваш веб-сайт с помощью непрерывной интеграции и непрерывного развертывания (CI/CD) перед развертыванием в Kinsta.
- Б. Обслуживание ваших статических файлов только.
В этой статье мы познакомим вас с обоими методами развертывания Jekyll с помощью статического хостинга сайтов Kinsta.
A. Создайте свой веб-сайт с помощью действий GitHub перед развертыванием в Kinsta.
Этот метод использует рабочий процесс GitHub Actions (GHA) для создания вашего веб-сайта в определенной ветке (deploy
) и используйте эту ветку для развертывания сгенерированных статических файлов в Kinsta.
Чтобы использовать этот метод, поскольку мы используем GitHub Actions, ваша кодовая база должна размещаться на GitHub репозиторий (публичный или частный). Но вы можете использовать другие инструменты CI/CD для достижения того же результата.
Наиболее существенными преимуществами этого метода являются:
- Вы можете дополнительно реализовать процессы непрерывной интеграции (CI) для своего сайта, например
test
и/илиlint
этап проверки вашего кода. - Ваш сайт создается автоматически при каждом нажатии на ваш репозиторий. Вам не нужно строить его перед тем, как нажать.
- Вы гарантируете, что ваш веб-сайт будет обновляться только в случае успешного завершения конвейера CI/CD.
Шаги:
- Откройте свой терминал в корне репозитория вашего сайта Jekyll.
- Создайте новую сиротскую (пустую) ветку (
deploy
) и поместите его в свой репозиторий:
git switch --orphan deploy
git commit --allow-empty -m "Initial commit on deploy branch"
git push -u origin deploy
Не добавляйте файлы в эту ветку. Он будет автоматически заполнен рабочим процессом GitHub Actions содержимым сгенерированного файла Jekyll. _сайт папка.
- Оформить заказ
main
ветвь:
git checkout main
- Создать .github/рабочие процессы каталог в
main
.
- Чтобы настроить GHA, создайте новый файл gh-actions.yml под .github/рабочие процессы со следующим содержанием:
name: Deploy Jekyll
on:
# The workflow runs only on pushes to the <main> branch
push:
branches: ["main"]
workflow_dispatch:
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
- name: Set up Jekyll
run: gem install bundler && bundle install
- name: Build site
run: bundle exec jekyll build
env:
JEKYLL_ENV: production
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: compiled-site
path: _site
deploy:
name: Deploy
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
# Commit and push the artifacts to the <deploy> branch
- uses: actions/checkout@v4
with:
ref: deploy
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: compiled-site
path: _site
- name: Commit and push
# Replace "<username>" with your GH org or user name
run: |
git config user.name "<username>"
git config user.email "<username>@users.noreply.github.com"
git pull origin deploy
git add _site
git commit -m "Auto generated from ${GITHUB_SHA::7}"
git push
- Зафиксируйте и отправьте код в
main
ветвь.
При каждом нажатии на main
ветка, рабочий процесс GitHub Actions:
- Создает ваш веб-сайт Jekyll со статическими файлами в разделе _сайт.
- Создает артефакты с содержимым _сайт.
- Проверяет
deploy
ветвь. - фиксирует _сайт изменения в
deploy
ветвь.
Чтобы обновить сайт, вам нужно всего лишь отправить изменения в main
ветвь.
Не вносите изменения в deploy
филиал напрямую. Вы можете заблокировать эту ветку на GitHub, чтобы избежать непреднамеренных отправок.
Посмотрите, как развернуть его в Kinsta ниже.
Б. Создайте свой веб-сайт локально и разверните его непосредственно в Kinsta.
В качестве альтернативы описанному выше методу вы можете создать свой сайт локально (и обновить содержимое _сайт папку локально), затем поместите содержимое папки Jekyll's _сайт папку в репозиторий (на GitHub, GitLab или Bitbucket). Используя этот метод, вам не нужны GH Actions или какой-либо другой инструмент CI/CD для создания сайта при каждом обращении к репозиторию, поэтому он намного проще, чем предыдущий метод.
Недостаток этого метода в том, что вы должен создавайте содержимое вашего сайта перед каждой отправкой в репозиторий.
Этот метод использует только содержимое файла _сайт папку и напрямую обслуживает их на хостинге статических сайтов Kinsta.
Шаги:
- Откройте свое репо .gitignore файл и удалите строку с
_site
. - Зафиксируйте и нажмите _сайт папку в ваш репозиторий.
Чтобы обновить свой веб-сайт, убедитесь, что вы создайте свой сайт с Джекилом прежде чем нажать это в ваш репо.
Разверните свой сайт Jekyll в Kinsta с помощью статического хостинга сайтов
Метод действий GitHub
Если вы использовали рабочий процесс GitHub Actions для создания своего веб-сайта, выполните следующие действия, чтобы развернуть его с помощью статического хостинга сайтов Kinsta.
- Войдите в свою учетную запись MyKinsta или создайте новую.
- Перейдите на панель управления MyKinsta.
- Нажмите значок меню в верхнем левом углу экрана.
- На боковой панели нажмите Статические сайты.
- В правом верхнем углу нажмите Добавить сайт.
- Авторизуйте своего провайдера Git.
- Выберите свой репозиторий.
- Выберите
deploy
филиал как Ветка по умолчанию (где содержание _сайт папка находится). - Выбирать Автоматическое развертывание при фиксации для развертывания вашего сайта при каждом нажатии на ваш репозиторий.
- Добавьте уникальный Отображаемое имя на ваш сайт и нажмите Продолжать.
- Настройте параметры сборки:
- Команда сборки: оставить пустым.
- Версия узла: оставить как есть.
- Опубликовать каталог:
_site
.
- Нажмите Создать сайт.
Kinsta развернет ваш сайт и предложит вам URL-адрес сайта по умолчанию. Затем вы можете добавить свой собственный домен и собственный сертификат SSL, если хотите.
Локальный метод сборки
Если вы использовали метод локальной сборки, выполните те же действия, чтобы развернуть свой веб-сайт. Вам нужно только изменить ветку, из которой вы хотите выполнить развертывание (на шаге 8). Вместо deploy
использовать main
или любое другое отделение по вашему выбору.
Краткое содержание
В этой статье представлены два возможных способа развертывания вашего веб-сайта Jekyll с помощью статического хостинга сайтов Kinsta.
Первый метод использует CI/CD для создания приложения и генерации содержимого _сайт папка в другой ветке вашего репозитория. Самыми большими преимуществами использования этого метода с хостингом статических сайтов Kinsta являются:
- С помощью CI/CD вы можете добавить на свой сайт множество процессов.
- Вы развертываете свой сайт на превосходном хостинге и обслуживаете его с максимальной производительностью.
- Вам не нужна премиум-учетная запись GitHub, чтобы сохранить конфиденциальность вашего репозитория (как, например, если вы используете GitHub Pages).
Во втором методе мы собираем Jekyll локально и помещаем содержимое _сайт папку в ту же ветку, что и остальные файлы Jekyll. Это можно повторить для репозиториев, размещенных у других поставщиков Git (GitLab и Bitbucket), без необходимости дополнительной настройки. Это самый простой метод, но он сопряжен с неудобствами, связанными с необходимостью создавать сайт перед каждым переходом в репозиторий.
В дополнение к этим опциям вы можете выбрать развертывание своего сайта Jekyll с помощью хостинга приложений Kinsta. Он обеспечивает большую гибкость хостинга, более широкий спектр преимуществ и доступ к более надежным функциям. Например, масштабируемость, индивидуальное развертывание с использованием Dockerfile и комплексная аналитика, охватывающая данные в реальном времени и исторические данные.
Дополнительные статьи о статических веб-сайтах читайте в блоге Kinsta.