Skip to content

btajp/gas-samples

Repository files navigation

このリポジトリについて

情シス Slack向けの GAS サンプル集です

各プロジェクトのファイル

以下の Google ドライブフォルダで閲覧できます。

https://drive.google.com/drive/folders/1Oa-21UtWHbOoI6Yn73753OqYR19fLH0j

このリポジトリを使った GAS 開発の大まかな流れ

graph TD
A[リポジトリをクローン] --> B[Visual Studio CodeでRemote Containerを開始]
B --> C[コンテナ内で clasp create を実行]
C --> D[プロジェクトフォルダが作成される]
D --> E[コンテナ内で開発作業を行う]
E --> F[変更をコミットしGitHubにPush]
F --> G[GitHub Actionsが実行される]
G --> GA[GitHub Actionsで clasp push を実行]
GA --> H[.clasp.jsonが存在するフォルダに移動し `clasp push` を実行]
H --> I[Google Apps Scriptプロジェクトがデプロイされる]
Loading

使い方

リポジトリをクローンする

リポジトリを作成後ローカルにクローンして、ディレクトリに移動します。

git clone
cd gas-samples

Visual Studio Code でコンテナを開く

Visual Studio Code プロジェクトを開きます。

code .

Cmd + Shift + P でコマンドパレットを開き、Remote-Containers: Reopen in Containerを選択します。

コンテナが開いたら、 postCreateCommand によって自動で npm install されます。

コンテナ内で clasp をセットアップする

clasp login

clasp login

branch切る

新しくサンプル追加するまえにブランチ切ってもらえると助かりマスク

プロジェクトフォルダとプロジェクトを作成

npm run create [project_name]

これを実行することによって clasp-script.sh が動き、project_name という名前のフォルダが作成され、以下のツリー構造でプロジェクトが作成されます。

project_name
├── src
│   └── appsscript.json
├── .clasp.json
└── tsconfig.json

そして、タイムゾーンが日本に設定されます。 project_name は任意の名前を指定してください。すでに存在するフォルダ名を指定すると、エラーが発生します。 直接 clasp を実行してしまうと、上記の処理が行われないので、必ず npm run create [project_name] を実行してください。

作成したフォルダに移動して開発

cd project_name
touch ./src/code.gs

Typescript を使う場合は、以下のような ./src/code.ts を作成します。

Push したい場合

Git リポジトリを Push すると GitHubActions で clasp push が行われますが、コンテナ内から直接 clasp push を実行することもできます。 ただし、 package.jsonproject_name フォルダに存在しない場合エラーになるので、これも Clone と同様に npm run push project_name を実行してください。 どこのディレクトリにいても project_name のプロジェクトを明示的に Push できます。

GitHub Actions 用の環境変数を設定する(okash1n 設定済み)

コンテナ内で clasp login を実行すると、/home/node/.clasprc.json. が作成されます。

このファイルを cat し、出力を全てコピーして GitHub のリポジトリの [Settings] => [Secrets and variables] => [Actions] => [New repository secret] に CLASP_TOKEN という名前で作成します。

cat /home/node/.clasprc.json

開発が終わったらプッシュ

リポジトリをプッシュすると、GitHub Actions で .clasp.json があるフォルダを全て探して、それぞれのフォルダで clasp push が行われます。

補足

コンテナ内で clasp login を実行する理由

clasp login は必ずコンテナ内で行わないといけないわけではありません。別の端末などで作った .clasprc.json の内容を CLASP_TOKEN に設定しても構いませんし、手打ちでプロジェクトフォルダや .clasp.json を作っても構いません。 Clasp の開発環境セットアップや、プロジェクトの作成などを誰でもできるように、コンテナ内で行うように記載しております。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published