📚

clasp,GithubActionsを使ってGASの開発環境を整える

2024/03/16に公開

背景

GASで開発をすることが多いので、githubでコード管理をしていきたい。
GASでの開発は2種類存在する。

  1. 簡単な開発でgitに1度pushして終わる開発
  2. 適宜更新が必要な開発

簡単な調査をしたところ、1と2で開発の方法を分けたほうが良さそう。
調査に使った記事は下記。
https://zenn.dev/rescuenow/articles/936a1f4fb4d889

実際に実装してみたら、どっちの場合でも、claspを使ってしまうのがラク。
本記事では「2. 適宜更新が必要な開発」を踏まえて、claspの構築について記載する。

構築

今回は既存のコードがあるので、それをpullすることでgit管理する。

claspの導入

構築は以下のサイトを参考に実施したら問題なく構築できた。
但しこれでは自動反映されないため面倒。CI/CD的に扱えるようにしたい。
https://tech.robotpayment.co.jp/entry/2022/08/04/103805

自動デプロイ

複数プロジェクトを同じフォルダで管理しているので、複数プロジェクトに対応しながら進めていく。
引っかかった点としては、clasp loginを各フォルダ内で実行する必要があること。
https://zenn.dev/furnqse/articles/a138962560db56

actの導入

Github Actionsの開発にて効率が悪すぎるので、actも導入した。
これで、commitせずにローカルで実行できる。
https://qiita.com/NaokiKotani/items/fc2ff9b057ae3c57f723
dockerを起動し、actを実行するだけ。
しかし、actだとREFRESH_TOKENだけシークレットコードを持ってくることができないため、コードをベタ張りすることでデバックした。コードをアップロードするとkeyでも問題なく使うことができる。
不思議すぎる。

Webへのデプロイ

通常のclasp pushだとコードをGASエディタに反映するだけなので、webデプロイまでもっていきたい。
リンクが変わってしまうと面倒なので、デプロイのIDは変更せずにwebデプロイを実施する。
これでVSCodeなどを用いて普通に開発ができる。

clasp push:
    コードをウェブのGASエディタに反映する(反映のみ)
clasp deploy:
    新しいバージョンを作る(公開はなし)
clasp deploy --deploymentId $DEPLOYMENT_ID:
    最新バージョンを公開する

Typescriptへの反映

実施しようとしたがコードの大幅な変更が必要なため、断念。
環境構築のみ実施。
https://qiita.com/zumi0/items/086f28c5a07558a92c13

Discussion