8年振りに会社ページがリニューアルされました。

Fjord, LLC

https://gyazo.com/1b08a0812b9ad48186bb98309ca57257

hugoで作ってGithub Pagesで公開しています。

デザインに関しては@machidaさんの記事をご覧ください。

会社サイトをリニューアルしました | FJORD, LLC(合同会社フィヨルド)

デザインもhugoも@machidaさんがやったので僕はほとんど何もやってないですが、

「ページをpushするとCircleCIでbuildしてアップ」

という部分だけやりました。

https://gyazo.com/6eb17855ad55e53f0ce9302bc099611e

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の追加などちょっと手を加える必要があるようでした。