2020年8月7日金曜日

Gitlab.com で公開されている Gitlab の各種ドキュメントをビルドしてローカルで確認する方法

概要

例えば omnibus-gitlab に含まれるドキュメントを修正したい場合には Markdown を修正してローカルで動作確認してから pull-request を送りたくなります
今回はローカルでドキュメントをビルドする方法を紹介します

環境

  • macOS 10.15.6
  • Ruby 2.7.1p83
    • bundler 2.1.4
  • Nodejs 14.5.0
    • yarn 1.22.4

ビルドまでの流れ

Gitlab のドキュメントは複数のリポジトリに別れているためそれぞれ clone する必要があります
ドキュメント自体はそれぞれのプロダクトのリポジトリで Markdown で管理されておりスタイルは gitlab-docs というリポジトリで管理されています
つまり各プロダクトのドキュメントを clone してスタイルを管理しているリポジトリ上に紐付けてビルドすればローカルで確認できます

各種リポジトリの clone

作業用のディレクトリを作成して必要なリポジトリを clone します

  • mkdir build-gitlab-docs
  • cd build-gitlab-docs
  • git clone --depth 1 https://gitlab.com/gitlab-org/omnibus-gitlab.git
  • git clone --depth 1 https://gitlab.com/gitlab-org/gitlab-runner.git
  • git clone --depth 1 https://gitlab.com/gitlab-org/gitlab.git
  • git clone --depth 1 https://gitlab.com/gitlab-org/charts/gitlab.git charts
  • git clone --depth 1 https://gitlab.com/gitlab-org/gitlab-docs.git

スタイルのリポジトリに各リポジトリを紐付ける

次に gitlab-docs リポジトリに各リポジトリを紐付けます
紐付けると言ったもシンボリックリンクを作成するだけです

  • cd ..
  • ln -s $(pwd)/build-gitlab-docs/omnibus-gitlab/doc build-gitlab-docs/gitlab-docs/content/omnibus
  • ln -s $(pwd)/build-gitlab-docs/gitlab/doc build-gitlab-docs/gitlab-docs/content/ee
  • ln -s $(pwd)/build-gitlab-docs/gitlab-runner/docs build-gitlab-docs/gitlab-docs/content/runner
  • ln -s $(pwd)/build-gitlab-docs/charts/doc build-gitlab-docs/gitlab-docs/content/charts
  • cd build-gitlab-docs/gitlab-docs
  • ls -ltr content

ちゃんとフルパスでリンクされていれば OK です

yarn ビルド

まずは各種 static ファイルを生成します

  • yarn install --frozen-lockfile

bundle ビルド

次に生成した静的ファイルと Markdown を描画するための nanoc のインストールとビルドを行います

  • bundle update --bundler
  • bundle config path vendor
  • bundle install
  • bundle exec nanoc && bundle exec nanoc live

ローカルの bundler が 2.x 系になっていたので bundle update してバージョンを合わせています
bundler が 1.17.3 であれば不要です

ビルドが成功すれば localhost:3000 で確認できます

動作確認

localhost:3000 にアクセスして以下のようなドキュメントが確認できれば OK です

最後に

コントリビュータ向けの記事ですが gitlab のドキュメントをビルドする方法を紹介しました
ドキュメントを修正したい場合にはご活用ください

参考サイト

0 件のコメント:

コメントを投稿