🐙

Zenn: 既存の記事をレビューしないようにGitHub Actionsを修正する

2025/02/10に公開

はじめに

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 を修正し、変更された記事のみレビュー対象となるようにしました。

主な変更点は、次のとおりです。

  1. このワークフロー (reviewdog) を手動でも実行できるようにする。

  2. step: Get changed files
    現在のブランチとmainブランチを比較して変更があったMarkdown ファイルの一覧を取得する。
    Fetch main repositoryステップでmainブランチをフェッチし、一覧が取得できるようにする。

  3. step: Setup pnpm
    パッケージマネージャーpnpmをセットアップして、GitHub Actions 環境で利用できるようにする。

  4. 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!

GitHubで編集を提案

Discussion