複数のGoogle Apps Scriptプロジェクトのテスト環境と本番環境を一つのリポジトリで管理し、Github Actionsで本番環境に自動デプロイするワークフロー。
⭐️ prod-test-auto-management_1のREADMEと異なる部分のみ、記載。
-
ローカルリポジトリの構成を以下の構成に設定する。(prod-test-auto-management_1のREADME >
2 セットアップ
>2
)./ ├─ project_1/ │ └─ src/ │ │ ├─ appsscript.json │ │ └─ Code.gs │ └─ .clasp.json ├─ project_2/ │ └─ src/ │ │ ├─ appsscript.json │ │ └─ Code.gs │ └─ .clasp.json
-
Repository Secretを設定。(prod-test-auto-management_1のREADME >
2 セットアップ
>8
)CLASP_SCRIPT_ID
は、deploy.ymlに直接記載するため、設定不要。それ以外のsecretを設定。
-
deploy.yml
ファイルで各プロジェクト(本番環境)のフォルダ名、IDを以下のように記載。projects: - target-dir: 'project_1' script-id: 'XXXX' - target-dir: 'project_2' script-id: 'XXXX'
- prod-test-auto-management_1のREADMEと同様、本番環境のScript IDをGithub ActionsのSecretとして下記のように設定しようとしたが、matrix内では、
secrets
が使用できない (参考サイト)。そのため、ファイル内に直で記載。(ただし、Scripit IDを非公開にする必要がある場合は、当該箇所の修正が必要。)
strategy: matrix: projects: - target-dir: 'project_1' script-id: ${{ secrets.PROJECT_1_CLASP_SCRIPT_ID }} - target-dir: 'project_2' script-id: ${{ secrets.PROJECT_2_CLASP_SCRIPT_ID }}
- prod-test-auto-management_1のREADMEと同様、本番環境のScript IDをGithub ActionsのSecretとして下記のように設定しようとしたが、matrix内では、
⭐️ prod-test-auto-management_1のREADMEと異なる部分のみ、記載。(XXX)は当該READMEのセクションを示している。
-
全てのプロジェクトのテスト環境用ファイルを最新の状態にする。(prod-test-auto-management_1のREADME >
3 使用方法
>1
)- 各プロジェクト内で作業する際は、
cd project_1
のように、当該プロジェクトに移動してから作業。 - 別プロジェクトや、Githubへのpush作業時は、
cd ..
でrootフォルダに戻る。
- 各プロジェクト内で作業する際は、
-
Commit & タグ付け & Pushで、全てのプロジェクトの本番環境用ファイルが最新の状態 & Versionが更新される。(prod-test-auto-management_1のREADME >
3 使用方法
>2
)
- clasp×githubActionsで複数のgasプロジェクトを一つのリポジトリで管理し、自動デプロイまでできるようにした: 参考サイト
- Secrets in matrix: Github Community