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