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月最新の方法としての価値は多少あると思います.

さくっと本題

やり方を手短に説明します.

1. claspの認証情報の取得

  1. ローカルにnode.jsをインストール
  2. claspをインストール : npm install -g @goole/clasp
  3. Googleアカウントにログイン : clasp login
  4. ログインが完了すると,認証情報が手に入る (~/.clasprc.json)

2. Google Apps Script APIを有効化

  1. Apps Script  |  Google for Developersにアクセス
  2. GASのAPIを有効化

3. プロジェクトの認証情報を取得

  1. GASのプロジェクトを作成,開く
  2. スクリプトIDを取得 : https://script.google.com/home/projects/<SCRIPT_ID>]
  3. 「新しいデプロイ」を作成 : GASのプロジェクト > デプロイ > 新しいデプロイ > 「ウェブアプリ」のデプロイを作成
  4. デプロイIDを取得 : GASのプロジェクト > デプロイ > デプロイを管理 > デプロイID

4. (必要に応じて)今のプロジェクトのソースコードをダウンロード

  1. スクリプトIDを取得 : https://script.google.com/home/projects/<SCRIPT_ID>]
  2. GASのソースコード(JavaScript)やappsscript.jsonをダウンロード : clasp clone <SCRIPT_ID>

5. gitの準備

  1. git init or git cloneなど,ローカルリポジトリの作成,git環境の準備 (詳細は省く)
  2. src/にGASのソースコード(JavaScript)やappsscript.jsonを配置

6. 認証情報をActions secretsに保存

  1. <repository_url>/settings/secrets/actionsにアクセス
  2. 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.jsonclasp.jsonを生成するスクリプトを作成

前述のyamlのワークフロー終盤で必要になります.

最後に

あとは開発を進め,deployブランチにpushすることで,適宜GASへのデプロイを自動実行してくれるはずです.ざっくりしすぎた説明ですが,概ねこんな感じで上手くいきました.

今回は下記サイトを参考に進め,修正しつつ実装しました.下記サイトに従ったうえで不足した点を,この記事で埋めていただけたらと思います.

最後にこの自動デプロイを利用したGitHubリポジトリを掲載します.このプロジェクトについては,後日記事にします.

github.com