webAppも作らないとなので、Claspでデプロイまでできると嬉しいなっと。
#1.普段のやり方
Claspでpushしてバージョン決めて、
スクリプトエディターから「公開」→「ウェブアプリケーションとして...」
これがひと手間かかっていたのでClaspだけでできないかな、と。
#2.情報すくない&コマンドがなくなったのが罠
少なくとも日本語検索では引っかからず。英語のところでやっと。
redeployというコマンドが鍵っぽかったけど、いつの間にか削除されてた
このためほとんどの記事が無意味に。
#3.現状の正解っぽいやつ
Githubを探してたらそれらしきものがあった。
その中でgdgd議論があって、下の方に、
WebAppのデプロイの版をアップデートするだけじゃん(超意訳)とあったのでそれを真似る
ステップ1 appsscript.jsonにwebAppのエントリを作る
"webapp": {
"access": "ANYONE_ANONYMOUS",
"executeAs": "USER_DEPLOYING"
},
webapp.executAs は以下から選択
USER_ACCESSING, USER_DEPLOYING, SERVICE_ACCOUNT, UNKNOWN_EXECUTE_AS
webapp.access は以下から選択
UNKNOWN_ACCESS, DOMAIN, ANYONE, ANYONE_ANONYMOUS, MYSELF
ステップ2 1回スクリプトエディターでWebAppとして公開する
これで、デプロイの中にWEBAPPのデプロイ版ができる
clasp deploymentsコマンドでデプロイリストを出してみる
clasp deployments
4 Deployments.
- AKfyXXXDlsI @HEAD
- AKfyYYYI6fY @2 - test2
- AKfyZZZP04n @2
- AKfyAAAvqg @1 - web app meta-version
このweb app meta-version のdeployID(AKfyAAAvqg)をコピーしておく
ステップ3 コードを更新したらclaspコマンド
clasp push
clasp deploy -i AKfyAAAvqg
pushでGASを更新し、deployのiコマンドで更新するデプロイの版を指定してアップデート
これでWEBAPPのデプロイ版をアップデートしてくれる
ステップ4 ブラウザで確認
のdeploymentIDに自分のWebApp版でデプロイしたIDで置き換えてアクセスすれば開けた
#4.備忘録
今日時点ではこれで動いてるけど、clasp createの際にwebappを指定してもappsscript.jsonには上記のエントリはないので、いつか更新されるのを期待