stzn / the-swift-programming-language-jp

The Swift Programming Language in Japanese
MIT License
78 stars 28 forks source link

GitHub Actionsで、textlintを実行 #581

Closed yutailang0119 closed 4 weeks ago

yutailang0119 commented 1 month ago

課題点

現在lint-stagedによってtextlintを実行していますが、npmを設定していない環境からは通り抜けてしまう可能性があります。 また、現在のエラー出力は親切ではないように感じました。

解決案

手前味噌ですがyutailang0119/action-textlintを使って、GitHub Actionsからtextlintを実行し、checksの制御でマージを防ぎます。 このGitHub Actionsは、Pull Requestにインラインでtextlintの指摘を表示します。

相談ポイント

懸念もあるため、相談させてください。

1. GitHub Actionsの承認制

GitHub Actionsは悪用を防ぐため、forkリポジトリからのPull Requestでのワークフロー実行を承認制にしています。 そのため、運用上の手間になるかもしれません。 https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/approving-workflow-runs-from-public-forks

2. textlintの対象範囲

このPull Requestでは、textlintの対象を ./**/*.md にしています。 これはlint-stagedの対象と同じにしていますが、この設定ではREADME.mdなどの作業に直接関与しないファイルも対象になっています。

3. lint-stagedを残すかどうか

lint-stagedはgit commit時点で検知が可能なため、有用なツールです。 残しておくか、廃止してもよいかは判断を仰ぎます。

stzn commented 1 month ago

ありがとうございます!ずっとやろうと思って忘れていたやつでしたw

  1. GitHub Actionsの承認制

一旦やってみて「大変だなー」と思ったらやり方考えてみるでよいかなと思いました!

textlintの対象範囲

一番最初に大雑把に設定していたのですが、確かにREADME.mdなどは不要なので外したいですね。必要なのはwelcome-to-swift、revision-history、language-reference、language-guideの配下のmdファイルですね。別issueで対応でもよいかもしれません。

  1. lint-stagedを残すかどうか

個人的には残すでいいかなと思います。ローカルでチェックしてもらったほうが早いし良いのかなーと。

yutailang0119 commented 1 month ago

エラーが表示されることを確認できました

image