CircleCIでMeCabを利用してHugoビルドする
更新日:2021.01.30
作成日:2017.01.14
以下のコンテナ設定が掴めてきましたので、備忘録として残しておきます。
- Circle CIで、PythonからMeCab、sklearnを利用して関連記事を作成
- Hugoでビルド&さくらVPSにブログを公開
circle.yml
現在のcircle.ymlです。以下のモジュールをインストールして、コンテナの準備、Hugoでビルド、さくらVPSへの公開を行なっています。
- MeCab
- Python
- Hugo
machine:
  timezone: Asia/Tokyo
  ruby:
    version: 2.2.4
  python:
    version: 3.5.1
dependencies:
  cache_directories:
    - mecab-0.996
    - mecab-ipadic-2.7.0-20070801
  pre:
    - git config --global user.name "meganii"
    - git config --global user.email "[email protected]"
    - >
      HUGO_VERSION=0.18.1 &&
      set -x &&
      set -e &&
      if [ ! -e $CIRCLE_BUILD_DIR/bin/hugo ] || ![[ `hugo version` =~ v${HUGO_VERSION} ]]; then
        wget https://github.com/spf13/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz &&
        tar xvzf hugo_${HUGO_VERSION}_Linux-64bit.tar.gz &&
        sudo cp hugo_${HUGO_VERSION}_linux_amd64/hugo_${HUGO_VERSION}_linux_amd64 $CIRCLE_BUILD_DIR/bin/hugo;
      fi
    - sudo apt-get update -qq
    - sudo apt-get install -qq python3-dev
    - >
      if [[ ! -e mecab-0.996/src/mecab ]]; then
        wget -O mecab-0.996.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE" &&
        tar xvzf mecab-0.996.tar.gz &&
        cd mecab-0.996 &&
        ./configure --enable-utf8-only &&
        make
      fi
    - >
      cd mecab-0.996 &&
      sudo make install &&
      sudo ldconfig
    - >
      if [[ ! -e mecab-ipadic-2.7.0-20070801/sys.dic ]]; then
        wget -O mecab-ipadic-2.7.0-20070801.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM" &&
        tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz &&
        cd mecab-ipadic-2.7.0-20070801 &&
        ./configure --with-charset=utf8 &&
        make
      fi
    - >
      cd mecab-ipadic-2.7.0-20070801 &&
      sudo make install
    - pip install --upgrade pip
    - pip install -r requirements.txt
test:
  override:
    - python -V
    - hugo version
deployment:
  master:
    branch: master
    commands:
      - rake create_relatedposts
      - rake -q deploy_to_sakura_from_circleci
      - pwd
      - git add data/* tmp/* && git commit -m "[ci skip] publish"; if [ $? -eq 0 ]; then git push origin master; else :; fiHugoインストールの修正
元々はHugoのインストールを以下の通り、都度最新版をダウンロードしていたのですが、Hugoの開発が行われる度、ビルドに失敗するため、バージョン固定としました。
変更前
- go get -u -v github.com/kardianos/govendor
- go get -u -v github.com/spf13/hugo
- cd /home/ubuntu/.go_workspace/src/github.com/spf13/hugo && govendor sync && go install変更後(バイナリをダウンロード)
- >
 HUGO_VERSION=0.18.1 &&
 set -x &&
 set -e &&
 if [ ! -e $CIRCLE_BUILD_DIR/bin/hugo ] || ![[ `hugo version` =~ v${HUGO_VERSION} ]]; then
   wget https://github.com/spf13/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz &&
   tar xvzf hugo_${HUGO_VERSION}_Linux-64bit.tar.gz &&
   sudo cp hugo_${HUGO_VERSION}_linux_amd64/hugo_${HUGO_VERSION}_linux_amd64 $CIRCLE_BUILD_DIR/bin/hugo;
 fiRelated contents

TECH
2016.09.08
Circle CIでテストを定期実行する

TECH
2016.08.15
Circle CIでHugoのビルド・デプロイを実行する

TECH
2017.12.22
はてなダイアリーからはてなブログ経由で独自ドメインのブログに記事を移行しました

TECH
2017.10.14
HugoでのシンタックスハイライトにPython Pygmentsが不要となった

TECH
2017.10.07
HugoのRelated Contentを利用して関連記事を表示する

TECH
2017.08.31
Hugo Shortcodesの作り方

TECH
2017.04.09
gulpで画像の最適化

TECH
2017.03.19
Hugoで生成した静的サイトのホスト先をさくらVPSからNetlifyに変更する
