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?

CI/CD(継続的インテグレーション / 継続的デリバリー)【初心者向け】

Posted at

継続的インテグレーション(CI)

開発者が頻繁にコードをリポジトリに統合(マージ)し、そのたびに自動でビルドおよびテストを行うプロセス。

メリット

  • 早期のバグ検出と修正
  • 一貫性のあるビルドプロセス
  • 新機能の迅速な統合

継続的デリバリー(CD)

コードを自動的にテスト環境やステージング環境にデプロイし、本番環境へのデプロイを手動で承認するプロセスです。

メリット

  • ステージング環境での準備が整ったコードを迅速に本番環境にリリースできる準備が整う
  • 自動化されたデプロイメントにより、人為的ミスが減少する
  • デプロイプロセスの自動化により手動作業が削減される

CI/CDのワークフロー

コードのコミット:
開発者が変更をローカルリポジトリにコミット。
ビルドプロセスのトリガー:
コードがリポジトリにプッシュされると、CIツールがビルドプロセスを開始。
自動テスト:
単体テスト、統合テストが自動で実行。
デプロイ:
テストに合格したビルドがステージング環境、本番環境に自動でデプロイ。

GitHub Actionsを使ったCI/CD

1.リポジトリのセットアップ:

  • GitHubでリポジトリを作成。

2.ワークフローファイルの作成:

  • .github/workflows/ci.ymlという名前でワークフローファイルを作成。
name: CI

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'
    - name: Install dependencies
      run: npm install
    - name: Run tests
      run: npm test

name: ワークフローの名前を指定します。
ここでは「CI」として、継続的インテグレーション(CI)プロセスであることを示しています。

on: ワークフローがトリガーされるイベントを指定します。

push: コードがリポジトリにプッシュされたときにこのワークフローが実行されます。

pull_request: プルリクエストが作成または更新されたときにもこのワークフローが実行されます。

jobs: ワークフロー内で実行するジョブを定義します。
ここでは「build」という名前のジョブを設定しています。

runs-on: ジョブが実行される環境を指定します。
ここでは「ubuntu-latest」、つまり最新のUbuntuの環境で実行されることを意味します。

steps: ジョブ内で実行されるステップのリストです。
ここでは一連のステップが定義されています。

uses: GitHub Actionsのアクションを利用して特定の操作を実行します。
ここでは actions/checkout@v2 を使用して、リポジトリのコードをクローン(チェックアウト)しています。

name: ステップの名前を指定します。
「Set up Node.js」という名前がついています。

uses: actions/setup-node@v2 アクションを使用してNode.jsの設定を行います。

with: アクションに渡すパラメーターです。
ここでは node-version: '14' によってNode.jsのバージョン14を指定しています。

name: ステップの名前を指定します。
「Install dependencies」という名前がついています。

run: 指定したコマンドを実行します。
ここでは npm install コマンドが実行され、プロジェクトの依存関係がインストールされます。

name: ステップの名前を指定します。
「Run tests」という名前がついています。

run: 指定したコマンドを実行します。
ここでは npm test コマンドが実行され、プロジェクトのテストが実行されます。

3.パイプラインの実行:

  • コードをプッシュすると、ワークフローが自動で実行され、ビルドおよびテストが行われる。

まとめ

CI/CDは、コードの変更を自動的にビルド、テスト、デプロイするプロセスです。
継続的インテグレーション(CI)はコードの統合を頻繁に行い、継続的デプロイメント(CD)は変更を自動的に本番環境にリリースします。
これにより、開発の効率と品質が向上します。

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?