Skip to content

Hugoでサイト構築してcircleciでdeploy

sadayuki-matsuno edited this page Jan 23, 2016 · 3 revisions

Hugoでサイト構築してcircleciでdeploy

Hugo設定

HUGO

  • install
$ brew install hugo

goがあるなら以下でOK

$ go get -u -v github.com/spf13/hugo
  • create
$ hugo new site [path/to/site]
  • テーマ持ってくる

HUGO THEME

上記のサイトからいい感じのテンプレを選んぶ

$ git submodule add [templete repository] [path/to/theme/name]

creative 使いたいときはgit submodule add https://github.com/digitalcraftsman/hugo-creative-theme theme/creative

でも公式のリポジトリを登録すると、編集ができないので、編集したいなら一度forkして自分のリポジトリに登録してからやるといい

デバック

$ hugo server -t creative

これでlocalhost:1313にアクセスすればOK

ビルド

$ hugo

これでpublicディレクトリが作成され、静的ファイルが格納される。

このフォルダをまるまるgh-pagesにpushすればいい

デプロイ

circleciでやるときの手順

まずcircleci側でリポジトリと連携して、deploy用の鍵を生成

$ vim circle.yml

general:
  branches:
    ignore:
      - master

machine:
  timezone: Asia/Tokyo

dependencies:
  pre:
    - git config --global user.name "CircleCI"
    - git config --global user.email "circleci@example.com"

test:
  override:
    - echo "dummy"

deployment:
  production:
    branch: dev
    commands: 
      - go get -u -v github.com/spf13/hugo
      - git clone -b dev git@github.com:YOUR_REPOSITORY dev
      - cd dev && git submodule add -f -b master git@github.com:YOUR_REPOSITORY public
      - rm -rf dev/public/*
      - cd dev && hugo
      - cd dev/public && git add -A
      - cd dev/public && git commit -m "[ci skip] publish" || true
      - cd dev/public && git push origin master

これは、masterにpushする時の方法。

普通はgh-pagesのブランチに入れたりするので、そのときはいい感じに修正する。

注意点は、gitignoreにpublicを入れておいて、リポジトリからきちんとpublicを消しておくこと。

以上

You can’t perform that action at this time.