Zenn: 既存の記事をレビューしないようにGitHub Actionsを修正する
はじめに
atsushifxです。
Zennの記事をGitHub連携でカッチリ管理するおすすめ設定 は、大変参考になりました。
参考記事のGitHub Actionsをもとに、既存の記事をレビュー対象外とするように修正しました。
この記事では、修正内容を説明します。
技術用語
この記事で使用する主要な技術用語について説明します。
-
Zenn:
技術記事や技術書を公開できる技術ブログプラットフォーム。 -
GitHub Actions:
GitHub上のリポジトリで、イベントに応じて自動ワークフローを実行できるCI/CD機能。 -
pnpm:
Node.jsのパッケージマネージャーnpmの代替となる、高速なパッケージマネージャー。 -
lint:
ソースコードや文章中の文法、スタイル違反を検出し、指摘する静的解析ツールの総称。 -
textlint:
Markdown、テキストの文法、表記の誤りを校正するツール。 -
markdownlint:
MarkdownファイルにおいてMarkdownの書式やスタイルのルール違反を指摘するツール。
前提条件
このワークフローは、以下の条件で動作します。
- デフォルトブランチを
mainにする。 - パッケージマネージャーとして
pnpmを使用する。
GitHub Actions
元記事にある github/workflows/lint.yml を修正し、変更された記事のみレビュー対象となるようにしました。
主な変更点は、次のとおりです。
-
このワークフロー (
reviewdog) を手動でも実行できるようにする。 -
step:
Get changed files
現在のブランチとmainブランチを比較して変更があったMarkdownファイルの一覧を取得する。
Fetch main repositoryステップでmainブランチをフェッチし、一覧が取得できるようにする。 -
step:
Setup pnpm
パッケージマネージャーpnpmをセットアップして、GitHub Actions環境で利用できるようにする。 -
step:
Install linters
./bin/install_linter.shスクリプトを実行し、lintに必要なツールおよびルールをインストールする。
install_linter.sh
textlint, markdownlintなどの各種lintツールをグローバルにインストールしています。
これらのツールの依存関係は、package.json に保存されません。
そのため、install_linter.shスクリプトを実行して、必要な lintツールをインストールします。
textlintで使用するルールモジュールは、上記スクリプトのpackages変数に設定されています。
おわりに
記事をレビューするGitHub Actionsの修正点を簡単にまとめました。
各種lintツールの設定は atsushifx/zenn-dev にて公開しています。
参考になると幸いです。
それでは、Happy Hacking!
Discussion