公開:2025年4月25日
1分で読めます
この初心者向けガイドでは、継続的インテグレーション(CI)/継続的デリバリー(CD)の基本(CI/CDコンポーネントの概要や作成方法など)を解説します。
すべてのコード変更が自動的にビルドおよびテストされ、そのうえでユーザーにデプロイされる。そんなワークフローを想像してみてください。それを可能にするのが、継続的インテグレーション/継続的デリバリー(CI/CD)です。CI/CDは、バグの早期発見、コード品質の確保、および迅速かつ頻繁なソフトウェアデリバリーの実現に役立ちます。
GitLab CI/CDは、GitLabに組み込まれた強力な統合システムです。これを利用することで、ソフトウェア開発ライフサイクル全体をシームレスに自動化できます。GitLab CI/CDによって、以下のことを実現できます。
.gitlab-ci.yml
:プロジェクトのルートディレクトリにあるYAMLファイルです。ステージやジョブ、Runnerなど、CI/CDパイプラインの構成を定義します。GitLab CIは簡単に使い始められます。以下は.gitlab-ci.yml
ファイルの基本的な設定例です。
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "アプリケーションをビルド中..."
test_job:
stage: test
script:
- echo "テストを実行中..."
deploy_job:
stage: deploy
script:
- echo "本番環境へデプロイ中..."
environment:
name: production
この設定では、「build」「test」「deploy」の3つのステージを定義しています。それぞれのステージには、単純なスクリプトを実行するジョブが含まれています。
次に、より実践的な例をいくつか見てみましょう。
Node.jsアプリケーションのビルドとデプロイ
以下のパイプライン定義では、npmを使用してNode.jsアプリケーションのビルドおよびテストを行い、dplを用いてアプリケーションをHerokuにデプロイする方法を説明しています。パイプラインのdeployステージでは、GitLab CI/CD変数を使用しています。デベロッパーは機密情報(認証情報など)をこの変数に格納して、CI/CDプロセスで安全に使用できます。この例では、Herokuにデプロイする際にdplツールが使用するAPIキーが、$HEROKU_API_KEY
という名前の変数キーに格納されます。
stages:
- build
- test
- deploy
build:
stage: build
image: node:latest
script:
- npm install
- npm run build
test:
stage: test
image: node:latest
script:
- npm run test
deploy:
stage: deploy
image: ruby:latest
script:
- gem install dpl
- dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY
異なる環境へのデプロイ(stagingステージや本番環境)
GitLabではさらに、CI/CDを使用した環境という機能もご用意しています。この機能を使用すると、CI/CDから対象のインフラストラクチャへのデプロイを追跡できます。以下の例では、パイプラインにおいてstagingステージと本番環境の環境プロパティを持つステージが追加されます。deploy_stagingステージでは必ず指定したスクリプトが実行される一方、deploy_productionステージでは手動による承認が必要となります。これは誤って本番環境へのデプロイが行われるのを防ぐためです。
stages:
- build
- test
- deploy_staging
- deploy_production
build:
# ...
test:
# ...
deploy_staging:
stage: deploy_staging
script:
- echo "stagingステージへのデプロイ中..."
environment:
name: staging
deploy_production:
stage: deploy_production
script:
- echo "本番環境へのデプロイ中..."
environment:
name: production
when: manual # 手動による承認が必要
GitLab Auto DevOpsは、アプリケーションを自動的にビルド、テスト、デプロイするためのあらかじめ定義された設定を提供することで、CI/CDを簡素化します。ベストプラクティスと業界標準に基づいてワークフローを効率化する仕組みです。
Auto DevOpsを有効にする方法:
Auto DevOpsを有効にすると、プロジェクトの言語とフレームワークが自動的に検出され、必要なビルド、テスト、デプロイのステージが設定されます。そのため、.gitlab-ci.yml
ファイルを作成する必要すらありません。
CI/CDカタログには、CI/CDワークフローを拡張するために使用可能な、公開済みのCI/CDコンポーネントをまとめたプロジェクトが一覧で記載されています。誰でもコンポーネント用のプロジェクトを作成してCI/CDカタログに追加したり、既存プロジェクトへのコントリビュートを通じて公開コンポーネントを改善したりできます。これらのコンポーネントは、GitLab.comのCI/CDカタログに掲載されています。
さらに、独自のCIテンプレートを作成して、複数のプロジェクトに対するCI/CDの設定を標準化し、再利用することもできます。これにより、一貫性が高まり、重複が生じにくくなります。
CIテンプレートの作成方法:
.gitlab-ci.yml
ファイルを作成します。.gitlab-ci.yml
ファイルで、include
キーワードを使用してテンプレートをインクルードします。GitLab CI/CDは、開発ワークフローに変革をもたらせる強力なツールです。CI/CDの概念を理解して、パイプラインを設定し、Auto DevOpsやCI/CDカタログ、CIテンプレートなどの機能を活用すれば、ソフトウェア開発ライフサイクル全体を自動化し、高品質なソフトウェアをより迅速かつ効率的に提供できます。
さらに詳しく知りたい場合は、GitLab Universityのコースに登録するか、GitLab Ultimateの60日間無料トライアルを今すぐお試しください。
「GitLab入門」シリーズのその他の記事もぜひご覧ください。