📚

GitHub ActionsからGASのプロジェクトをデプロイする

2022/01/08に公開

単に既存の情報を元にやってみたという記事です。
私用のメモに近いです。

参考にした記事

自分が試したリポジトリ

https://github.com/yumechi/gas-deploy

環境

  • 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 の変更が効くときもあるかもしれません。

デプロイ用のアクションを書く

参考にした記事をベースに書いていきました。

https://github.com/yumechi/gas-deploy/blob/main/.github/workflows/deployment.yml

少し変えているところとしては元記事では echo で出力していましたが、 heredoc を使って出力する形にしました。
下記の記事を参考にしています。

bashのヒアドキュメントを活用する - Qiita

またデバッグには act を使いました。

nektos/act: Run your GitHub Actions locally 🚀

OAuth の ID などは Secret の値で管理したいので、GitHub 側で設定しますが、act でも同様に Secrets を扱うことができます。

https://github.com/nektos/act#secrets

なので act --secret-file .secrets とすると、Secret の値を補完できて便利です。

これは GAS のデプロイだけでなく、他でも活かしていきたいですね。

デプロイに関して

npm install で全てのパッケージを install してもよかったのですが、clasp をグローバルインストールしたほうが結局速度出たのでそうしました。

最初 npm install してたんですが、インストールするものを絞ることで、デプロイまでの時間が短くなったのは体験が多少良くなったかもしれません。

これは他でデプロイするときにも意識しておきたいです。

まとめ

GAS でデプロイできるようになったので、次は GAS でテストを自動化してやる、みたいなことをやりたいなとなんとなく考えています。

Discussion