なんとなく試験的に Project site でホスティングしていた GitHub Pages を User site に移行しました。
source code は source branch にあります。
CIに関しては Hugo製ブログをGitHub PagesへCIでデプロイ にも書きましたが参考になる部分もあるかもしれません。
なんとなく試験的に Project site でホスティングしていた GitHub Pages を User site に移行しました。
source code は source branch にあります。
CIに関しては Hugo製ブログをGitHub PagesへCIでデプロイ にも書きましたが参考になる部分もあるかもしれません。
https://gohugo.io/ と https://pages.github.com/ の話です。 master に push したら GitHub Pages に circle ciでデプロイするようにする方法の紹介です。
.circleci/config.yml
---
version: 2
jobs:
build:
docker:
- image: suzukishunsuke/hugo-ci:0.1.2
steps:
- checkout
- run: git config user.name "***"
- run: git config user.email "***@example.com"
# --depth 1 で高速化
- run: git clone --depth 1 https://github.com/suzuki-shunsuke/tale-hugo themes/tale
- run: hugo
- run: sh release.sh
workflows:
version: 2
build:
jobs:
- build:
filters:
branches:
only: master
release.sh
git checkout gh-pages
mv .git .circleci public
cd public
# 生成物に差分があったときのみデプロイ
git status --porcelain
if [ -n "`git status --porcelain`" ]; then
git add .
git commit -m "update"
git push origin gh-pages
fi
hugo をインストールした Docker Image を用意しておきます。
https://hub.docker.com/r/suzukishunsuke/hugo-ci/
ビルドしたものを gh-pages ブランチにデプロイする方法を工夫していて、
.git
を public
ディレクトリに移動しています。
git checkout gh-pages
mv .git .circleci public
cd public
あと、ビルドされたものに差分があったときのみデプロイするようにしています。
if [ -n "`git status --porcelain`" ]; then