先週、定期更新されるJavaScript等の情報サイトをまとめたMeta-Weeklyというサイトを作りました | Web scratchで、Meta Weeklyというサイトを公開しました。

Pull Requests もあったりしたので、幾つかサイトが増えてたりします。

Meta-Weekly/CONTRIBUTING.md at master · azu/Meta-Weekly のガイドにしたがってPull Requestsしてもらってマージされれば、サイトの方に自動的に反映するようにしています。

その辺の仕組みは 定期更新されるJavaScript等の情報サイトをまとめたMeta-Weeklyというサイトを作りました でちょろっと書いてましたが、サイトはGitHub Pagesで公開されていて、

masterブランチにコミットがきたら、Travis CIdata.jsonでテストが走って、Travis CIから gh-pagesブランチに静的サイトを生成してpushしています。

Travis CIからリポジトリにpushするためには、.travis.ymlにGithubのトークンを埋め込む必要が有ります。

それを使って https://$GH_TOKEN@github.com/$GH_REPO.git という感じでトークンを指定したURLにすることで実現出来ます。

この方法は以下の記事などを見てやりましたが、該当記事通りにやるとGithubのトークンが、Travis CIのコンソールに公開されてしまっている問題があったのでその辺の報告とかしてました。

最終的に、該当のdeploy-gh-pages.shでは、

git push -fq $REPO_URL gh-pages 2> /dev/null

というように --force --quiet コンソールに余計な情報が出ないようにするという感じにしています。

手動でgit cloneする必要がある場合はそこにも --quiet が必要だったり、結構事故率が高そうな作りなので、もっと安全に倒した方法があるといい気がします。

仕組み的には、DroneBuildHiveでも利用できると思うので色々使い道がある気がします。