無料ツール

GitLab CI の可視化ツール

.gitlab-ci.yml を貼り付けると、編集できる GitLab CI のパイプライン図になります。ステージは列に、ジョブはそのステージの中に並び、ステージを飛び越える needs の接続線、子パイプライン、環境も描かれます。試すだけならアカウントは不要です。

出力例

GitLab CI のサンプルから描いた図の例
サンプルを試すモノレポのパイプライン

使い方

  1. .gitlab-ci.yml を貼り付けるかドロップ

    プロジェクトのルートにあるパイプラインファイルです。YAML のアンカー、extends のテンプレート、!reference タグも問題なく、先頭にある CI/CD コンポーネントの spec ヘッダーは読み飛ばします。

  2. パイプラインを列で確認

    ステージは左から右への列になり、各ジョブは自分のステージの列に並びます。ステージより先に始まるジョブは needs の接続線でつながります。

  3. Archboard で開く

    新しい図として保存すれば、ジョブの配置変更、メモの追加、リンクの共有、SVG・PNG へのエクスポートができます。登録は Google か GitHub のアカウントだけで済みます。

.gitlab-ci.yml から描かれるもの

図はパイプラインファイル内の次のキーワードに従って作られます。

  • stagesstage

    stages リストの順にステージを列として描きます。リストがなければ build、test、deploy です。ステージのないジョブは test に入り、ジョブのないステージは描きません。

  • script

    各ジョブを、そのステージの列にカードとして描きます。ドットで始まるキーはテンプレートで、ジョブとしては描きませんが、それを継承するジョブには反映されます。

  • needsneeds: []

    needs に挙げた各ジョブから接続線を描くので、ステージより先に始まるジョブがひと目でわかります。needs: [] はすぐに始まるジョブを示します。optional の needs や、rules、only、except を持つジョブへの接続線は破線になります。

  • extends

    extends は最大 11 階層のテンプレートまで、YAML のアンカーやマージキーとあわせて解決するため、継承された stage、needs、when、parallel、trigger、environment の値も描かれます。

  • parallelparallel:matrix

    parallel: 3 や parallel:matrix のジョブは 1 枚のカードのままで、×3 またはマトリックスの組み合わせ数が付きます。

  • trigger

    トリガージョブは、起動する対象のカードにつながります。trigger: include で指定した子パイプラインのファイル、または trigger: project のダウンストリームプロジェクトです。

  • environment

    review、staging、production などの各環境をカードとして描き、そこへデプロイするジョブからつなぎます。

  • when: manual

    手動ジョブには · manual が付くので、パイプラインの承認ステップがひと目でわかります。

GitLab CI の図に含まれないもの

  • include で取り込む設定。ローカルファイル、別プロジェクト、リモート URL、テンプレート、CI/CD コンポーネントのいずれも取得せず、それらのファイルのテンプレートを継承するジョブは警告に一覧表示されます。
  • rules、only、except によってジョブが追加されるかスキップされるか。評価しないため、すべてのジョブを描きます。
  • 変数とその値、スクリプト、イメージ、キャッシュ、アーティファクトのパス。
  • パイプラインの実行。ジョブの状態、所要時間、ログ、アーティファクト。図が表すのは設定で、特定の実行ではありません。

GitLab CI 可視化ツールについての質問

include はどうなりますか?

インクルードされるファイルは取得しないため、貼り付けたファイルに書かれたジョブだけが描かれます。インクルードされるファイルのジョブを見るには、そのファイルを別に貼り付けるか、貼り付ける前にファイルを 1 つにまとめてください。

extends や hidden jobs は解決されますか?

はい。extends は GitLab と同じ方法でマージされます。ハッシュは深くマージされ、配列は置き換えられ、最大 11 階層までです。名前がドットで始まる hidden jobs は描きませんが、それを継承するジョブには反映されます。マージキーを使った YAML のアンカーも使えます。!reference タグは解決しません。

ステージと needs はどのように一緒に表示されますか?

ステージは列なので、ジョブの列がデフォルトで実行されるタイミングを表します。needs の接続線は、指定したジョブが終わり次第すぐに始まるジョブを表します。needs がなければジョブ同士はつながらず、列だけで順序がわかります。ほかのパイプラインやプロジェクトを指す needs は警告に一覧表示されます。

子パイプラインやダウンストリームパイプラインも描かれますか?

はい、カードとして描かれます。trigger: include を持つジョブは子パイプラインのファイルを、trigger: project を持つジョブはダウンストリームプロジェクトを指します。中のジョブは展開しないため、子パイプラインのファイルを貼り付けると図にできます。

図を Archboard で開くとどうなりますか?

このページのプレビューは保存されません。「Archboard で開く」を選ぶと、表示されている図(ステージ、ジョブ、接続線)がワークスペースに新しい図として保存され、配置の変更、注釈の追加、共有、エクスポートができます。あくまで出発点なので、後から .gitlab-ci.yml を変更しても図は更新されません。

GitLab CI の可視化ツールは無料ですか?

はい。パイプラインファイルを貼り付けて図を見るだけならアカウントは不要です。Archboard で開くには無料アカウントが必要です。

1分でキャンバスを開く

Google または GitHub でサインイン。1シートは無料で、チームが加わったらアップグレード。