公開:2023年7月10日
9分で読めます
CI/CDコンポーネントをパイプラインで活用する主なメリットと実践方法をご紹介します。再利用性の向上、柔軟な入力パラメーター、テストによる品質確保など、パイプライン設定を効率化するポイントを詳しく解説します。近日公開のCI/CDカタログもお見逃しなく。

GitLabのCI/CDコンポーネントシリーズ、第3回へようこそ!まだお読みでない方は、ぜひ「再利用可能なCI/CDテンプレートの作成方法」と「インクルード可能なファイルでの入力値の活用」もご一読ください。これら新機能の全体像をより深く理解できます。本記事では、GitLabのCI/CDコンポーネントがCIパイプラインをどのように革新するかを詳しくご説明します。また、コンポーネントのコレクションを収録したフレームワーク「CI/CDカタログ」の近日公開予定についても触れます。GitLabはこれらの取り組みを通じて、パイプライン設定の効率化と再利用性の向上に向けた大きな一歩を踏み出しています。
GitLab 16.1では、CI/CDコンポーネントという注目の実験的機能が導入されました。CI/CDコンポーネントとは、パイプライン設定の単位を抽象化した、再利用可能な単一目的のビルディングブロックです。
CI/CDコンポーネントを活用することで、いくつかの重要なメリットが得られます。
前回までのブログ記事では、最初の2点(CI/CDテンプレートでも利用可能な機能)の主なメリットについて説明しました。今回はコンポーネントをさらに深く掘り下げ、パイプラインの構築方法をどのように革新できるかを探ります。
ソフトウェア開発が進化し続ける中、コードコンポーネントの信頼性と品質を確保することはますます重要になっています。
コンポーネントを活用する主なメリットの1つは、ソフトウェアの正式リリース前にコンポーネントを徹底的にテストできることです。これにより、より堅牢で効率的な開発プロセスが実現します。コンテキスト内では、リリース済みコンポーネントはバージョン管理され、構造化された構文に従うため、パイプライン内でシームレスに統合できます。
include:
- components: /path/to/project@<version>
CI/CDコンポーネントのユニークなメリットの1つは、その柔軟性です。DevSecOpsチームは@commit_SHAを付加することで「非公式」リリースを選択し、正式リリース前にコードの実験や反復を行うことができます。
include:
- components: /path/to/project@<commit_SHA>
コンポーネントを正式リリースにするには、タグを付けてバージョン管理されたスナップショットを作成する必要があります。タグ付きリリースは包括的なCI/CDカタログ(近日公開)に掲載され、十分なテストと承認を経たコンポーネントに簡単にアクセスできるようになります。CI/CDコンポーネントの安定性と信頼性を確保するためには、徹底的なテストが不可欠です。DevSecOpsチームはcommit_SHAを活用してパイプラインで包括的なテストを実行できます。パイプラインがすべてのテストに合格したら、コンポーネントにタグを付けてリリース準備が整ったことを示します。
タグ付きバージョンに基づくリリースジョブを設定することで、DevSecOpsチームはテストと検証を経た公式コンポーネントをプロジェクトに安心して組み込めます。コンポーネントのテスト方法について詳しくは、ドキュメントをご覧いただくか、以下のウォークスルー動画をご視聴ください。
前のセクションで述べたように、DevSecOpsチームは@versionや@commit_SHAを使用してパイプライン内のコンポーネントを参照できます。また、@latestを活用する方法もあります。
include:
- components: /path/to/project@latest
これにより、最新の公式(タグ付き)コンポーネントが使用されます。信頼性の高いテストと組み合わせてパイプラインで使用することで、パイプライン内のコンポーネントが常にテスト済みかつ検証済みであることを保証できます。
コンポーネントを活用する最大のメリットの1つは、CI/CDカタログの公開とともに実現します。カタログにより、ユーザーは組織全体で利用可能なコンポーネントを検索・発見し、使用方法を確認できるようになります。また、パイプラインの構成要素を共同で進化・改善するためのフレームワークも提供されます。続報をお待ちください!
GitLabでは、自社製品のドッグフーディングを大切にしています。CI/CDコンポーネントの実用性と有効性を実証するため、GitLabのテンプレートの一部をコンポーネントに変換し、社内チームに使用とフィードバックの提供を依頼しました。これにより、実際のシナリオでコンポーネントを積極的に活用・テストし、インサイトを得て機能を継続的に改善しています。このグループでは、Code Quality、Container Scanning、SASTのテンプレートをCI/CDコンポーネントに変換し、社内チームに利用を依頼しました。
このドッグフーディングプロセスを通じて、CI/CDコンポーネントの有効性を検証するだけでなく、提供内容を改善・強化するための貴重な経験とフィードバックを得ています。これは、ユーザーに実用的で信頼性の高いソリューションを提供するというGitLabのコミットメントの表れです。社内チーム間の継続的な議論はこちらのIssueでご確認いただけます。
CI/CDコンポーネントカタログは現在実験的な段階にあるため、本番環境での使用はお控えください。仕様変更の可能性が高い状況です。現在、CI/CDカタログの公開に向けてコンポーネントのフォルダー構造の再編成を進めています。進捗状況はEpicでご確認いただけます。また、専用のフィードバックIssueでご意見をお聞かせください。
GitLabのCI/CDコンポーネントカタログとCI/CDコンポーネント機能は、効率的なパイプライン設定の新時代を切り開いています。再利用性、抽象化、柔軟な入力、バージョン管理、そして一元化されたカタログを活用することで、開発者は効率的で適応性が高く、メンテナンスしやすいCI/CDワークフローを構築できます。CI/CDコンポーネントカタログは、チームがソフトウェアデリバリーを加速し、効果的に連携し、GitLabのCI/CD機能の可能性を最大限に引き出すことを支援します。
CI/CDカタログの公開をお楽しみに。豊富なコンポーネントコレクションへのアクセスが可能となり、パイプラインの新たな可能性が広がります。GitLabは引き続き、最先端のツールで開発者を支援し、イノベーションを推進し、現代のソフトウェア開発の複雑さを解消することに注力してまいります。
CI/CDカタログとコンポーネントについてさらに詳しく:
カバー画像:Alexander Grey on Pexels
このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成してあなたの声を届けましょう。
フィードバックを共有する