GitLab CI/CDインスタンス設定

GitLab 管理者はインスタンスの GitLab CI/CD 設定を管理することができます。

新しいプロジェクトでGitLab CI/CDを無効にします。

GitLab CI/CDはインスタンス上のすべての新規プロジェクトでデフォルトで有効になっています。の設定を変更することで、新しいプロジェクトでCI/CDをデフォルトで無効にすることができます:

  • gitlab.yml セルフコンパイルインストールの場合。
  • gitlab.rb Linux パッケージインストール用。

すでにCI/CDが有効になっている既存のプロジェクトは変更されません。また、この設定はプロジェクトのデフォルトを変更するだけなので、プロジェクトのオーナーはプロジェクトの設定でCI/CDを有効にすることができます

セルフコンパイルによるインストールの場合:

  1. エディタでgitlab.yml を開き、buildsfalse に設定します:

    ## Default project features settings
    default_projects_features:
      issues: true
      merge_requests: true
      wiki: true
      snippets: false
      builds: false
    
  2. gitlab.yml ファイルを保存してください。

  3. GitLabを再起動します:

    sudo service gitlab restart
    

Linuxパッケージ・インストールの場合:

  1. /etc/gitlab/gitlab.rb を編集し、次の行を追加してください:

    gitlab_rails['gitlab_default_projects_features_builds'] = false
    
  2. /etc/gitlab/gitlab.rb ファイルを保存してください。

  3. 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の設定に記載されています。

パイプラインスケジュールワーカーの頻度を変更するには:

  1. インスタンスのgitlab.rb ファイルのgitlab_rails['pipeline_schedule_worker_cron'] の値を編集します。
  2. 変更を有効にするには、GitLabを再設定してください。

例えば、パイプラインの最大頻度を一日二回に設定するには、pipeline_schedule_worker_cron を cron の値0 */12 * * * (00:0012:00 を毎日) に設定します。