An open API service indexing awesome lists of open source software.

https://github.com/jiro4989/google-apps-script

次郎のGoogleAppsScript置き場。自動デプロイまでしてくれる
https://github.com/jiro4989/google-apps-script

clasp github-actions google-apps-script javascript

Last synced: about 1 month ago
JSON representation

次郎のGoogleAppsScript置き場。自動デプロイまでしてくれる

Awesome Lists containing this project

README

        

= google-apps-script
:toc: left

次郎のGoogleAppsScript (以降GAS)置き場。

== 前提条件

開発のために以下のツールを使用します

- node.js
- npm

GASを操作するために以下のツールをCIから使用しています。
これは `git push` されたときに自動でGASにデプロイするために使用していま
す。開発者がプログラムの実装・修正する時には不要です。

https://github.com/google/clasp

== claspの環境構築

CIで自動的にGASに反映される環境が整っているため、ほとんどの場合この手順
は実施不要です。いろんな理由でGASからローカルにスクリプトを落としてきた
くなる場合があるため `clasp clone` を実行できるようにするまでの手順を示します。

以下のコマンドで `clasp` のインストールとログインを実施します。

[source,bash]
sudo npm i -g @google/clasp
clasp login --no-localhost

以下のコマンドで、GASのプロジェクトをローカルに同期してpush可能にします。

[source,bash]
clasp list # スクリプトIDを確認
clasp clone {スクリプトID}

ローカルでファイルを変更して、 `git push` し終えたら、以下のコマンドでGASにも
`push` 可能です。ただし、このpush操作はCIから自動で行われるため、手動で実施する
ことは不要です。

[source,bash]
clasp push

== 開発

- 実際に動作させるスクリプト、アプリケーションは `src` 直下に配置します
- `src` から参照されるライブラリ関数群は `src/libs` 配下に配置します
- ファイルをまたがって参照される変数は `src/variables.js` に追加します
- ファイル内に閉じて使用される変数は変数名プレフィックスにファイル名を付与します
- 関数名プレフィックスにファイル名を付与します

== デプロイ

GASのデプロイはGitHub Actionsで自動で実施されます。
CIの `test` フェーズがパスしたらそのままGASがにデプロイされます。