Open t-yng opened 3 years ago
出力のフォーマットの場合
出力のやり方に自由度が無く、少し複雑な正規表現を書く必要があるので、保守性が低くなる。
# check-spell.yml
name: check-spell
on: [ pull_request ]
jobs:
check-spell:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14.x"
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: restore yarn cache
uses: actions/cache@v2
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys:
${{ runner.os }}-yarn-
- name: install dependencies
run: yarn install
- name: enable problem matcher
run: |
echo "::add-matcher::.github/check-spell-problem-matcher.json"
- name: check spell
run: yarn cspell index.ts
// check-spell-problem-matcher.json
{
"problemMatcher": [
{
"owner": "spell-check",
"pattern": [
{
"regexp": "^/.+/(.+?):(\\d+):.+ - (.+)",
"file": 1,
"line": 2,
"message": 3
}
]
}
]
}
reviewdog
Playgroundで抽出方法を試せる
.reviewdog.yml
で実行コマンドとエラーフォーマットを制御できる
runner:
cspell:
cmd: yarn cspell index.ts
errorformat:
- "%f:%l:%c\ -\ %m"
level: error
review dog -conf=./.github/conf/.reviewdog.yml -reporter=github-pr-check
filter-modeについて
-filter-mode
を指定することで、どの修正に対して指摘コメントを付けるか制御ができる。
デフォルトは added
になっており、PRに含まれる修正差分に対してだけ指摘される。
設定可能なモードは reporter とも関係している。
設定一覧と対応表はドキュメントを参照
reviewdogでレビューコメントのフォーマットはできないので、もし「タイポ警察だ!」などのメッセージを含めたい場合は cspell の結果をフォーマットした内容を reviewdog に渡す必要がある。
/Users/tomohiro/workspace/playgournd/cspell-test/index.ts:1:7 - Unknown word (setsupport)
=> /Users/tomohiro/workspace/playgournd/cspell-test/index.ts:1:7 - タイポ警察だ!(改行)Unknown word (setsupport)
みたいなイメージ
やり方(候補)
出力をフォーマットする
https://github.com/actions/toolkit/blob/master/docs/problem-matchers.md
reviewdogを利用する
https://github.com/reviewdog/reviewdog