8年振りに会社ページがリニューアルされました。
hugoで作ってGithub Pagesで公開しています。
デザインに関しては@machidaさんの記事をご覧ください。
会社サイトをリニューアルしました | FJORD, LLC(合同会社フィヨルド)
デザインもhugoも@machidaさんがやったので僕はほとんど何もやってないですが、
「ページをpushするとCircleCIでbuildしてアップ」
という部分だけやりました。
fjordllc/fjordllcリポジトリのsourceブランチにmarkdownの記事ファイルをアップするとCircleCIがhugoでbuildしてmasterにpushします。 masterブランチのdocsディレクトリがGithub Pagesで公開されるようになっています。
CircleCIのcircle.yml
general:
  branches:
    ignore:
      - master
machine:
  timezone: Asia/Tokyo
  node:
    version: 8.2.0
dependencies:
  pre:
    - git config --global user.name "Masaki Komagata"
    - git config --global user.email "komagata@gmail.com"
    - wget https://github.com/gohugoio/hugo/releases/download/v0.26/hugo_0.26_Linux-64bit.deb
    - sudo dpkg -i hugo_0.26_Linux-64bit.deb
compile:
  override:
    - HUGO_ENV=production webpack
    - hugo
test:
  override:
    - echo "dummy"
deployment:
  production:
    branch: source
    commands:
      - ./deploy.sh
deploy.sh:
git clone --depth=1 git@github.com:fjordllc/fjordllc.git master
cp -rp docs master/
cd master
git checkout master
git add docs
git commit -a -m "Update articles"
git push origin master --force
ハマッたところ
Custom domain設定が定期的にリセット
Github Pagesは以前は対象の公開directory/CNAMEというファイルにcustom domain名を書くことで設定することになっていました。
これは最近、githubの管理画面から入力できるようになりました。管理画面で入力したものが自動的に公開directory/CNAMEに保存されるというラッパー的な機能です。
僕はreposが勝手に更新されるということが頭になかったので、hugoでbuildするたびに対象ディレクトリをクリーンアップしていました。
そのため、buildするたびにcustom domain設定がリセットされてしまうということになっていました😢
buildが永久ループ
pushをトリガーにCircleCIがbuildして自分のmasterにpushするので永遠にbuildが続いてました😢
CircleCIにはbuildしないbranchを指定できるのでmasterではbuildしないようにしました。
次にやりたいこと
esa.ioをhugoのエディターとして使うというのをやりたいです。
連携の設定をやってみたのですが、esa.ioが吐くFront MatterはMiddleman用のものなので、hugoでは日付フォーマットやurlの追加などちょっと手を加える必要があるようでした。


