正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

CI/CD式

CI/CD式を使用すると、特殊なコンテキストで変数と入力を参照することにより、CI/CDパイプラインで動的な設定が有効になります。パイプラインの作成前に、GitLabはパイプライン設定内の式を評価します。

Configuration式

Configuration式は、$[[ ]]構文を使用し、パイプラインの作成時(コンパイル時)に評価されます。これによって、さまざまなコンテキストに基づいて動的な設定が可能になります。

すべての設定式は、以下の特性を共有しています:

  • コンパイル時評価: 値は、ジョブの実行中ではなく、パイプライン設定が作成されるときに解決されます。多数の式を使用すると、パイプラインの作成時間が長くなる可能性がありますが、ジョブの実行時間には影響しません。
  • 静的解決: 動的ロジックを実行したり、ランタイムジョブの状態にアクセスしたりすることはできません。

Configuration式は、値にアクセスするためのさまざまなコンテキストをサポートしています:

コンテキスト構文利用可否設定目的
入力コンテキスト$[[ inputs.INPUT_NAME ]]GitLab 17.0再利用可能な設定でCI/CDの入力機能を参照してください。
マトリックスコンテキスト$[[ matrix.IDENTIFIER ]]GitLab 18.6 (ベータ)ジョブの依存関係にあるparallel:matrix識別子を参照します。

入力コンテキスト

inputs.コンテキストを使用して、$[[ inputs.INPUT_NAME ]]構文を使用して、再利用可能な設定でGitLab CI/CDの入力機能を参照します。

例:

spec:
  inputs:
    environment:
      default: production
    job-stage:
      default: test
---
scan-website:
  stage: $[[ inputs.job-stage ]]
  script: ./scan-website $[[ inputs.environment ]]

input.式には、次の特性があります:

  • 型の検証: 検証を備えたstringnumberboolean、およびarray型をサポートします。入力検証は、無効な値でのパイプラインの作成を防ぎます。
  • 関数のサポート: expand_varstruncateのような定義済みの関数は値を操作できます。
  • スコープ: 定義されたファイルで使用可能であるか、include:inputsで明示的に渡されます。

マトリックスコンテキスト

matrix.コンテキストを使用して、$[[ matrix.IDENTIFIER ]]構文を使用してparallel:matrix値を参照します。ジョブの依存関係で使用して、parallel:matrixジョブ間の動的な1対1マッピングを有効にします。

例:

.os-arch-matrix:
  parallel:
    matrix:
      - OS: [ubuntu, alpine]
        ARCH: [amd64, arm64]

build:
  script: echo "Testing $OS on $ARCH"
  parallel: !reference [.os-arch-matrix, parallel]

test:
  script: echo "Testing $OS on $ARCH"
  parallel: !reference [.os-arch-matrix, parallel]
  needs:
    - job: build
      parallel:
        matrix:
          - OS: ['$[[ matrix.OS ]]']
            ARCH: ['$[[ matrix.ARCH ]]']

matrix.式には、次の特性があります:

  • ジョブレベルのparallel:matrixにスコープされます: 現在のジョブの値のみを参照できます。
  • 自動マッピング: ステージ間でマトリックスジョブ間に1対1の依存関係を作成します