GitLab CI/CDインスタンス設定
GitLab 管理者はインスタンスの GitLab CI/CD 設定を管理することができます。
新しいプロジェクトでGitLab CI/CDを無効にします。
GitLab CI/CDはインスタンス上のすべての新規プロジェクトでデフォルトで有効になっています。の設定を変更することで、新しいプロジェクトでCI/CDをデフォルトで無効にすることができます:
-
gitlab.yml
セルフコンパイルインストールの場合。 -
gitlab.rb
Linux パッケージインストール用。
すでにCI/CDが有効になっている既存のプロジェクトは変更されません。また、この設定はプロジェクトのデフォルトを変更するだけなので、プロジェクトのオーナーはプロジェクトの設定でCI/CDを有効にすることができます。
セルフコンパイルによるインストールの場合:
-
エディタで
gitlab.yml
を開き、builds
をfalse
に設定します:## Default project features settings default_projects_features: issues: true merge_requests: true wiki: true snippets: false builds: false
-
gitlab.yml
ファイルを保存してください。 -
GitLabを再起動します:
sudo service gitlab restart
Linuxパッケージ・インストールの場合:
-
/etc/gitlab/gitlab.rb
を編集し、次の行を追加してください:gitlab_rails['gitlab_default_projects_features_builds'] = false
-
/etc/gitlab/gitlab.rb
ファイルを保存してください。 -
GitLab を再設定します:
sudo gitlab-ctl reconfigure
needs
ジョブ制限の設定
needs
で定義できるジョブの最大数はデフォルトで50です。
GitLabRailsコンソールにアクセスできるGitLab管理者は、カスタム上限を選択できます。例えば、100
に制限を設定する場合:
Plan.default.actual_limits.update!(ci_needs_size_limit: 100)
有効非巡回グラフ(DAG)を無効にするには、制限値を0
に設定します。needs
を使うように設定されたジョブを持つパイプラインは、エラーjob can only need 0 others
を返します。
スケジュールされたパイプラインの最大頻度の変更
スケジュールされたパイプラインは、任意のcron値で設定できますが、スケジュールされたときに正確に実行されるとは限りません。_パイプラインスケジュールワーカーと_呼ばれる内部プロセスが、スケジュールされた全てのパイプラインをキューに入れますが、連続実行はしません。ワーカーは独自のスケジュールで実行され、開始準備が整ったスケジュール済みパイプラインは、ワーカーが次に実行された時にのみキューに入れられます。スケジュールされたパイプラインは、ワーカーよりも頻繁に実行することはできません。
パイプラインスケジュールワーカーのデフォルトの頻度は、3-59/10 * * * *
(0:03
,0:13
,0:23
,…から始まる10分ごと)です。GitLab.comのデフォルトの頻度は、GitLab.comの設定に記載されています。
パイプラインスケジュールワーカーの頻度を変更するには:
- インスタンスの
gitlab.rb
ファイルのgitlab_rails['pipeline_schedule_worker_cron']
の値を編集します。 - 変更を有効にするには、GitLabを再設定してください。
例えば、パイプラインの最大頻度を一日二回に設定するには、pipeline_schedule_worker_cron
を cron の値0 */12 * * *
(00:00
と12:00
を毎日) に設定します。