タスクランナーはTasksを想定している。
挙動は以下
1. 検証環境用のFirebaseプロジェクトを選択
2. 検証環境用の情報でfirestore.indexes.jsonを更新
3. 本番環境のFirebaseプロジェクトを選択
4. firestore.indexes.jsonの内容を本番環境へデプロイ
Snippet
Taskfile.ymlversion: "3"
env:
WEB_DIR: "path/to/directory"
dotenv: ["path/to/dot/env"]
tasks:
pro:deploy:firestore-index:
desc: "Firestoreのインデックス情報を本番環境へデプロイ"
dir: "{{.WEB_DIR}}"
cmds:
- firebase use $STG_FIREBASE_PROJECT_ID
- firebase firestore:indexes > firestore.indexes.json
- firebase use $PRODUCTION_FIREBASE_PROJECT_ID
- firebase deploy --only firestore:indexes
Output
task: [pro:deploy:firestore-index] firebase use $STG_FIREBASE_PROJECT_ID
Now using project stg-project-name
task: [pro:deploy:firestore-index] firebase firestore:indexes > firestore.indexes.json
task: [pro:deploy:firestore-index] firebase use $PRODUCTION_FIREBASE_PROJECT_ID
Now using project prod-project-name
task: [pro:deploy:firestore-index] firebase deploy --only firestore:indexes
=== Deploying to 'prod-project-name'...