パイプラインエディタ
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
パイプラインエディタは、リポジトリのルートにある.gitlab-ci.ymlファイルでGitLab CI/CDの設定を編集するための主要な場所です。エディタにアクセスするには、ビルド > パイプラインエディタに移動します。
パイプラインエディタページでは、次のことができます:
- 作業するブランチを選択する。
- ファイルの編集中に、設定の構文を検証する。
- 設定に対してより厳密な検証を実行し、
includeキーワードで追加されたすべての設定を検証します。 includeキーワードで追加されたCI/CD設定のリストを表示する。- 現在の設定を視覚化して表示する。
- 完全な設定を表示する。これには、
includeから追加された設定もすべて含まれます。 - 特定のブランチに変更をコミットする。
CI/CD検証構文
パイプラインエディタを使用すると、パイプラインの設定構文がGitLab CI/CDパイプラインスキーマに対して継続的に検証されます。CI/CD YAMLの構文と、いくつかの基本的な論理検証がチェックされます。
この検証の結果は、エディタページの上部に表示されます。検証に失敗した場合、このセクションに問題を修正するためのヒントが表示されます。
CI/CD設定を検証する
コミットする前にGitLab CI/CD設定の有効性をテストするには、パイプラインエディタ検証ツールを使用します。このツールは、Gitプッシュイベントによるパイプラインの作成をシミュレートし、正しくないrulesやneedsジョブの依存関係などのロジックのトラブルシューティングに役立ちます:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- ビルド > パイプラインエディタを選択します。
- 検証タブを選択します。
- オプション。パイプラインを実行するソースドロップダウンリストを使用して、シミュレートされたプッシュイベントに使用する別のブランチを選択します。
- パイプラインの検証を選択します。
シミュレートされたパイプラインは、編集タブの既存のパイプライン設定を使用します。
編集タブにCI/CD YAMLスニペットを追加せずに検証するには、代わりにCI Lint toolを使用します。
インクルードされたCI/CD設定を表示する
パイプラインエディタでは、includeキーワードで追加された設定を確認できます。右上隅で、ファイルツリー( )を選択して、インクルードされたすべての設定ファイルのリストを表示します。選択したファイルは新しいタブで開き、確認できます。
CI設定を視覚化する
.gitlab-ci.yml設定の視覚化を表示するには、プロジェクトで、ビルド > パイプラインエディタに移動し、視覚化タブを選択します。この視覚化には、すべてのステージとジョブが表示されます。needs関係は、ジョブを結ぶ線として表示され、実行の階層を示します。
ジョブの上にカーソルを合わせると、そのジョブのneeds関係が強調表示されます:
設定にneeds関係がない場合、各ジョブは前のステージが正常に完了したことのみに依存するため、線は描画されません。
完全な設定を表示する
完全に展開されたCI/CD設定を1つの結合ファイルとして表示するには、パイプラインエディタの完全な設定タブに移動します。このタブには、次のように展開された設定が表示されます:
includeでインポートされた設定がビューにコピーされる。extendsを使用するジョブは、拡張された設定がジョブにマージされた状態で表示される。- YAMLアンカーは、リンクされた設定に置き換えられる。
- YAMLの
!referenceタグも、リンクされた設定に置き換えられる。 - 条件付きルールは、デフォルトブランチへのプッシュイベントを前提として評価される。
!referenceタグを使用すると、展開ビューで、ネストされた設定の行の先頭に複数のハイフン(-)が表示されることがあります。これは想定された動作であり、余分なハイフンがあってもジョブの実行には影響しません。たとえば、この設定と完全に展開した後の設定はどちらも有効です:
.gitlab-ci.ymlファイル:.python-req: script: - pip install pyflakes .rule-01: rules: - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/ when: manual allow_failure: true - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME .rule-02: rules: - if: $CI_COMMIT_BRANCH == "main" when: manual allow_failure: true lint-python: image: python:latest script: - !reference [.python-req, script] - pyflakes python/ rules: - !reference [.rule-01, rules] - !reference [.rule-02, rules]完全な設定タブでの展開後の設定:
".python-req": script: - pip install pyflakes ".rule-01": rules: - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/" when: manual allow_failure: true - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ".rule-02": rules: - if: $CI_COMMIT_BRANCH == "main" when: manual allow_failure: true lint-python: image: python:latest script: - - pip install pyflakes # <- The extra hyphens do not affect the job's execution. - pyflakes python/ rules: - - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/" # <- The extra hyphens do not affect the job's execution. when: manual allow_failure: true - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" # <- No extra hyphen but aligned with previous rule - - if: $CI_COMMIT_BRANCH == "main" # <- The extra hyphens do not affect the job's execution. when: manual allow_failure: true
CI設定への変更をコミットする
エディタの各タブの下部にコミットフォームが表示されるため、いつでも変更をコミットできます。
変更に満足したら、記述的なコミットメッセージを追加してブランチを入力します。ブランチフィールドには、プロジェクトのデフォルトブランチがデフォルトで設定されています。
新しいブランチ名を入力すると、Start a new merge request with these changes(これらの変更で新しいマージリクエストを開始)チェックボックスが表示されます。これをオンにすると、変更をコミットした後に新しいマージリクエストを開始できます。
エディタのアクセシビリティオプション
パイプラインエディタは、Monaco Editorをベースにしており、アクセシビリティ機能がいくつか用意されています:
| 機能 | WindowsまたはLinuxでのショートカット | macOSでのショートカット | 詳細 |
|---|---|---|---|
| キーボードナビゲーションコマンドリスト | F1 | F1 | エディタをマウスなしでも使いやすくするコマンドのリストです。 |
| タブトラップ | Control + m | Control + Shift + m | タブ文字を挿入するのではなく、ページ上の次のフォーカス可能な要素に移動するタブトラップを有効にします。 |
トラブルシューティング
Unable to validate CI/CD configuration.メッセージ
このメッセージは、パイプラインエディタで構文を検証する際に問題が発生した場合に表示されます。これは、GitLabが構文を検証するサービスと通信できない場合に発生することがあります。
次のセクションの情報が正しく表示されない場合があります:
- 編集タブの構文ステータス(有効または無効)。
- 視覚化タブ。
- Lintタブ。
- 完全な設定タブ。
CI/CD設定を引き続き操作し、問題なく変更をコミットできます。サービスが再び利用可能になると、構文の検証がすぐに表示されます。

