-
Notifications
You must be signed in to change notification settings - Fork 0
/
Taskfile.yml
126 lines (108 loc) · 4.21 KB
/
Taskfile.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
version: 3
dotenv:
- ./configuration/defaults.conf
vars:
FUNCTION_ARTIFACT: terraform/handler.zip
GIT_VERSION:
sh: git rev-parse --short HEAD
GIT_BRANCH:
sh: git rev-parse --abbrev-ref HEAD
tasks:
install:
desc: Install dependencies (node modules)
cmds:
- npm install
update-dependencies:
desc: Update dependencies (node modules)
cmds:
- npm update && npm upgrade
run-xplorers-bot:
desc: Run cloud functions framework locally to test the application
cmds:
- npm run start-xplorersbot-server
run-openai:
desc: Run cloud functions framework locally to test the application
cmds:
- npm run start-openai-server
test:
desc: Run unit tests using jest
cmds:
- npm run coverage
compile:
desc: Compile typescript files
cmds:
- tsc
clean:
desc: Clean artifacts and dependencies
cmds:
- rm -rf dist/
- rm -rf {{.FUNCTION_ARTIFACT}}
- rm -rf out/
package:
desc: Package and zip the application code for deployment
cmds:
- task: clean
- task: install
- task: compile
- mkdir -p dist
- cp -R node_modules out/* package*.json dist
create-slack-token-secret:
desc: Create required secrets in GCP Secret Manager
summary: |
Create secrets in GCP Secret Manager to store the slack token, azure openai endpoint and key
Don't forget to set SLACK_OAUTH_TOKEN, AZURE_OPENAI_ENDPOINT and AZURE_OPENAI_KEY env vars
before running this command.
If you only want to test the slack feature, only supplying the SLACK_OAUTH_TOKEN is enough.
cmds:
- printf ${SLACK_OAUTH_TOKEN} | gcloud secrets create slack-oauth-token-${TF_WORKSPACE} --data-file=- --replication-policy=automatic
- printf ${AZURE_OPENAI_ENDPOINT} | gcloud secrets create azure-openai-endpoint-${TF_WORKSPACE} --data-file=- --replication-policy=automatic
- printf ${AZURE_OPENAI_KEY} | gcloud secrets create azure-openai-key-${TF_WORKSPACE} --data-file=- --replication-policy=automatic
terraform-fmt:
desc: Format terraform files
cmds:
- |
terraform -chdir=terraform fmt
terraform-init:
desc: Initialize terraform backend, providers, plugins and modules
cmds:
- |
terraform -chdir=terraform init \
-backend-config="bucket=${XPLORERS_ARTIFACTS_BUCKET_NAME}" \
-backend-config="prefix=${XPLORERS_ARTIFACTS_BUCKET_TERRAFORM_PREFIX}"
terraform-plan:
desc: Creates an execution plan, which lets you preview the changes that Terraform plans to make to your infrastructure.
cmds:
- task: terraform-init
- task: package
- |
terraform -chdir=terraform plan \
-var "project_id=${GOOGLE_CLOUD_PROJECT_ID}" \
-var "region=${GOOGLE_CLOUD_PROJECT_REGION}" \
-var "zone=${GOOGLE_CLOUD_PROJECT_ZONE}" \
-var "xplorers_artifacts_bucket_name=${XPLORERS_ARTIFACTS_BUCKET_NAME}" \
-var "xplorers_openai_slack_channel_id=${XPLORERS_OPENAI_SLACK_CHANNEL_ID}" \
-var "azure_openai_deployment_id=${AZURE_OPENAI_DEPLOYMENT_ID}"
terraform-apply:
desc: Apply the planned changes to the target infrastructure
cmds:
- defer: { task: clean }
- task: package
- |
terraform -chdir=terraform apply -auto-approve \
-var "project_id=${GOOGLE_CLOUD_PROJECT_ID}" \
-var "region=${GOOGLE_CLOUD_PROJECT_REGION}" \
-var "zone=${GOOGLE_CLOUD_PROJECT_ZONE}" \
-var "xplorers_artifacts_bucket_name=${XPLORERS_ARTIFACTS_BUCKET_NAME}" \
-var "xplorers_openai_slack_channel_id=${XPLORERS_OPENAI_SLACK_CHANNEL_ID}" \
-var "azure_openai_deployment_id=${AZURE_OPENAI_DEPLOYMENT_ID}"
terraform-destroy:
desc: Delete all resources created by terraform
cmds:
- |
terraform -chdir=terraform destroy -auto-approve \
-var "project_id=${GOOGLE_CLOUD_PROJECT_ID}" \
-var "region=${GOOGLE_CLOUD_PROJECT_REGION}" \
-var "zone=${GOOGLE_CLOUD_PROJECT_ZONE}" \
-var "xplorers_artifacts_bucket_name=${XPLORERS_ARTIFACTS_BUCKET_NAME}" \
-var "xplorers_openai_slack_channel_id=${XPLORERS_OPENAI_SLACK_CHANNEL_ID}" \
-var "azure_openai_deployment_id=${AZURE_OPENAI_DEPLOYMENT_ID}"