wercker上でjekyllのページが生成されない

wercker上でjekyllをbuildしても機能しない・ページが生成されないことがありました。案外手がかりが少なくハマったのでメモしておきます。

jekyllをwercker上でbuildしているのですが、なぜか最新の投稿だけhtmlが生成されないことがありました。 その時の対応メモです。

結論

結論から言うとwercker上のサーバーの時刻設定の問題でした。
デフォルトの時刻設定がUTCであるために、日本の時間よりも巻戻るんですよね。

そのため、buildする際に投稿ページで指定されている時間が未来時間になり、そのためにjekyllがページを生成し、ということでした。

うーん、jekyllは投稿の時間設定が未来になっているとページの生成対象とみなさないのですね。
妥当と言えば妥当なのですが、何もメッセージが出ないので現象がわからずハマりました・・。

解決方法

Ubuntuの時刻設定をデフォルトのUTCからJSTに書き換えます。

werckre.ymlに以下のような時刻設定を追加してください。
これで日本の時間(JST)が適用されます。

box: wercker/ruby
# Build definition
build:
  steps:
    - script:
        name: time settings
        code: |
          sudo cp /usr/share/zoneinfo/Japan /etc/localtime

当然ながら上記設定はjekyllの処理が走る前の位置に書いてください。

ntpを再設定という選択肢もありますが、こちらの方がお手軽で速いので良いと思います。

以上です。