0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

無料ユーザも使えます!GitLab 18.6 の CI/CD コンポーネントが自分自身のバージョン情報を参照できるようになった

0
Posted at

無料ユーザも使えます!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 をもっと活用してもらえると嬉しいです!


参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?