このブログを書くのにHugo + Netlifyで運営をしています。
今回、CIの勉強も兼ねてGitHub Actionsを使ってPRが作られた時点でtextlintを実行し、reviewdogでルールに違反しているところにコメントを入れるようにしてみました。
コピペしたら動いちゃった、というあまりよろしくない感じなので正確性は保証しておりません。
導入の手順
基本的には、GitHub ActionsでZennブログの校正を自動化してみたを参考にして入れていきました。
-
npm init --yes
でpackage.jsonをつくる -
SmartHRが公開しているtextlintのプリセットをプロジェクトにインストール
npm install npm install textlint-rule-preset-smarthr --save-dev
textlintrc
,package.json
,package.lock.json
が作られる
-
GitHub Actionsで使うためのファイルを
.github/workflows/textlinit.yml
に定義する
name: reviewdog
on: [pull_request]
jobs:
textlint:
name: runner / textlint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: textlint-github-pr-review
uses: tsuyoshicho/action-textlint@v3
with:
github_token: ${{ secrets.github_token }}
reporter: github-pr-review
level: warning
textlint_flags: "./content/blog/*/index.md" # <=ここのディレクトリは自分の校正に合わせて変更
-
いつもの通り、PRを作る
-
こんな感じになりました
導入したツールについて(メモ)
textlint
textlint/textlint: The pluggable natural language linter for text and markdown.は文章の校正をしてくれるツール。
いろいろなプリセットがあり、日本語の技術文書プリセットなんかもある。
よりよい文書を書くための校正ツール「textlint」のSmartHR用ルールプリセットを公開しました!|SmartHRオープン社内報|株式会社SmartHRこんなのが公開されていてリポジトリではこれを使っています。
CIとは?
GitHubの新機能「GitHub Actions」で試すCI/CD | さくらのナレッジ
CIはソフトウェアのビルドやテストを自動化して頻繁に実行することでソフトウェアの品質向上や開発効率化を目指す手法
CI、継続的インテグレーションと言われてるやつだが、実際のところよくわかっていない。
フィヨルドのチーム開発にも導入されている。
自分の感覚では、コードをpushすると、テストとかリンターとかが自動で走ってくれるやつ、という認識です。
reviewdog
reviewdogを使うことで、textlintの指摘をプルリクエストのコメントに入れてくれるらしいです。
GitHub Actionsにreviewdogを飼ってみた!(eslint編) | DevelopersIO
npm install の –savedevって何?
-D, –save-dev: Package will appear in your devDependencies.
npm Docsによると、package.json
のdevDependencies
に書かれるらしい。
では、devDependencies
とはなにか?
Specifying dependencies and devDependencies in a package.json file | npm Docsによると、
“devDependencies”: Packages that are only needed for local development and testing.
とのことなので、ローカルでの開発とテストだけで使うパッケージを記述する。
プロジェクトで使うnpm packageは--save-dev
でインストールして使うと良さそう。