【GAS】claspの「push」しか使ってないの?「clasp deploy」でWebアプリのデプロイまで自動化できる話

この記事の内容について、業務や開発でお困りの場合は個別に対応できます。

Google Apps Script (GAS) の開発で clasp を使っている人は多いですが、ほとんどの人が clasp push で止まっているのではないでしょうか?

実は私自身もそうだったのですが、clasp deploy コマンドを使うと、「新しいデプロイの作成」と「デプロイIDの取得」までCLIだけで完結できます。

ブラウザを開いて「デプロイ」ボタンをポチポチ押す作業から解放されましょう。

clasp deploy でできること

基本的に、GASエディタ上の「新しいデプロイ」ボタンと同じ操作がコマンド一発で可能です。

  1. 新しいデプロイメント(本番環境)を作成する
  2. そのデプロイID(Deployment ID)を取得する
  3. バージョン管理されたスナップショットを公開する

基本コマンド

# コードをアップロード
clasp push

# 新しいバージョンを作成(スナップショット)
clasp version "Ver 1.0.0 Release"

# そのバージョンを指定してデプロイ
clasp deploy -V 1 -d "Initial Deploy"

これだけで、新しい Web App URL や API エンドポイントが即座に発行されます。

Web App URL は変わる?変わらない?

ここが最大の注意点です。

clasp deploy = 新規作成(URLが変わる)

clasp deploy を実行するたびに、新しい Deployment ID が発行されます。 つまり、WebアプリのURL(…/exec)も毎回変わってしまいます。

  • 用途: テスト環境を毎回使い捨てで作る場合や、クライアントごとに別のURLを発行したい場合。

clasp redeploy = 更新(URLそのまま)

既存の Webアプリ URL を維持したまま、中身のバージョンだけを更新したい場合は、clasp redeploy を使います。

# 既存のデプロイIDを指定して更新
clasp redeploy <DeploymentID> -V <NewVersionNumber>

これを知らないと、「デプロイするたびにURLが変わってしまい、毎回クライアントに連絡しなおし」という地獄を見ることになります。

実践的ワークフロー

CLIだけで完結させるなら、以下のフローが最強です。

1. 初回デプロイ(URL発行)

clasp push
clasp version "First Release"
clasp deploy -V 1 -d "Production"
# ここで出力される Deployment ID をメモしておく!

2. 更新デプロイ(URL維持)

clasp push
clasp version "fix bug"
# → Created version 2 と表示されたら...

# バージョン2を既存IDに適用
clasp redeploy <DeploymentID> -V 2

appsscript.json の設定を忘れずに

Webアプリとして公開するには、clasp 実行前に、ローカルの appsscript.jsonwebapp 設定をしておく必要があります。

{
  "timeZone": "Asia/Tokyo",
  "dependencies": {},
  "webapp": {
    "access": "ANYONE",
    "executeAs": "USER_DEPLOYING"
  },
  "exceptionLogging": "STACKDRIVER"
}

これをやっておけば、clasp deploy した瞬間に「誰でもアクセス可能なWebアプリ」が爆誕します。

まとめ

  • 【結論】clasp push だけじゃもったいない。versiondeploy までやれば完全自動化が可能。
  • 【注意】clasp deploy は毎回新しいURLを作る。URLを変えたくなければ clasp redeploy を使うこと。
  • 【ポイント】Webアプリ設定は appsscript.json で管理できる。

これでCI/CDパイプラインからGASを自動デプロイする夢が広がりますね!

ZIDOOKA!

この記事の内容について、対応できます

この記事に関連する技術トラブルや開発上の問題について個別対応を行っています。

個別対応は3,000円〜 内容・工数により事前にお見積りします
最後までお読みいただきありがとうございました

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

AI活用に関するポリシー

当サイトでは、記事の執筆補助にAIを活用する場合がありますが、全面的な委任は行いません。