GitLab CI/CD 変数定義と優先順位
GitLab CI/CD における変数の優先度について整理します。複数の場所で同じ変数が定義された場合、どの変数が優先されるのかを理解しておく必要があります。
変数の優先順位
GitLab CI/CD における変数の優先順位は、以下の通りです。
-
ジョブ定義:
.gitlab-ci.yml
ファイル内の個々のジョブで定義された変数が最も優先されます。 -
.gitlab-ci.yml 内のグローバル変数定義:
.gitlab-ci.yml
ファイルのグローバルセクションで定義された変数が次に優先されます。 - パイプライン実行時のWeb UI定義: パイプライン実行時にGitLab UIで設定された変数がその次に優先されます。
- プロジェクト設定: プロジェクトの設定で定義された変数が次に優先されます。
- グループレベル変数: グループ設定で定義された変数は、プロジェクト設定よりも優先されます。
- インスタンスレベル変数: GitLabインスタンス全体で定義された変数は、最も低い優先順位となります。
変数の種類
GitLab CI/CD では、以下の2種類の変数を定義できます。
- 変数: 文字列値を格納します。
- ファイル: ファイルの内容を格納し、ジョブ内でファイルとして利用できます。
定義済み変数
GitLab CI/CD には、ブランチ名やコミットSHAなど、多くの定義済み変数が用意されています。これらの変数を活用することで、パイプラインの自動化をより柔軟に行えます。
変数のスコープ
変数は、以下のスコープで定義できます。
- プロジェクトレベル: 特定のプロジェクトでのみ利用可能。
- グループレベル: グループ内のすべてのプロジェクトで利用可能。
- インスタンスレベル: GitLabインスタンス全体で利用可能。
まとめ
GitLab CI/CD の変数定義と優先順位を理解することで、より柔軟かつ安全なパイプラインを構築できます。機密情報は保護設定とマスク設定を適切に利用し、効率的な自動化を実現しましょう。