自動デプロイ

Jekyllサイトは多くの簡単に自動でデプロイする方法があります。

Continuous Integration Service

自動デプロイの最も簡単なセットアップのフローはCIを使用することです。

これらのサービスはGitリポジトリにコミットしたときにスクリプトを実行します。このスクリプトでサイトを構築し、出力に対してテストを実行してから、選択したサービスに配置することをお勧めします。

以下のプロバイダのガイドを用意しています。

Git post-receive hook

Gitを使用して変更をプッシュするたびにリモートサーバーが展開を処理するようにするには、そのauthorized_keysファイルに展開が許可されている全ての公開鍵を持つユーザーアカウントを作成します。これを設定したら、受信後フックの設定は次のようセットアップします。

laptop$ ssh deployer@example.com
server$ mkdir myrepo.git
server$ cd myrepo.git
server$ git --bare init
server$ cp hooks/post-receive.sample hooks/post-receive
server$ mkdir /var/www/myrepo

次に、以下の行をhooks/post-receiveに追加し、Jekyllがサーバーにインストールされたことを確認します。

#!/bin/bash -l

# Install Ruby Gems to ~/gems
export GEM_HOME=$HOME/gems
export PATH=$GEM_HOME/bin:$PATH

GIT_REPO=$HOME/myrepo.git
TMP_GIT_CLONE=$HOME/tmp/myrepo
GEMFILE=$TMP_GIT_CLONE/Gemfile
PUBLIC_WWW=/var/www/myrepo

git clone $GIT_REPO $TMP_GIT_CLONE
BUNDLE_GEMFILE=$GEMFILE bundle install
BUNDLE_GEMFILE=$GEMFILE bundle exec jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit

最後に、このフックを使用して展開できるようにする必要がある全ユーザーのラップトップで、次のコマンドを実行します。

laptops$ git remote add deploy deployer@example.com:~/myrepo.git

デプロイは、nginxやApacheに/var/www/myrepoを調べて次のコマンドを実行するように指示するのと同じくらい簡単です。

laptops$ git push deploy master