理系学生日記

おまえはいつまで学生気分なのか

markdown を lint する

様々なドキュメントが Markdown で表現される今日このごろです。 多数の人が関わりつつドキュメントを成長させるのであれば、 Markdown ドキュメントについてもフォーマットを統一させたいものですね。

Markdown についても当然のように linter があるので、こちらを GitLab CI/CD で回せるようにします。

とはいえ、語ることはほとんどなくて、あまり悩むことなく設定できます。 今回はリポジトリ配下の全 .md ファイルに対して lint をかけるようにしてみました。

唯一悩んだのは「どの Docker Image を使用するか」でしたが、Terraform の公式で使っている Docker Image を使うようにしました。

stages:
  - lint
variables:
  MARKDOWNLINT_VERSION: 0.23.0-alpine
markdownlint:
  stage: lint
  image:
    name: 06kellyjac/markdownlint-cli:${MARKDOWNLINT_VERSION}
    entrypoint:
      - "/usr/bin/env"
      - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  only:
    changes:
      - "*.md"
      - .gitlab-ci.yml
  before_script:
    - markdownlint --version
  script:
    - find . -name "*.md" -type f -print0 | xargs -0 markdownlint