CI/CDの設定
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
管理者エリアでGitLabインスタンスのCI/CDを設定します。
前提条件:
- 管理者アクセス権が必要です。
次の設定を使用できます:
- 変数: インスタンス内のすべてのプロジェクトで使用できるCI/CD変数を設定します。
- 継続的インテグレーションとデプロイ: Auto DevOps、ジョブ、アーティファクト、インスタンスRunner、パイプライン機能の設定を行います。
- パッケージレジストリ: パッケージ転送とファイルサイズの制限を設定します。
- Runner: Runnerの登録、バージョン管理、トークンの設定を行います。
- ジョブトークンの権限: プロジェクト全体でのジョブトークンアクセスを制御します。
- ジョブログ: 増分ログの生成などのジョブログの設定を行います。
- CI/CDの制限。
継続的インテグレーションとデプロイの設定にアクセスする
Auto DevOps、インスタンスRunner、ジョブアーティファクトなどのCI/CD設定をカスタマイズします。
これらの設定にアクセスするには、次の手順に従います。
- 右上隅で、管理者を選択します。
- 左サイドバーで、設定 > CI/CDを選択します。
- 継続的インテグレーションとデプロイを展開します。
すべてのプロジェクトでAuto DevOpsを設定する
.gitlab-ci.ymlファイルがないすべてのプロジェクトに対して実行するようにAuto DevOpsを設定します。これは、既存のプロジェクトと新しいプロジェクトの両方に適用されます。
インスタンス内のすべてのプロジェクトに対してAuto DevOpsを設定するには、次の手順に従います。
- すべてのプロジェクトでデフォルトのAuto DevOpsパイプラインチェックボックスをオンにします。
- オプション。自動デプロイとAuto Review Appsを使用するには、Auto DevOpsベースドメインを指定します。
- 変更を保存を選択します。
インスタンスRunner
新しいプロジェクトでインスタンスRunnerを有効にする
すべての新しいプロジェクトで、インスタンスRunnerをデフォルトで利用可能にできます。
インスタンスRunnerを新しいプロジェクトで利用可能にするには、次の手順に従います。
- 新しいプロジェクトでインスタンスのRunnerを有効にするチェックボックスをオンにします。
- 変更を保存を選択します。
インスタンスRunnerの詳細を追加する
インスタンスRunnerに関する説明テキストを追加します。このテキストは、すべてのプロジェクトのRunner設定に表示されます。
インスタンスRunnerの詳細を追加するには、次の手順に従います。
- Instance runner detailsテキストボックスにテキストを入力します。Markdown形式を使用できます。
- 変更を保存を選択します。
レンダリングされた詳細を表示するには、次の手順に従います。
- 上部のバーで、検索または移動先を選択して、プロジェクトまたはグループを見つけます。
- 左サイドバーで、設定 > CI/CDを選択します。
- Runnerを展開します。
プロジェクトRunnerを複数のプロジェクトで共有する
プロジェクトRunnerを複数のプロジェクトで共有します。
前提条件:
- 登録済みのプロジェクトRunnerが必要です。
プロジェクトRunnerを複数のプロジェクトで共有するには、次の手順に従います。
- 右上隅で、管理者を選択します。
- 左側のサイドバーで、CI/CD > Runnerを選択します。
- 編集するRunnerを選択します。
- 右上隅で、編集( )を選択します。
- このRunnerのプロジェクトを制限するで、プロジェクトを検索します。
- プロジェクトの左側にある有効を選択します。
- 追加の各プロジェクトに対して、このプロセスを繰り返します。
ジョブアーティファクト
ジョブアーティファクトがGitLabインスタンス全体でどのように保存および管理されるかを制御します。
アーティファクトのデフォルトの有効期限を設定する
ジョブアーティファクトが自動的に削除されるまでの保持期間を設定します。デフォルトの有効期限は30日です。
期間の構文はartifacts:expire_inに記載されています。個々のジョブ定義は、プロジェクトの.gitlab-ci.ymlファイルに指定されているこのデフォルト値をオーバーライドできます。
この設定の変更は、新しいアーティファクトにのみ適用されます。既存のアーティファクトは、元の有効期限を保持します。古いアーティファクトを手動で期限切れにする方法については、トラブルシューティングのドキュメントを参照してください。
ジョブアーティファクトのデフォルトの有効期限を設定するには、次の手順に従います。
- デフォルトのアーティファクトの有効期限テキストボックスに値を入力します。
- 変更を保存を選択します。
最後に成功したパイプラインからのアーティファクトを保持する
有効期限に関係なく、Git ref(ブランチまたはタグ)ごとに、最後に成功したパイプラインからのアーティファクトを保持します。
この設定はデフォルトで有効になっています。
この設定は、プロジェクトの設定よりも優先されます。インスタンスに対して無効になっている場合、個々のプロジェクトに対して有効にすることはできません。
この機能が無効になっている場合、既存の保持されているアーティファクトはすぐには期限切れになりません。アーティファクトを期限切れにするには、新しい成功したパイプラインをブランチに対して実行する必要があります。
すべてのアプリケーション設定には、カスタマイズ可能なキャッシュ有効期限間隔があり、設定変更の影響を遅らせる可能性があります。
最新の成功したパイプラインからのアーティファクトを保持するには、次の手順に従います。
- 最新の成功したパイプライン内のすべてのジョブの、最新のアーティファクトを保持しますチェックボックスをオンにします。
- 変更を保存を選択します。
アーティファクトを有効期限の設定に従って期限切れにするには、このチェックボックスをオフにします。
外部リダイレクト警告ページを表示または非表示にする
ユーザーがGitLab Pagesでジョブアーティファクトを表示するときに、警告ページを表示するかどうかを制御します。この警告は、ユーザーが生成したコンテンツの潜在的なセキュリティリスクについて警告します。
デフォルトでは、外部リダイレクト警告ページが表示されます。非表示にするには、次の手順に従います。
- ジョブアーティファクトの外部リダイレクトページを有効にするチェックボックスをオフにします。
- 変更を保存を選択します。
パイプライン
パイプラインをアーカイブする
指定された期間が経過した後、古いパイプラインとそのすべてのジョブを自動的にアーカイブします。アーカイブされたジョブは、次のようになります。
- このジョブはアーカイブされていますという情報通知をジョブログのトップに表示します。
- 再実行または再試行できません。
- 環境の自動停止時に、停止時のデプロイアクションとして実行できません。
- ジョブログは引き続き表示されます。
アーカイブ期間は、パイプラインが作成された時点から測定されます。少なくとも1日以上である必要があります。有効な期間の例としては、15 days、1 month、2 yearsなどがあります。パイプラインを自動的にアーカイブしない場合は、このフィールドを空のままにします。
GitLab.comについては、パイプラインアーカイブを参照してください。
ジョブのアーカイブを設定するには、次の手順に従います。
- パイプラインをアーカイブテキストボックスに値を入力します。
- 変更を保存を選択します。
デフォルトでパイプライン変数を許可する
新しいグループの新しいプロジェクトで、デフォルトでパイプライン変数を許可するかどうかを制御します。
無効にすると、新しいグループのパイプライン変数を使えるデフォルトロール設定が誰にも許可しないに設定され、新しいグループの新しいプロジェクトにカスケードされます。有効にすると、代わりにこの設定のデフォルトがデベロッパーに設定されます。
新しいグループとプロジェクトで最も安全なデフォルトを維持するために、この設定を無効にすることをお勧めします。
新しいグループのすべての新しいプロジェクトで、デフォルトでパイプライン変数を許可するには、次の手順に従います。
- 新しいグループでデフォルトでパイプライン変数を許可するチェックボックスをオンにします。
- 変更を保存を選択します。
グループまたはプロジェクトの作成後に、メンテナーは別の設定を選択できます。
デフォルトでCI/CD変数を保護する
プロジェクトとグループ内のすべての新しいCI/CD変数がデフォルトで保護されるように設定します。保護された変数は、保護ブランチまたは保護タグで実行されるパイプラインでのみ使用できます。
すべての新しいCI/CD変数をデフォルトで保護するには、次の手順に従います。
- デフォルトで保護されるCI/CD変数チェックボックスをオンにします。
- 変更を保存を選択します。
デフォルトのCI/CD設定ファイルを指定する
すべての新しいプロジェクトで、CI/CD設定ファイルとしてデフォルトで使用するカスタムパスとファイル名を設定します。デフォルトでは、GitLabはプロジェクトのルートディレクトリにある.gitlab-ci.ymlファイルを使用します。
この設定は、変更後に作成された新しいプロジェクトにのみ適用されます。既存のプロジェクトは、現在のCI/CD設定ファイルパスを引き続き使用します。
カスタムのデフォルトCI/CD設定ファイルのパスを設定するには、次の手順に従います。
- デフォルトのCI/CD設定ファイルテキストボックスに値を入力します。
- 変更を保存を選択します。
個々のプロジェクトでこのインスタンスデフォルトをオーバーライドするには、カスタムCI/CD設定ファイルを指定します。
パイプライン提案バナーを表示または非表示にする
パイプラインがないマージリクエストにガイダンスバナーを表示するかどうかを制御します。このバナーは、.gitlab-ci.ymlファイルの追加方法に関するチュートリアルを示します。
パイプライン提案バナーはデフォルトで表示されます。非表示にするには、次の手順に従います。
- パイプライン提案バナーを有効にするチェックボックスをオフにします。
- 変更を保存を選択します。
Jenkins移行バナーを表示または非表示にする
JenkinsからGitLab CI/CDへの移行を推奨するバナーを表示するかどうかを制御します。このバナーは、Jenkinsインテグレーションが有効になっているプロジェクトのマージリクエストに表示されます。
Jenkins移行バナーはデフォルトで表示されます。非表示にするには、次の手順に従います。
- 「Jenkinsからの移行」バナーを表示するチェックボックスをオンにします。
- 変更を保存を選択します。
パッケージレジストリ設定にアクセスする
NuGetパッケージの検証、Helmパッケージの制限、パッケージファイルサイズの制限、パッケージ転送を設定します。
これらの設定にアクセスするには、次の手順に従います。
- 右上隅で、管理者を選択します。
- 左サイドバーで、設定 > CI/CDを選択します。
- パッケージレジストリを展開します。
NuGetパッケージのメタデータURLの検証をスキップする
NuGetパッケージ内のprojectUrl、iconUrl、およびlicenseUrlメタデータの検証をスキップします。
デフォルトでは、GitLabはこれらのURLを検証します。GitLabインスタンスがインターネットにアクセスできない場合、この検証は失敗し、NuGetパッケージをアップロードできません。
NuGetパッケージのメタデータURLの検証をスキップするには、次の手順に従います。
- NuGetパッケージのメタデータURLの検証をスキップチェックボックスをオンにします。
- 変更を保存を選択します。
チャンネルごとのHelmパッケージの最大数を設定する
チャンネルごとにリストできるHelmパッケージの最大数を設定します。
Helmパッケージの制限を設定するには、次の手順に従います。
- パッケージ制限で、チャネル毎のHelmパッケージの最大数フィールドに値を入力します。
- 変更を保存を選択します。
パッケージファイルサイズの制限を設定する
ストレージの使用量を制御し、システムのパフォーマンスを維持するために、パッケージの種類ごとにファイルの最大サイズ制限を設定します。
次のパッケージの最大ファイルサイズ制限(バイト単位)を設定できます。
- Conanパッケージ
- Helmチャート
- Mavenパッケージ
- npmパッケージ
- NuGetパッケージ
- PyPIパッケージ
- Terraformモジュールパッケージ
- 汎用パッケージ
パッケージファイルサイズの制限を設定するには、次の手順に従います。
- パッケージファイルサイズの制限で、設定する制限の値を入力します。
- サイズ制限を保存を選択します。
パッケージ転送を制御する
- プラン: Premium、Ultimate
- 提供形態: GitLab Self-Managed
パッケージがGitLabパッケージレジストリで見つからない場合に、パッケージリクエストをパブリックレジストリに転送するかどうかを制御します。
デフォルトでは、GitLabはパッケージリクエストをそれぞれのパブリックレジストリに転送します。
- MavenリクエストはMaven Centralに転送されます。
- npmリクエストはnpmjs.comに転送されます。
- PyPIリクエストはpypi.orgに転送されます。
パッケージ転送をオフにするには:
- 右上隅で、管理者を選択します。
- 左サイドバーで、概要 > グループを選択し、お使いのグループを見つけます。
- 設定 > CI/CDを選択します。
- パッケージレジストリを展開します。
- 以下のチェックボックスのいずれかをオフにします:
- Forward npm package requests
- Forward PyPI package requests
- 変更を保存を選択します。
Mavenパッケージのリクエスト転送をオフにするには、パッケージレジストリ内のMavenパッケージを参照してください。
Runner設定にアクセスする
Runnerのバージョン管理と登録の設定を行います。
これらの設定にアクセスするには、次の手順に従います。
- 右上隅で、管理者を選択します。
- 左サイドバーで、設定 > CI/CDを選択します。
- Runnerを展開します。
Runnerのバージョン管理を制御する
インスタンスがRunnerのアップグレードが必要かどうかを判断するために、GitLab.comから公式のRunnerバージョンデータをフェッチするかどうかを制御します。
デフォルトでは、GitLabはRunnerバージョンデータをフェッチします。このデータのフェッチを停止するには、次の手順に従います。
- Runnerのバージョン管理で、GitLab.comからGitLab Runnerのリリースバージョンデータを取得するチェックボックスをオフにします。
- 変更を保存を選択します。
Runner登録を制御する
Runnerを登録できるユーザーと、登録トークンを許可するかどうかを制御します。
Runnerの登録トークンを渡し、特定の設定引数をサポートするオプションは、レガシーと見なされ、推奨されません。Runner作成ワークフローを使用して、Runnerを登録するための認証トークンを生成します。このプロセスは、Runnerの所有権の完全なトレーサビリティを提供し、Runnerフリートのセキュリティを強化します。
詳細については、新しいRunner登録ワークフローに移行するを参照してください。
デフォルトでは、Runner登録トークンと、プロジェクトメンバーとグループメンバーの登録の両方が許可されています。Runnerの登録を制限するには、次の手順に従います。
- Runnerの登録で次のチェックボックスをオフにします。
- Runner登録トークンを許可
- プロジェクトのメンバーはRunnerを作成できる
- グループのメンバーはRunnerを作成できる
- 変更を保存を選択します。
プロジェクトメンバーのRunner登録を無効にすると、登録トークンは自動的にローテーションします。前のトークンは無効になり、プロジェクトの新しい登録トークンを使用する必要があります。
特定のグループに対するRunner登録を制限する
特定のグループのメンバーがRunnerを登録できるかどうかを制御します。
前提条件:
- Runnerの登録設定でグループのメンバーはRunnerを作成できるチェックボックスがオンになっている必要があります。
特定のグループに対するRunnerの登録を制限するには、次の手順に従います。
- 右上隅で、管理者を選択します。
- 左サイドバーで、概要 > グループを選択し、お使いのグループを見つけます。
- 編集を選択します。
- Runnerの登録で、新しいグループRunnerを登録できますチェックボックスをオフにします。
- 変更を保存を選択します。
ジョブトークン権限設定にアクセスする
CI/CDジョブトークンがプロジェクトにアクセスする方法を制御します。
これらの設定にアクセスするには、次の手順に従います。
- 右上隅で、管理者を選択します。
- 左サイドバーで、設定 > CI/CDを選択します。
- ジョブトークンの権限を展開します。
ジョブトークン許可リストを強制する
すべてのプロジェクトで、許可リストを使用してジョブトークンアクセスを制御することを必須にします。
この設定を有効にすると、次のようになります:
- CI/CDジョブトークンは、トークンのソースプロジェクトが許可リストに追加されている場合にのみ、プロジェクトにアクセスできます。
- The CI/CDジョブトークンスコープAPIは、ユーザーが許可リストを無効にしようとするとエラーを返します。
詳細については、プロジェクトへのジョブトークンアクセスを制御するを参照してください。
ジョブトークン許可リストを強制するには、次の手順に従います。
- 認証されたグループとプロジェクトで、全プロジェクトでジョブトークンの許可リストを有効にして適用するチェックボックスをオンにします。
- 変更を保存を選択します。
ジョブログ設定にアクセスする
CI/CDジョブログの保存と処理の方法を制御します。
これらの設定にアクセスするには、次の手順に従います。
- 右上隅で、管理者を選択します。
- 左サイドバーで、設定 > CI/CDを選択します。
- ジョブログを展開します。
増分ログの生成を設定する
Redisを使用してジョブログを一時的にキャッシュし、アーカイブされたログをオブジェクトストレージに段階的にアップロードします。これにより、パフォーマンスが向上し、ディスク容量の使用量が削減されます。
詳細については、増分ログの生成を参照してください。
前提条件:
- CI/CDアーティファクト、ログ、およびビルド用にオブジェクトストレージを設定する必要があります。
すべてのプロジェクトで増分ログの生成をオンにするには、次の手順に従います。
- 右上隅で、管理者を選択します。
- 左サイドバーで、設定 > CI/CDを選択します。
- ジョブログセクションを展開します。
- 増分ログの生成の設定で、増分ログを有効にするチェックボックスをオンにします。
- 変更を保存を選択します。
CI/CDカタログの設定
- プラン: Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
CI/CDカタログにコンポーネントを公開できるプロジェクトを制御します。
これらの設定にアクセスするには、次の手順に従います。
- 右上隅で、管理者を選択します。
- 左サイドバーで、設定 > CI/CDを選択します。
- Catalogを展開します。
CI/CDカタログ公開を制限します
デフォルトでは、どのプロジェクトでもCI/CDカタログにコンポーネントを公開できます。許可リストを設定することで、特定のプロジェクトへの公開を制限できます。
許可リストが次のいずれかの場合:
- 空の場合(デフォルト): すべてのプロジェクトがカタログに公開できます。
- 任意の数のプロジェクトが入力されている場合: 許可リストのエントリに一致するプロジェクトのみが公開できます。
許可リストのエントリは次のように定義できます:
- 正確なプロジェクトパス。例:
my-group/my-project - 正規表現。例:
my-group/.*: グループ内のすべてのプロジェクト。my-group/security-.*:security-で始まるプロジェクト。
CI/CDカタログ公開許可リストを設定するには:
- 右上隅で、管理者を選択します。
- 左サイドバーで、設定 > CI/CDを選択します。
- Catalogを展開します。
- CI/CDカタログ公開の許可リストテキストエリアに、1行に1つのパスパターンを入力します。
- 変更を保存を選択します。
許可リストにないプロジェクトは、コンポーネントのバージョンを公開しようとすると、not authorized to publishエラーを受け取ります。
必要なパイプライン設定(非推奨)
- プラン: Ultimate
- 提供形態: GitLab Self-Managed
この機能はGitLab 15.9で非推奨になり、17.0で削除されました。17.4以降は、デフォルトで無効になっている機能フラグrequired_pipelinesを有効にした場合にのみ使用できます。代わりに、コンプライアンスパイプラインを使用してください。これは破壊的な変更です。
GitLabインスタンス上のすべてのプロジェクトに対して、CI/CDテンプレートを必須のパイプライン設定として設定できます。次のテンプレートを使用できます。
デフォルトのCI/CDテンプレート
インスタンステンプレートリポジトリに保存されているカスタムテンプレート
パイプラインの実行時に、プロジェクトCI/CD設定は必須のパイプライン設定とマージされます。マージ後の設定は、必須のパイプライン設定でincludeキーワードを使用してプロジェクトの設定を追加した場合と同じになります。プロジェクトのマージ済み設定全体を表示するには、パイプラインエディタで設定全体を表示します。
必須のパイプライン設定のCI/CDテンプレートを選択するには、次の手順に従います。
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > CI/CDを選択します。
- 必須のパイプライン設定セクションを展開します。
- ドロップダウンリストからCI/CDテンプレートを選択します。
- 変更を保存を選択します。


