💆

[Tips] Zenn用のGit運用考えてみた(Github Actions編)

2024/02/02に公開
2

🌟 はじめに

こんにちは、おぐまです。

前回の記事では、Zennの記事を管理するためのブランチ編について説明しました。

今回は続編として、GitHub Actionsを利用してZennの記事品質を自動化する方法を紹介します。

👷‍♂️ 事前準備

💻 開発環境

  • macOS Sonoma 14.3
  • Visual Studio Code 1.85.2 (Universal)
  • GitHubアカウント

📝 GitHub Actionsでの自動化

GitHub Actionsは、ワークフローを自動化するためのCI/CD機能です。
ここでは、Zennの記事にMarkdown Linterを導入して、記事の品質を自動でチェックする方法を見ていきます。

👉 Markdown Linterの導入

  1. .github/workflowsディレクトリを作成
    リポジトリのルートに.github/workflowsディレクトリを作成します。この中にGitHub Actionsのワークフロー設定ファイルを配置します。

  2. ワークフロー設定ファイルの作成
    .github/workflowsディレクトリ内にmarkdown_lint.ymlという名前で新しいファイルを作成し、以下の内容を追加します。

name: Markdown Lint

on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main, develop ]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '20'
    - name: Install Markdownlint CLI
      run: npm install -g markdownlint-cli
    - name: Lint Markdown files
      run: markdownlint '**/*.md' --ignore node_modules

この設定により、maindevelopブランチにpushされた時、またはPull Requestが作成された時にMarkdownファイルのLintが自動で行われます。

👉 こんかいのActions詳細

name: Markdown Lint
  • このワークフローの名前を指定
  • GitHubのActionsタブでこの名前が表示される
on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main, develop ]
  • このワークフローがトリガーされる条件を指定する
  • 今回の例では、mainまたはdevelopブランチへのpush or それらのブランチに対するpull_requestがあった場合にワークフローが実行されます
jobs:
  lint:
    runs-on: ubuntu-latest
  • 実行するジョブを定義します
  • この例ではlintという名前のジョブがあり、ubuntu-latestイメージ上で実行されます
steps:
- uses: actions/checkout@v2
  • リポジトリのコードをチェックアウトするためのステップ
  • これにより、ワークフローがリポジトリのコードにアクセスできるようになる
- name: Set up Node.js
  uses: actions/setup-node@v2
  with:
    node-version: '14'
  • Node.jsをセットアップするステップ
  • actions/setup-node@v2アクションを使用して、指定されたバージョン(この例では14)のNode.jsをセットアップする
- name: Install Markdownlint CLI
  run: npm install -g markdownlint-cli
  • Markdownlint CLIをインストールするステップ
  • npm install -g markdownlint-cliコマンドを実行して、MarkdownのLintツールをインストールします
- name: Lint Markdown files
  run: markdownlint '**/*.md' --ignore node_modules
  • MarkdownファイルをLintするステップ
  • markdownlint '**/*.md' --ignore node_modulesコマンドを実行して、リポジトリ内の全てのMarkdownファイルをLintしますが、node_modulesディレクトリは除外します。

👉 Lintルールのカスタマイズ

Markdownlintはカスタマイズ可能です。
プロジェクト(リポジトリ)のルートに.markdownlint.jsonファイルを作成し、好みのルールを設定します。

例えば、以下の設定では、一部のルールを無効にしています。

{
  "default": true,
  "MD013": false,
  "MD033": false
}

🎉 まとめ

GitHub Actionsを利用して、Zennの記事の品質を自動でチェックする方法を紹介しました。
これにより、記事の公開前に品質を確認し、読者にとって有益なコンテンツを提供しやすくなります。

💡 補足

https://github.com/markdownlint/markdownlint/blob/main/docs/RULES.md

GitHubで編集を提案

Discussion

9mak9mak

👆満を持してGithub Actionsのワークフローが動くのみたら、べらぼうにエラーでました。出直します笑