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リソースの節約に不可欠です。

試してみる — GitLab CI Config Generator

フルツールを開く