🔥
Cloudflare Workers + hono をGitHub ActionsでCI/CD
前例の記事が見当たらなさすぎて沼ったのでメモ。
自分用の備忘録のため、説明は不親切です。
前準備
ソースコード
honoのチュートリアルの通りに書いて、GitHubリポジトリにpushするだけ。
注意点
honoのデフォルトだと.gitignoreでwrangler.tomlが指定されているが、GitHub Actionsでのデプロイには必要なので入れておく。
もちろん、wrangler.tomlに、APIキーなど重要な情報は直接記入しないようにする。必要なら環境変数などを使うこと。
.gitignore
node_modules
dist
.wrangler
.dev.vars
# Change them to your taste:
- wrangler.toml
package-lock.json
yarn.lock
pnpm-lock.yaml
Cloudflare APIトークン取得
とりあえずCloudflare Workersのテンプレートそのままで取得する。
APIトークンは忘れずにコピーしておく。
GitHub シークレットにAPIトークンを格納
CF_API_TOKENという名前で、前項のAPIトークンを格納する。
GitHub Actions yaml作成
今回はdevブランチへのpushをトリガーにしている。
.github/workflows/deploy.yaml
name: Deploy
# devブランチがpushされるたびに起動
on:
push:
branches:
- dev
jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 20
# pnpmで管理しているので、pnpmをセットアップしている。パッケージマネージャによって変えること。
- name: Setup pnpm
uses: pnpm/action-setup@v2.2.2
with:
version: 8
- run: pnpm install
# honoのデプロイコマンドに、CloudflareのAPIトークンを環境変数として渡してRUNする。
- name: Deploy
run: pnpm run deploy
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
Discussion