Google Apps Scriptプロジェクトのテスト環境と本番環境を一つのリポジトリで管理し、Github Actionsで本番環境に自動デプロイするワークフロー。(一つのプロジェクトの管理)
複数プロジェクトを管理するGithub Actions Workflowsはこちら。
-
テスト用と本番用のApps Script fileをGoogle Driveで作成する。
-
ローカルリポジトリを以下の構成に設定する。
./ └─ src/ │ │ └─ .clasp.json └─ .gitignore
- srcフォルダ傘下には、以降の作業でApps Scriptのファイルを格納する。
-
.clasp.json
、.gitignore
の内容を更新する。.clasp.json
{ "scriptId": "XXXXX", "rootDir": "./src" }
XXXXX
には、テスト環境用ファイルのIDを入力。
.gitignore
**/.clasp.json
- テスト環境用ファイル情報はGit管理下から外す。
-
npm install -g @google/clasp
でclaspをグローバルインストール。
- インストールしてない場合のみ。
clasp login
でClaspにログイン
- ログインが成功したら、
/Users/ユーザー名/.clasprc.json
にDefault credentialsが保存される。(後の作業で使用する)
clasp pull
でsrc
フォルダに対象のApps Scriptファイル (テスト用) を格納する。
clasp pull
実施前に、必要に応じてテスト環境のコードを更新する。
-
Githubで新しいリポジトリを作成する。
-
Github SettingsでRepository Secretを設定。
- Github > Settings > Actions > Repository Secret
- 設定するSecret項目
clasprc.json
の参照方法 (Macの場合) :/Users/ユーザー名/
にアクセスし、command
+shift
+.
で隠しファイルを表示する。
- Github Actions用のフォルダ、ファイル作成
- フォルダ、ファイル構成
./ └─ .github/ └─ workflows/ └─ deploy.yml
deploy.yml
ファイルの内容は当該リポジトリを参照。deploy.yml
で実施されるステップ- リポジトリをチェックアウト
- Node.jsをセットアップ(バージョン16)
- Nodeモジュールをキャッシュ
~/.clasprc.json
を作成(Claspの設定ファイル)~/.clasp.json
を作成(本番環境プロジェクトに紐付けられたClaspの設定ファイル)- バージョン情報を取得
- Google Apps Scriptプロジェクトのファイルをアップロード
- Google Apps Scriptプロジェクトをデプロイ (Descriptionにタグ名を記載)
- タグ名が
v*
の形式でpushされたときに上記ステップが実行される。
- リポジトリの最初のCommit & Push
git init git add . git commit -m "first commit" git branch -M main git remote add origin <リポジトリURL> git push -u origin main
【オプション: package.jsonおよびpackage-lock.jsonを設定し、バージョン更新】
-
npm init -y
でpackage.json
(デフォルト設定値)を作成する。必要に応じて内容更新。 -
npm install
でpackage-lock.json
を作成する。
-
テスト環境用ファイルを最新の状態にする。(
/src
フォルダ傘下) -
Commit & タグ付け & Push
git add . git commit -m "XXX" git tag vX.X.X git push origin main git push origin vX.X.X
vX.X.X
はSemantic Versioningに従い、記載。
【オプション: package.jsonおよびpackage-lock.jsonを設定し、バージョン更新】
npm version X.X.X
をターミナルで実行
- npmのversionをgit tagと一致させることで、リポジトリ全体の一貫性を保てる。
- GitHub Actions を理解する: 公式ドキュメント
- アイデアからリリースまでのワークフローを自動化: 公式ドキュメント
- GitHub Actionsを使ってGASをデプロイしてみた: 参考サイト
- gas-template: 参考Githubリポジトリ
- Understanding Semantic Versioning: A Guide for Developers: 参考サイト