お問い合わせ
  • Tech

CI/CDを使い、AI時代の人間の仕事「確認する」の精度を上げよう

ci_cd_main_image

AI時代の人間の仕事

「人間がコードを書く時代は終わった」というNode.js創始者のRyan Dahlの発言など、コードを書く事は人間の仕事ではなくなるかもしれないと言われたりしている世の中ですが、これはAIだけで行うのは難しいだろうという事があります。

それは、「成果物に対して責任を取る(≒確認をする)」という事です。

そして、人間のレビューが間に合わないスピードで生成された成果物に対して、スムーズに確認をする際に活きてくる仕組みがCI/CDです。

CI と CD のおさらい

CI (Continuous Integration)

コードを変更するたびに、自動でテスト・ビルドを実行する仕組み

  • push / PR をトリガーに自動実行
  • 「壊れていないこと」を常に保証する
  • 問題を早期発見し、統合コストを最小化する

CD(Continuous Delivery)

テスト・ビルドを通過したコードを、いつでも本番環境へリリースできる状態に保つ仕組み

  • CI 通過後、自動的にステージング環境へデプロイ
  • 本番へのリリースは人間が確認・承認してから実行
  • 「いつでも出せる」状態を常に維持し、リリースリスクを最小化
CI CD
何をする? コードの統合・テスト・ビルドを自動化 テスト済みコードのデプロイを自動化
ゴール 「壊れていないこと」を常に保証 「いつでもリリースできる状態」を保証
タイミング push / PR のたびに実行 CI 通過後に自動 or ワンクリックで実行

CD のメリット

1. リリースサイクルの短縮

  • CI 通過後すぐにステージング環境で動作確認できる
  • 本番リリースの判断・実行が迅速になり、「金曜デプロイ怖い問題」が消える

2. ヒューマンエラーの排除

  • 手順書ベースの手動デプロイ → 手順ミス・抜け漏れが発生しがち
  • CD なら毎回まったく同じプロセスで実行される

CD があることで、人間は「確認する」というまだAIでは出来ない仕事に集中できる

CI/CDを実際に設定してみる

実際に、GitHub で管理された Sveltekit製アプリケーションをCloudflare Workers 上にデプロイし、CI/CDがどのようなものか見てみましょう。

ちなみに Cloudflare Workers にした理由は、無料で利用出来るのと CI/CD の設定が簡単だからです。

Cloudflare Workers でないとこういった CI/CD の設定が出来ないというわけではありません。

ただ、 本番環境でAWSを使い、 CI/CD では Cloudflare Workers を使う、といった事は可能なので、 プレビュー環境のデプロイ先としては非常におすすめです。

Sveltekitプロジェクト作成

Svelte公式より用意された、以下のコマンドでSveltekitプロジェクトを作成する事が出来ます。

npx sv create blog_cicd

これを実行すると、以下のように対話形式で開発に便利なツールやライブラリの設定を行うか聞いてくれます。

日本語訳
どのテンプレートを使用しますか?

SvelteKit minimal(最小構成)

TypeScript による型チェックを追加しますか?

はい、TypeScript 構文を使用します

プロジェクトに何を追加しますか?

prettier, eslint, vitest, playwright, sveltekit-adapter, mcp

vitest: 何のために vitest を使用しますか?

ユニットテスト、コンポーネントテスト

sveltekit-adapter: どの SvelteKit アダプターを使用しますか?

Cloudflare

sveltekit-adapter: Workers (assets) と Pages のどちらにデプロイしますか?

Workers

mcp: どのクライアントを使用しますか?

VSCode

mcp: どのセットアップを使用しますか?

Local(ローカル)

プロジェクトが作成されました
アドオンのセットアップに成功しました:prettier, eslint, vitest, playwright, sveltekit-adapter, mcp
どのパッケージマネージャーで依存関係をインストールしますか?

bun

CI の設定をする

