CI/CDワークフローの構築
プッシュやPull Requestを契機にコードを自動でビルド、テスト、デプロイする実践的なCI/CDパイプラインを作成します。
「CI/CDワークフローの構築」はCoddyKit上の無料Git & GitHub Professional Workflowレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGit & GitHub Professional Workflow学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Git & GitHub Professional Workflowコースには全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-actionCI/CDワークフローの確認
CI/CDパイプラインを導入する主なメリットは、次のうちどれでしょうか。
まとめ:CI/CDの構築
GitHub Actionsを使って、堅牢なCI/CDワークフローを構築する方法を学びました。
- CI/CDの定義と、現代の開発におけるメリットを確認しました。
- GitHub Actionsのワークフローに必要なYAML構造を学びました。
- プロジェクトのビルドとテストを自動化するCIワークフローを作成しました。
- タグをトリガーに自動デプロイするCDワークフローを設計しました。
自動化を続けて、より迅速かつ自信を持ってコードをリリースしましょう。
よくある質問
「CI/CDワークフローの構築」レッスンは無料ですか?
はい。「CI/CDワークフローの構築」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Git & GitHub Professional Workflowコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Git & GitHub Professional Workflowコースには全4レッスンが含まれています。
「CI/CDワークフローの構築」で何を学びますか?
プッシュやPull Requestを契機にコードを自動でビルド、テスト、デプロイする実践的なCI/CDパイプラインを作成します。 ブラウザで直接実行するハンズオンコードでGit & GitHub Professional Workflowを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Git & GitHub Professional Workflowを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのGit & GitHub Professional Workflowは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「CI/CDワークフローの構築」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このGit & GitHub Professional Workflowレッスンでコードを書いて実行できますか?
はい。すべてのGit & GitHub Professional Workflowレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。