Деплой
GitHub Pages
GitHub может быть использован как хостинг. Вы можете разместить свой блог по адресу <username>.github.io
.
Он имеет встроенную поддержку Jekyll. Есть несколько способов создать сайт.
- Создать репозиторий с именем
<username>.github.io
, он автоматически будет доступен по одноименному адресу - Связать любой репозиторий с хостингом
- Создать ветку с именем
gh-pages
(или же использоватьmaster
), в которой будет лежать исходник сайта - Или создать директорию с именем
docs
в веткеmaster
, в которой будет лежать исходник сайта - Включить в настройках репозитория GitHub Pages и задать поддомен и путь до ресурсов.
- Создать ветку с именем
Подробнее можно узнать на сайте проекта.
Чтобы подготовить свой проект к GitHub Pages нужно
- Установить gem
github-pages
# ./Gemfile
gem "github-pages", group: :jekyll_plugins
bundle update
- Убедиться, что используемые плагины разрешено использовать
- Настроить репозиторий на публикацию
Continuous Integration
Continuous Integration, или для краткости CI – это особый принцип разработки программного обеспечения, который может очень сильно упростить вам жизнь. Если на пальцах, то система CI – это некая программа, которая следит за вашим Source Control, и при появлении там изменений автоматически стягивает их, билдит, гоняет тесты (конечно, если их пишут) и возможно делает кое-что ещё. В случае же неудачи она дает об этом знать всем заинтересованным лицам, в первую очередь – последнему коммитеру.
Можно использовать любое по ПО по своему усмотрению. Авторы Jekyll указывают в документации следующие системы:
Здесь мы рассмотрим только Travis CI.
- Для начала авторизуемся в Travis CI
- Включаем Travis для нашего репозитория
https://travis-ci.org/profile/<username>
- Далее переходим в проект, все дальнейшие настройки будем делать в
.travis.yml
файле проекта - Пишем скрипт для тестов
- Самый простой тест, который мы можем выполнить - это запустить
jekyll build
и проверить, что сайт собрался - Чтобы проверить что именно там собралось удобно использовать html-proofer, который проверяет, что все ссылки и изображения существуют
- Создадим скрипт проверки
./script/build
- Самый простой тест, который мы можем выполнить - это запустить
#!/usr/bin/env bash
set -e # halt script on error
bundle exec jekyll build --baseurl '' # Сайт не генерируется как часть другого
bundle exec htmlproofer --disable-external --assume-extension --url-ignore '#' ./_site # Добавляем .html к ссылкам, пропускаем #
- Конфигурируем Travis build. Travis автоматически подтянет зависимости из Gemfile
.travis.yml
должен выглядеть так:
language: ruby # Используем Ruby
rvm:
- 2.3.3 # Используем Ruby Version Manager, версия Ruby 2.3.3
before_script: # Перед запуском тестов делаем файл исполняемым
- chmod +x ./script/build
script: ./script/build # Сам тест
branches:
only: # Тестируем только master-ветку
- master
env:
global:
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true # ускоряем установку html-proofer
sudo: false # Доступ суперпользователя нам не нужен
Travis автоматически начнет сборку, как только вы отправите изменения на GitHub.
Если сборка будет не успешна, то выполняйте локально те же команды, что выполняет Travis и делайте правки.
Если сборка будет успешна, то вы увидете такой результат