上記の設定により、 Unit Test(demo.spec.ts), Component Test(page.svelte.spec.ts), E2E テスト(demo.test.ts) がそれぞれ1件ずつ作成されています。

これが CI 上で働くようにします。


GitHub Actions ワークフローの作成

.github/workflows/ci.yml を

を以下の内容で作成します。

ワークフローの解説

ステップ 説明
actions/checkout リポジトリのコードを取得
oven-sh/setup-bun bun ランタイムをセットアップ
bun install 依存関係のインストール
playwright install ブラウザテストに必要な Chromium をインストール
test:unit -- --run Unit Test (demo.spec.ts) + Component Test (page.svelte.spec.ts) を実行
test:e2e E2E Test (demo.test.ts) を実行

push(main ブランチ)と pull_request をトリガーに、3種類のテストが自動実行されます。


CD の設定をする

CI で品質を担保したら、次は Cloudflare Workers にデプロイする CD を設定します。 Cloudflare Workers Builds を使えば、GitHub リポジトリと連携して自動デプロイが可能です。

GitHub リポジトリを Cloudflare に接続する

  1. Cloudflare ダッシュボード にログイン
  2. Workers & Pages → 対象の Worker を選択
  3. Settings → Builds → Connect を選択
  4. GitHub アカウントを認証し、リポジトリを選択

CI/CDの動作を確認する

設定が終わったので、早速 develop ブランチから main に向けてPRを作成します。 すると、以下のようにPR上でプレビューURLが発行されるので、実装者もレビュワーもシームレスにプレビュー上で動作の確認が出来ます。

ちなみに、プッシュしたら再デプロイされるようにもなっています。

また、Cloudflareへのデプロイが終わったら以下のようにSlackなどに通知を送るようにすることも出来ます。

Slack通知から直接動作の確認が出来るので、便利ですね。

余談

今回はソースコードの変更をCI/CDによりプレビュー環境にデプロイする方法を書きました。

ただそれ以外にも、DBスキーマの変更なども含めて確認が必要な場合があるでしょう。

そういった場合にも同じ事は出来るのでしょうか?

実は、それも可能です。

Cloudflareではプレビュー環境用のDBがあったり、PlanetScaleやNeonといったサーバーレスDBでは、DBにもブランチの仕組みが用意されているので、DBスキーマの変更などがあってもプレビュー環境用にデプロイする事が可能なようです。

まとめ

CI/CD自体はここ最近の概念ではありませんが、AIでの開発スピードにおいつくには、適切にCI/CDを設定してスムーズに確認するための基盤づくりが不可欠です。

最後に改めてCI/CDの特徴とメリットをまとめます。

  • CD = CI通過後に自動でステージングへ届け、いつでも本番にリリースできる状態を保つ仕組み
  • ヒューマンエラー排除・リリース高速化・心理的安全性 UP
  • AI 時代だからこそ、CD で「確認する」の精度を上げよう!
ドコドア エンジニア部

ドコドア エンジニア部

Flutterなどの技術を活用し、ユーザーにとって価値ある高品質なモバイルアプリ・Webアプリの開発に取り組んでいます。
このブログでは、アプリ開発の現場で培ったフロントエンド、バックエンド、インフラ構築の知識から生成AI活用のノウハウまで、実践的な情報をアプリ開発に悩む皆様へ向けて発信しています!
【主な技術スタック】 Flutter / Firebase / Svelte / AWS / GCP / OpenAI API

Contact Us

Web制作、Webマーケティング、SFA・MA導入支援に関するお悩みがある方は、お気軽にご相談ください。

お問い合わせ・ご相談

ホームページ制作、マーケティングにおける
ご相談はお気軽にご連絡ください。

資料請求

会社案内や制作実績についての資料を
ご希望の方はこちらから。

お電話でのお問い合わせ

お電話でのご相談も受け付けております。

※コールセンターに繋がりますが、営業時間内は即日
担当より折り返しご連絡をさせて頂きます。

9:00-18:00 土日祝休み

電話する 無料相談はこちら