https://tkuchiki.hatenablog.com からブログを移転しました。

ブログの構成

textlint は Git の pre-commit hook で実行していますが、ログを残す目的で CircleCI 上でも実行しています。 以下が pre-commit hook のファイルと .circleci/config.yml です。

pre-commit hook

$ cp .git/hooks/pre-commit{.sample,}

して、 .git/hooks/pre-commit を以下のように書き換えました。

#!/bin/sh

if git rev-parse --verify HEAD >/dev/null 2>&1
then
	against=HEAD
else
	# Initial commit: diff against an empty tree object
	against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi

# Run textlint /path/to/*.md
exec 1>&2
yarn run --silent textlint `git diff --name-only --diff-filter=ACMR $against | grep '.*.md$'` || exit 1

.circleci/config.yml

version: 2
jobs:
  build:
    working_directory: ~/blog
    docker:
      - image: circleci/node:8
    steps:
      - checkout
      - restore_cache:
          name: Restore Yarn Package Cache
          keys:
            - yarn-packages-{{ checksum "yarn.lock" }}
      - run:
          name: Install Dependencies
          command: yarn install
      - run:
          name: textlint
          command: |
            TARGET="origin/master"
            if [ "${CIRCLE_BRANCH}" != "master" ]; then
                yarn run --silent textlint `git diff --name-only --diff-filter=ACMR ${TARGET} | grep -a '.*.md$' | tr '\n' ' '`
            fi            
      - save_cache:
          name: Save Yarn Package Cache
          key: yarn-packages-{{ checksum "yarn.lock" }}
          paths:
            - node_modules/