GitHub ActionsからGASのプロジェクトをデプロイする
単に既存の情報を元にやってみたという記事です。
私用のメモに近いです。
参考にした記事
-
GitHub Actionsを使ってGASをデプロイしてみた | DevelopersIO
- 本筋はこれなので、これを読むと多分以下は読まなくていいはずです
-
.clasp.json
の作りなどが参考になりました - 結局書いた Action がこれとほぼ一緒になりました
-
GAS & TypeScript のローカル開発環境を準備する
- TypeScript での初期設定の参考にしました
自分が試したリポジトリ
環境
- Ubuntu 20.04 on WSL2
- Node v14.18.1
- clasp v2.4.1
やること
プロジェクトを作って clone する
いつも通りなので省略。
なお push, clone がたまに失敗していたのですが、通信の問題でした。
デフォルトの DNS がどうも遅いので、パブリック DNS を使うようにしたら高速化しました。
1.1.1.1 — The free app that makes your Internet faster.
npm もなんか遅いときがあったので、DNS の変更が効くときもあるかもしれません。
デプロイ用のアクションを書く
参考にした記事をベースに書いていきました。
少し変えているところとしては元記事では echo
で出力していましたが、 heredoc を使って出力する形にしました。
下記の記事を参考にしています。
またデバッグには act を使いました。
nektos/act: Run your GitHub Actions locally 🚀
OAuth の ID などは Secret の値で管理したいので、GitHub 側で設定しますが、act でも同様に Secrets を扱うことができます。
なので act --secret-file .secrets
とすると、Secret の値を補完できて便利です。
これは GAS のデプロイだけでなく、他でも活かしていきたいですね。
デプロイに関して
npm install
で全てのパッケージを install してもよかったのですが、clasp をグローバルインストールしたほうが結局速度出たのでそうしました。
最初 npm install
してたんですが、インストールするものを絞ることで、デプロイまでの時間が短くなったのは体験が多少良くなったかもしれません。
これは他でデプロイするときにも意識しておきたいです。
まとめ
GAS でデプロイできるようになったので、次は GAS でテストを自動化してやる、みたいなことをやりたいなとなんとなく考えています。
Discussion