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