Google Apps ScriptのソースコードをGitHubで管理し,claspによるデプロイ作業をGitHub Actionsで自動化する / maccha Advent Calendar 2024
この記事はmaccha Advent Calendar 2024の5日目の記事です.
タイトルや内容的にQiitaに投稿かなと思ったけど,既に同じテーマの記事が散見され2番煎じになるので,ここに投下します.
GASで動かすソースコードをGitHubで管理し,GASへのデプロイをGitHub Actionsで自動化しました.
下記記事を参考にしましたが,私の開発環境に合った改変&2024年12月最新の方法としての価値は多少あると思います.
- 🔰GAS(Google Apps Script)の更新をGithub Actionsで自動化してみた #GitHub - Qiita
- GASのWebアプリケーションをGithubActions & Claspでデプロイする #GoogleAppsScript - Qiita
- claspを使ってGoogle Apps Scriptの開発環境を構築してみた | DevelopersIO
さくっと本題
やり方を手短に説明します.
1. claspの認証情報の取得
- ローカルにnode.jsをインストール
- claspをインストール :
npm install -g @goole/clasp
- Googleアカウントにログイン :
clasp login
- ログインが完了すると,認証情報が手に入る (
~/.clasprc.json
)
2. Google Apps Script APIを有効化
- Apps Script | Google for Developersにアクセス
- GASのAPIを有効化
3. プロジェクトの認証情報を取得
- GASのプロジェクトを作成,開く
- スクリプトIDを取得 :
https://script.google.com/home/projects/<SCRIPT_ID>]
- 「新しいデプロイ」を作成 : GASのプロジェクト > デプロイ > 新しいデプロイ > 「ウェブアプリ」のデプロイを作成
- デプロイIDを取得 : GASのプロジェクト > デプロイ > デプロイを管理 > デプロイID
4. (必要に応じて)今のプロジェクトのソースコードをダウンロード
- スクリプトIDを取得 :
https://script.google.com/home/projects/<SCRIPT_ID>]
- GASのソースコード(JavaScript)や
appsscript.json
をダウンロード :clasp clone <SCRIPT_ID>
5. gitの準備
git init
orgit clone
など,ローカルリポジトリの作成,git環境の準備 (詳細は省く)src/
にGASのソースコード(JavaScript)やappsscript.json
を配置
6. 認証情報をActions secretsに保存
<repository_url>/settings/secrets/actions
にアクセス- Repository secretsに,機密性の高い各種認証情報を保存
入手方法 | 認証情報 |
---|---|
手順1 | ACCESS_TOKEN , REFRESH_TOKEN , SCOPE , TOKEN_TYPE , ID_TOKEN , EXPIRY_DATE , CLIENT_ID , CLIENT_SECRET , REDIRECT_URI , IS_LOCAL_CREDS |
手順2 | DEPLOYMENT_ID , SCRIPT_ID |
保存したsecretは次の手順で呼び出します.名前に気を付けて,登録してください.
7. deploy.yml
の作成
下記YAMLファイルを作成し,.github/workflows/deploy.yml
に保存します.
8. clasprc.json
とclasp.json
を生成するスクリプトを作成
前述のyamlのワークフロー終盤で必要になります.
最後に
あとは開発を進め,deployブランチにpushすることで,適宜GASへのデプロイを自動実行してくれるはずです.ざっくりしすぎた説明ですが,概ねこんな感じで上手くいきました.
今回は下記サイトを参考に進め,修正しつつ実装しました.下記サイトに従ったうえで不足した点を,この記事で埋めていただけたらと思います.
- 🔰GAS(Google Apps Script)の更新をGithub Actionsで自動化してみた #GitHub - Qiita
- GASのWebアプリケーションをGithubActions & Claspでデプロイする #GoogleAppsScript - Qiita
- claspを使ってGoogle Apps Scriptの開発環境を構築してみた | DevelopersIO