無料ユーザも使えます!GitLab 18.6 の CI/CD コンポーネントが自分自身のバージョン情報を参照できるようになった
はじめに
2025年11月20日にリリースされた GitLab 18.6 には、無料プランのユーザにも使える便利な新機能が含まれています。
本記事では、その中でも CI/CD パイプラインをより堅牢に・メンテナブルにする
「CI/CD Components can reference their own metadata」
にフォーカスして、わかりやすく解説します。
対象バージョン・プラン
| 項目 | 内容 |
|---|---|
| バージョン | GitLab 18.6 (2025年11月20日リリース) |
| 対応プラン | Free / Premium / Ultimate(全プラン対応) |
| 対応環境 | GitLab.com / GitLab Self-Managed / GitLab Dedicated |
無料プランでも使えます!
背景:これまでの課題
GitLab の CI/CD コンポーネントとは、パイプライン設定を再利用可能な部品(コンポーネント)として切り出す仕組みです。
これまで、コンポーネントは 自分自身のバージョン番号などのメタ情報を、設定内から参照することができませんでした。
そのため、たとえば「コンポーネントのリリース時に、そのバージョンと一致した Docker イメージをビルドしてタグ付けしたい」という場合に、こんな問題が発生していました。
- バージョン番号をハードコーディングしなければならない
- 複雑な回避策が必要
- コンポーネントのバージョンとビルド成果物のタグがズレてしまう(バージョン不整合)
GitLab 18.6 での解決策:spec:component キーワード
GitLab 18.6 では、spec:component キーワードが導入され、コンポーネントが自分自身のメタ情報にアクセスできるようになりました。
これは CI/CD の設定式(Configuration Expression) の新しいコンテキストとして実装されており、$[[ component.FIELD_NAME ]] という構文で参照します。
設定式の種類(GitLab 18.6 時点)
$[[ ]] 構文を使ったコンパイル時評価の設定式には、現在3つのコンテキストがあります。
| コンテキスト | 構文 | 用途 |
|---|---|---|
| inputs | $[[ inputs.INPUT_NAME ]] |
CI/CD の入力値を参照 |
| matrix | $[[ matrix.IDENTIFIER ]] |
parallel:matrix の識別子を参照(18.6 Beta) |
| component | $[[ component.FIELD_NAME ]] |
コンポーネント自身のメタ情報を参照(18.6 Beta) |
本記事では component コンテキストを詳しく見ていきます。
使い方
基本構文
コンポーネントのテンプレートファイル内で、まず spec:component に参照したいフィールドを宣言します。その後、$[[ component.FIELD_NAME ]] で参照できます。
spec:
component: [name, version]
inputs:
stage:
default: build
---
build-job:
stage: $[[ inputs.stage ]]
image: registry.example.com/$[[ component.name ]]:$[[ component.version ]]
script:
- echo "Building with component version $[[ component.version ]]"
参照できるフィールド
-
component.name:コンポーネント名 -
component.version:コンポーネントのバージョン
具体的なユースケース
バージョンと一致した Docker イメージをビルドする
コンポーネントを v1.2.0 としてリリースするとき、同じバージョンタグで Docker イメージをビルド・プッシュしたい場面です。
従来はバージョンをハードコーディングするか、外部から渡す必要がありましたが、18.6 からは以下のように書けます。
spec:
component: [name, version]
---
build-and-push:
stage: build
script:
- docker build -t registry.example.com/$[[ component.name ]]:$[[ component.version ]] .
- docker push registry.example.com/$[[ component.name ]]:$[[ component.version ]]
コンポーネントのバージョンと Docker イメージのタグが 常に自動で一致するため、手動管理が不要になります。
注意点:Beta 機能について
GitLab 18.6 時点では、component コンテキストは Beta 機能として提供されています。
ただし、GitLab 18.7 で正式リリース(GA) となり、機能フラグ ci_component_context_interpolation も削除されています。GitLab.com をお使いの場合はすでに安定版として利用可能です。
Self-Managed 環境をお使いの場合は、GitLab のバージョンを確認してください。
- GitLab 18.6 :Beta(機能フラグ有効時に利用可能)
- GitLab 18.7 以降 :GA(標準で利用可能)
まとめ
GitLab 18.6 で導入された spec:component キーワードにより、CI/CD コンポーネントが 自分自身のメタ情報(名前・バージョン)を動的に参照できるようになりました。
これにより、
- バージョンのハードコーディングが不要になる
- コンポーネントのリリースと成果物のバージョンが自動的に一致する
- パイプラインの管理コストが下がる
といったメリットが得られます。
Free プランでも使えるので、CI/CD コンポーネントを活用している方はぜひ試してみてください。
GitLab の CI/CD は非常に多機能で、使いこなすほどチームの生産性が上がります。本記事をきっかけに、GitLab をもっと活用してもらえると嬉しいです!