0Pricing
DevOps Bootcamp · レッスン

CI/CDワークフローの構築

プッシュやPull Requestを契機にコードを自動でビルド、テスト、デプロイする実践的なCI/CDパイプラインを作成します。

「CI/CDワークフローの構築」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

CI/CD入門

このレッスンでは、GitHub Actionsを使って強力な継続的インテグレーション(CI)と継続的デプロイ(CD)のパイプラインを構築する方法を学びます。

CI/CDは、コードの変更からデプロイまでのソフトウェア開発プロセスを自動化し、より迅速で信頼性の高いものにします。

CI/CDが重要な理由

現代のソフトウェア開発で、自動化が非常に重要なのはなぜでしょうか。

  • 迅速なフィードバック:テストを自動実行して、バグや統合時の問題を早期に発見できます。
  • 一貫したビルド:すべてのビルドで同じ手順を実行し、「自分の環境では動くのに」という問題を減らせます。
  • 信頼性の高いリリース:手作業によるミスを減らし、自信を持って新機能や修正をデプロイできます。
  • コラボレーションの向上:チームが変更を頻繁かつスムーズに統合でき、マージの競合を最小限に抑えられます。

GitHub Actions:基本概念

GitHub Actionsでは、YAMLファイルでワークフローを定義します。これらのファイルは、リポジトリ内の特別なディレクトリである.github/workflows/に配置します。

ワークフローでは一連のジョブを定義し、各ジョブにはコマンドを実行したり、事前に作成されたアクションを使用したりするステップが含まれます。これによって、GitHubに実行内容を指示します。

最初のCIワークフローを構築する

リポジトリへのすべてのpushをトリガーにする、基本的なCIワークフローを作成しましょう。Node.jsをセットアップし、プロジェクトのビルドプロセスをシミュレートします。

次の内容をリポジトリ内の.github/workflows/ci.ymlとして保存します。

name: Node.js CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '18'
      - name: Install dependencies
        run: npm install
      - name: Build project
        run: node build.js

ビルドスクリプトをシミュレートする

ワークフロー内のnode build.jsコマンドは、次のようなスクリプトを実行します。このスクリプトは、アプリケーションのコードをコンパイル、バンドル、または準備する処理をシミュレートします。

実行して出力を確認してみましょう。

console.log("Starting project build...");
console.log("  - Compiling source files...");
console.log("  - Bundling assets for deployment...");
console.log("Build process finished successfully!");

自動テストを追加する

CIで重要なのが、自動テストの実行です。依存関係をインストールした後にテストステップを実行するよう、ワークフローを拡張しましょう。テストに失敗するとワークフローも失敗するため、問題のあるコードが先に進むのを防げます。

次のようなtestステップを追加します。

name: Node.js CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '18'
      - name: Install dependencies
        run: npm install
      - name: Run tests
        run: node test.js
      - name: Build project
        run: node build.js

テストスクリプトをシミュレートする

これは、ワークフローで実行する簡単なtest.jsスクリプトの例です。実際のプロジェクトでは、JestやMochaなどのテストフレームワークを使いますが、ここではテストを実行する基本的な仕組みを示します。

実行して、シミュレートされたテスト結果を確認しましょう。

console.log("Running automated tests...");
const allTestsPass = Math.random() > 0.1; // Simulate 90% chance of passing

if (allTestsPass) {
  console.log("All 12 tests passed successfully!");
} else {
  console.error("Tests failed! Please fix the errors.");
  process.exit(1); // Exit with a non-zero code to indicate failure
}

継続的デプロイ(CD)の概要

CIがビルドとテストに重点を置くのに対し、継続的デプロイ(CD)では、すべてのCIチェックに合格した後、アプリケーションをサーバーやクラウドサービスへ自動的にデプロイします。

CDの一般的なトリガーには次のようなものがあります。

  • 新しいGitタグの作成(例:v1.0.0)
  • 特定のブランチへのプッシュ(例:mainやproduction)
  • GitHub Releaseの作成

シンプルなCDワークフロー

これは、新しいGitタグをトリガーにし、デプロイのモックステップを含むワークフローです。実際には、このステップでホスティングプロバイダー(例:AWS、Azure、Heroku)と連携します。

次の内容を.github/workflows/cd.ymlとして保存します。

name: Deploy to Production

on:
  push:
    tags:
      - 'v*.*.*' # Triggers on tags like v1.0.0, v1.2.3

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Simulate deployment
        run: |
          echo "Deploying application to production server..."
          echo "Version: ${{ github.ref_name }}"
          echo "Deployment complete!"
          # In a real scenario, you'd use a deployment action here
          # e.g., aws-actions/configure-aws-credentials, appleboy/ssh-action

CI/CDワークフローの確認

CI/CDパイプラインを導入する主なメリットは、次のうちどれでしょうか。

まとめ:CI/CDの構築

GitHub Actionsを使って、堅牢なCI/CDワークフローを構築する方法を学びました。

  • CI/CDの定義と、現代の開発におけるメリットを確認しました。
  • GitHub Actionsのワークフローに必要なYAML構造を学びました。
  • プロジェクトのビルドとテストを自動化するCIワークフローを作成しました。
  • タグをトリガーに自動デプロイするCDワークフローを設計しました。

自動化を続けて、より迅速かつ自信を持ってコードをリリースしましょう。

よくある質問

「CI/CDワークフローの構築」レッスンは無料ですか?

はい。「CI/CDワークフローの構築」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「CI/CDワークフローの構築」で何を学びますか?

プッシュやPull Requestを契機にコードを自動でビルド、テスト、デプロイする実践的なCI/CDパイプラインを作成します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「CI/CDワークフローの構築」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. GitHub Actions入門
  2. CI/CDワークフローの構築
  3. カスタムActionsとMarketplace
  4. Actions の Secrets と環境変数
← DevOps Bootcampに戻る