👋

GitHub へのコミットをトリガーに Cloudflare Workers をデプロイする

2024/09/29に公開

先日の Cloudflare Workers のアップデートで、Git リポジトリと Cloudflare Worker を連携できるようになりました。これにより、自前でデプロイワークフローを組まずともコミットをトリガーにしたデプロイが実現可能になりました。

Cloudflare Workers を作成する

デプロイ対象となる Worker を実装します。C3 コマンドを使うことで、Hello World example を簡単に作れます。
Cloudflare ダッシュボード上で連携設定を行うためには Worker を作成しておく必要があるため、Do you want to deploy your application?Yesを選択し、初回デプロイを実行します。

$ npm create cloudflare@latest

デプロイ完了後に Worker の URL にアクセスすると Hello World! が返却されます。

GitHub 連携する

ダッシュボードで連携の設定を行います。
先にデプロイした Worker の [設定] > [ビルド] を選択し、Git プロバイダーの接続へと進みます。

対象のリポジトリ、ブランチ等を入力します。今回はデプロイコマンドにnpx wrangler deployを設定します。

自動デプロイする

連携が完了したので、コードを変更しコミットをプッシュしてみます。

index.ts
export default {
	async fetch(request, env, ctx): Promise<Response> {
-		return new Response('Hello World!');
+		return new Response('GitHub integration succeeded!');
	},
} satisfies ExportedHandler<Env>;

デプロイが完了すると、バージョン履歴が追加されていることが確認できます。

各バージョン履歴のビルド詳細ページも提供されています。

まとめ

GitHub Actions を書かなくても良いのが、とても楽で良いですね。
Workers をモノレポで管理している場合には、デプロイ順序の制御の問題などにぶち当たりそうではありますが、その辺りもいずれ解決される気もしています。

参考

Discussion