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, и при появлении там изменений автоматически стягивает их, билдит, гоняет тесты (конечно, если их пишут) и возможно делает кое-что ещё. В случае же неудачи она дает об этом знать всем заинтересованным лицам, в первую очередь – последнему коммитеру.

habrahabr.ru


Можно использовать любое по ПО по своему усмотрению. Авторы 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 и делайте правки. Если сборка будет успешна, то вы увидете такой результат Travis CI