はじめに
ソフトウェア開発のプロジェクトで、アジャイル開発やDevOpsが採用され始めてからだいぶ日が経ちました。ウォータフォール型の開発手法が多く採用されていたころに比べ、1つ1つの開発やテスト工程は簡素化されましたが、開発からリリースまでを何度も繰り返すことになるなど、新たな課題に直面されている方も多いかと思います。
例えば、以下のようなお悩みはございませんか?
- テストを手作業で実施しており、見落としなどのヒューマンエラーが発生している
 - リリース作業を手作業でやっているため、リリースの度に時間やコストがかかってしまう
 - ソースコードとテスト・リリース履歴を別々に管理しており、ソフトウェア開発の進捗状況がわかりにくい 
 
今回は、上記のお悩みを解決するための方法の1つとして、GitLab CI/CDを使ったテスト・リリース作業の自動化についてご紹介します。
この記事を読むと、以下のことがわかります。
CI/CDとはなにか
最初に、今回取り上げる「CI/CDとは何か」についてご紹介します。
CI/CDは、どちらも開発~リリースまでの作業を自動化する仕組みを指しますが、本来の目的と対象とする工程が異なります。
- CI(Continuous Integration/継続的インテグレーション)
- 開発者がソースコードをリポジトリに登録した際に、自動でビルドやテストを行う仕組みです。
 - CIの目的は、開発中のソースコードにおいて競合や不具合を早期に発見し、修正することでソフトウェアの品質担保することす。
 - あらかじめ、ビルドやテストの内容を登録しておく必要があります。
 
 - CD(Continuous Deployment/継続的デプロイメント) 
- ソースコードのビルド・テストが完了した際に、自動でリリースを行う仕組みです。
 - CDの目的は、開発したソフトウェアのリリースを迅速化することです。
 - あらかじめ、リリースに使用する環境情報やコマンドを登録しておく必要があります。
 
 
GitLab CI/CDでできること・特長
CI/CD製品は多数ありますが、今回はGitLab CI/CDを取り上げたいと思います。
GitLab CI/CDはソフトウェア開発プラットフォームである「GitLab」に含まれる機能の1つであり、オープンソースエディションであるCommunity Editionでも利用することができます。
GitLabでは、CI/CD機能以外にもGitリポジトリのホスティング機能を兼ね備えています。そのため、ソースコードの管理からリリースまでを1つのプラットフォームに統合することができます。
さらに、ビルドやデプロイの進捗状況・結果が一目でわかるダッシュボードやレポート機能が提供されているため、開発・リリース状況を把握しやすいという利点もあります。
他にも、シンプルなYAMLファイルを使用することでビルド・デプロイのカスタマイズが用意であり、パイプラインスケジューラを使用した定期ジョブ実行も可能であるなど、利用者の多様な要件に答えられるだけの機能が充実しています。
まとめると、GitLab CI/CDでは以下のような特長があります。
- オープンソースのため、気軽に利用できる
 - ソースコード管理からリリースまでを1つのプラットフォームで管理できる
 - 開発・リリースの進捗がわかりやすい
 - ビルド・デプロイのカスタマイズ性が高い
 - スケジュール実行機能など、開発だけでなく運用の現場でも活用できる機能が多い
 
GitLab CI/CDを使用したテスト・リリースの自動化の始め方
今回は、GitLab CI/CDを使用した自動化の例として、「コードが変更された際に自動でテスト・リリース処理を行う設定」をご紹介します。
GitLab CI/CDを使い始めるには、2つのステップが必要となります。
1. 「.gitlab-ci.yml」の作成
GitLab CI/CDあらかじめ、「.gitlab-ci.yml」というファイルにビルド・テスト・デプロイのコマンドを定義しておく必要があります。 
「.gitlab-ci.yml」はリポジトリのルート直下に配置します。 
# .gitlab-ci.yml の例
# ビルド用のステージ 
build: 
  stage: build 
  # ビルドスクリプトを実行 
  script: 
    - # ここにビルドを実行するコマンドを追加する 
# テスト用のステージ 
test: 
  stage: test 
  # テストスクリプトを実行 
  script: 
    - # ここにテストを実行するコマンドを追加する 
# デプロイ用のステージ 
deploy: 
  stage: deploy 
  # デプロイスクリプトを実行 
  script: 
    - # ここにデプロイを実行するコマンドを追加する 
2. GitLab Runnerの設定
「.gitlab-ci.yml」に記載された処理は、GitLab Runnerというツールにより実行されます。 
自身のサーバにインストールする自己管理型のGitLabを使用する場合は、GitLabの公式ドキュメントを参考に、GitLab Runnerのインストール・設定が必要です。 
インストール・設定に問題なければ、Gitリポジトリに変更を加えた際に以下のようにパイプラインが実行されます。

最後に
エイムネクストではこれまで多数のお客様に対して、開発・運用プロセスの構築/改善を行ってきた実績がございます。 
ヒアリングを通じて、お客様のサービスに最適な開発・運用プロセスの設計・提案いたします。 
ご相談は無料となりますので、以下リンクよりお気軽にお問い合わせください。
エイムネクスト株式会社 サービス紹介 保守・運用のプロセスを再構築したい
他のブログ記事はこちら