
このサイトは Middleman + github.io でできていて,デプロイ時には middleman build && middleman deploy とします.
これはそんなに面倒じゃないんですが,↓の記事に倣って自動化させてみました.
それほど積極的な利点じゃないですが,web ブラウザで GitHub リポジトリの記事を直接更新した時にもデプロイされます.
端末が使えないけど更新したい時とかあるかわかりませんが,便利といえば便利です.
で,ちょっと違う点があって工夫が必要だったので,その点だけ,残しておきます.
この点が違うところで,ブランチ構成を次のようにしています.
master # 生成された後の静的ファイルsource # 実際に作業しているブランチなので,source に push したら,build して,master へコミットしないといけません.
それ自体は大したことがないのですが,困るのは master に push するので,Travis さんが master のビルドをしようとしてしまいます.
ということで,master に push する際に master ブランチでビルドしない設定の .travis.yml を生成して対応することにしました.
ついでに,ビルドしたいのは source ブランチに push した時だけなので,`source` ブランチの .travis.yml にも追加.
...略...
after_success:
- cd build
- echo -e "---\nbranches:\n only:\n - source" > .travis.yml
- git add -A
- git commit -m 'Update'
- '[ $GH_TOKEN ] && git push --quiet https://$GH_TOKEN@github.com/OWNER/REPO.git 2> /dev/null'
branches:
only:
- sourceTravis さんは Configuring your build#White- or blacklisting branches にあるように, gh-pages が更新された際にはビルドしないんですねー.
手動で更新した際には, master もビルドされてしまう.
対応策は, middlemana build で, .travis.yml を置くようにするか,コミットメッセージに [ci skip] を入れるようにするか,くらい?