コディックコミュニティで 先日、自動デプロイを素早く簡単に実装する方法について説明しました。魔法や難しい用語を使わずに、一晩で CI/CD を実装するための簡単なガイドをご紹介します。これまでに聞いたことがあるだけでも 👀
🔧 CI/CDとは何ですか?
CI (継続的インテグレーション)—コミットごとにコードを自動的にビルドしてテストします。
CD (継続的デリバリーまたはデプロイメント)は、すべてのチェックが完了した後、サーバーに更新を自動的に公開します。
これらを組み合わせることで、プッシュ通知の直後に機能を「注ぎ込む」ことができます。プロダクトに手間をかける必要はありません🔥
📦 自動デプロイの最小スタック
💻 GitHub(またはGitLab、Bitbucket)
🛠️ CI/CDシステム:GitHub Actions/GitLab CI/Drone CI/Jenkins
📂 SSHアクセスを備えたサーバー(Ubuntu VPSなど)
⚙️ DockerまたはNode/PM2のいずれか
🪄 仕組み:ステップバイステップ
コードをリポジトリにプッシュする
GitHub Actions(または他のCI)がトリガーされます
コードをコンパイルし、テストを実行します
すべて問題なければ、サーバーにデプロイされます
👨🍳例:GitHub Actionsを使用したNode.jsアプリケーションのデプロイ
プロジェクトのルートに、.github/workflows/deploy.ymlファイルを作成します。
name: 🚀 Deploy to Server
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
- name: Deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_KEY }}
script: |
cd ~/app-folder
git pull origin main
npm ci
pm2 restart app🔐 すべてのシークレット(SSHキー、ログイン、IP)は、GitHub Secretsを介して追加されます。これにより、安全性が向上します。
⚡ 最終的に何が起こるでしょうか?
コードをプッシュするたびに、自動的に次のことが行われます。
収集中
テスト中
サーバーにロールアウト
しかも、手動操作は一切不要です 🤯
📌 実務家からのアドバイス
mainにアップロードする前にテストするために、個別のブランチstagingを設定しますWebhookを介してTelegramまたはSlackに通知を追加する
パイプラインを徐々に拡大:リント、マイグレーション、アラート
🧠 結論
CI/CDは「複雑すぎる」というものではありません。一度設定すれば、後は気にせずに済みます。そして何よりも、これはすでに業界標準です。人気のある開発者になりたいのであれば、自動化は必須です。
🤖どこで練習できますか?
B コディックアプリ GitとCI/CDを学ぶだけでなく、自動デプロイで実際のプロジェクトを実行することもできます。すべてがインタラクティブで、ステップバイステップで、フィードバック付きです💬
また、当社には Telegramコミュニティ、質問をしたり、パイプラインについて話し合ったり、ペットプロジェクトのチームを見つけたりすることができます。
💬 DockerコンテナのデプロイやPythonのCI設定についてのガイドが必要かどうかをコメント欄に書いてください。話し合って実行しましょう!😉
