GitLab CIルールによる条件付きジョブ実行
条件付きジョブ実行のためのGitLab CIルールをマスター。if条件、changes、exists、変数を使用してパイプラインでのジョブ実行を制御。
Pipeline Architecture
詳細な説明
GitLab CIの条件付きルール
ルールは古いonly/exceptキーワードに代わるもので、ジョブがパイプラインに含まれるタイミングの精密な制御を提供します。
ブランチベースのルール
deploy_staging:
stage: deploy
script: make deploy-staging
rules:
- if: '$CI_COMMIT_BRANCH == "develop"'
deploy_production:
stage: deploy
script: make deploy-production
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
when: manual
マージリクエストルール
review:
stage: test
script: make lint
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
ルール評価順序
ルールは上から下へ評価されます。最初に一致するルールがジョブの動作を決定します。ルールが一致しない場合、ジョブはパイプラインから除外されます。
よくある落とし穴
最後に- when: neverまたは- when: on_successのキャッチオールがないと、ルールが一致しない場合にジョブが除外されます。
ユースケース
ブランチ、タグ、マージリクエスト、ファイル変更に基づいて異なる動作が必要なパイプラインにルールを使用します。デプロイ戦略の実装とCIリソースの節約に不可欠です。