1
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?

CI / CD の CI(継続的インテグレーション)とは

Posted at

はじめに

CI( Continuous Integration:継続的インテグレーション)は、開発者がコードを頻繁にリポジトリに統合し、自動でビルドとテストを実行する開発手法です。

簡単に言うと、コードを変更したら自動でテストしてくれる仕組みです。

CI で何が解決できるの?

従来の開発では、こんな問題がありました。

  • 各開発者が長期間独立して作業すると、最後に統合するときにバグが大量発生
  • 手動テストは時間がかかるし、ミスも起きやすい
  • バグを見つけるのが遅れると、修正コストが膨大に...

CI はこれらの問題を解決します。

CI の仕組み

実際の CI の流れはこんな感じです。

  1. 開発者が Git などにコードをコミット( push )
  2. CI ツール( GitHub Actions、CircleCI など )が自動で検知
  3. 自動でビルド実行
  4. 自動でテスト実行
  5. 結果を開発者に通知( 成功 or 失敗 )

コミットするたびに自動テストが走るので、問題があればすぐに気づけます。

CI のメリット

🐛 バグの早期発見

コミットのたびにテストが実行されるため、バグが大きな問題になる前に発見できます。早く見つかれば修正も簡単です。

⚡ 開発スピードの向上

手動テストの手間が省けるので、開発者は実装に集中できます。また、問題の原因特定も容易になります。

🚫 ヒューマンエラーの削減

手作業でのビルドやテストを自動化することで、人的ミスを防げます。

🚀 リリース頻度の向上

常にテストが通っている状態を保つことで、いつでもリリース可能な状態を維持できます。

CD との違い

CI とセットでよく聞く「 CD 」についても簡単に説明します。

  • CI( 継続的インテグレーション ): ビルド+テストの自動化
  • CD( 継続的デリバリー ): デプロイまでの自動化

この 2 つを合わせて「 CI / CD 」と呼び、コードの変更からリリースまでの全プロセスを自動化します。

代表的な CI ツール

GitHub Actions

GitHub と統合されているので、GitHub を使っているなら導入が簡単です。

name: CI
on:
  push:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Run tests
        run: npm test

CircleCI

Web アプリやモバイルアプリ開発で広く使われています。無料プランから始められます。

Jenkins

最も有名な CI ツールの一つ。1,500 以上のプラグインでカスタマイズ性が高いです。

その他

Travis CI、GitLab CI / CD、AWS CodePipeline など、多くの選択肢があります。

実際の開発フロー例

Git - flow を使った開発での CI の使い方を見てみましょう。

  1. developブランチからfeatureブランチを作成
  2. featureブランチで機能を実装
  3. コードを push するとCIが自動でテスト実行
  4. テストが通ったら、プルリクエストを作成
  5. レビュー後、developブランチにマージ

このフローにより、developブランチには常に正しいコードだけが入るようになります。

CI を始めるには

CI の導入は段階的に進めましょう。

  1. CIツールを選ぶ: プロジェクトに合ったツールを選択
  2. リポジトリに設定: ワークフローファイルを作成
  3. 自動テストを書く: ユニットテストから始めてOK
  4. チームで規律を守る: ビルドが失敗したらすぐ修正する文化を作る

重要なポイント

CI は単なるツールではなく、チーム全体で守るべき開発プラクティスです。

  • 1 日 1 回以上、こまめにコミット
  • ビルドが失敗したらすぐに修正
  • コミット前にローカルでテストを実行
  • テストは常に最新の状態に保つ

まとめ

  • CI はコード変更を自動でテストする仕組み
  • バグの早期発見、開発スピード向上、ヒューマンエラー削減が実現できる
  • GitHub Actions、CircleCI、Jenkins などのツールで実現
  • チーム全体で規律を守ることが成功の鍵

現代の開発では必須の手法なので、まずは小さく始めて徐々に自動化の範囲を広げていきましょう!

1
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
1
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?