- Node.js >= 24 と pnpm 10
- mise を使っている場合は
mise installで自動セットアップ - または Dev Container / Codespaces でローカル環境構築なしで開始可能
CI/CD 用の専用 Google アカウント(例: gas-deploy@yourcompany.com)を作成し、clasp login を実行。~/.clasprc.json の内容を Organization Secret(名前: CLASPRC_JSON)として追加します。
このテンプレートから作成されるすべてのリポジトリがこの Secret を共有します。リポごとの認証設定は不要です。
GitHub で "Use this template" をクリックし、クローン:
git clone https://github.com/<your-org>/<your-project>.git
cd <your-project>
pnpm install
.clasp-dev.json と .clasp-prod.json を作成(gitignore 済み):
{
"scriptId": "YOUR_SCRIPT_ID",
"projectId": "YOUR_GCP_PROJECT_ID",
"rootDir": "dist"
}
projectIdは Apps Script に紐づく GCP プロジェクト番号です("123456789"のような数字列。my-project-abcのようなプロジェクト ID ではない)。Apps Script エディタ → プロジェクトの設定 → Google Cloud Platform(GCP)プロジェクトで確認できます。記載することで GCP プロジェクトの紐づけが宣言的・再現可能になります。省略時は clasp がスクリプトの既存 GCP プロジェクトを使用します。
| Environment | Secret / Variable | 値 |
|---|---|---|
development |
Secret: CLASP_JSON |
{"scriptId":"DEV_ID","projectId":"GCP_NUM","rootDir":"dist"} |
development |
Variable: DEPLOYMENT_ID |
dev のデプロイメント ID |
production |
Secret: CLASP_JSON |
{"scriptId":"PROD_ID","projectId":"GCP_NUM","rootDir":"dist"} |
production |
Variable: DEPLOYMENT_ID |
prod のデプロイメント ID |
GCP プロジェクト統合時:
CLASP_JSONに"projectId":"プロジェクト番号"を追加します(例:{"scriptId":"...","rootDir":"dist","projectId":"123456789"})。init.sh --gcp-project使用時は自動設定されます。
pnpm run check # lint + 型チェック + テスト
pnpm run deploy # check → build → dev にデプロイ
これで完了です。main へのプッシュで本番デプロイが自動的に実行されます。
ローカル環境の構築は不要です。.devcontainer/ にすべて設定済み。
- VS Code: 「Reopen in Container」を選択
- GitHub Codespaces: Code → Codespaces → Create codespace on main
コンテナ内での clasp login は pnpm exec clasp login --no-localhost を使用してください。