/
cloudbuild-demo.yaml
128 lines (108 loc) · 4.46 KB
/
cloudbuild-demo.yaml
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
steps:
- name: 'gcr.io/cloud-builders/docker'
id: docker-cache
entrypoint: 'bash'
args:
- '-c'
- |
docker pull eu.gcr.io/$PROJECT_ID/$_IMAGE-build:latest || exit 0
docker pull eu.gcr.io/$PROJECT_ID/$_IMAGE:latest || exit 0
- name: 'gcr.io/cloud-builders/docker'
id: docker-build-dependencies
waitFor:
- docker-cache
args: [
'build',
'--target', 'build',
'--cache-from', 'eu.gcr.io/$PROJECT_ID/$_IMAGE-build:latest',
'-t', 'eu.gcr.io/$PROJECT_ID/$_IMAGE-build:latest',
'.'
]
- name: 'gcr.io/cloud-builders/docker'
id: docker-build-release
waitFor:
- docker-build-dependencies
args: [
'build',
'--target', 'release',
'--cache-from', 'eu.gcr.io/$PROJECT_ID/$_IMAGE-build:latest',
'--cache-from', 'eu.gcr.io/$PROJECT_ID/$_IMAGE:latest',
'-t', 'eu.gcr.io/$PROJECT_ID/$_IMAGE:$SHORT_SHA',
'-t', 'eu.gcr.io/$PROJECT_ID/$_IMAGE:latest',
'.'
]
- name: 'gcr.io/cloud-builders/docker'
id: docker-push-build-dependencies
waitFor:
- docker-build-dependencies
args: [
'push',
'eu.gcr.io/$PROJECT_ID/$_IMAGE-build:latest'
]
- name: 'gcr.io/cloud-builders/docker'
id: docker-push-build-release-short-sha
waitFor:
- docker-build-release
args: [
'push',
'eu.gcr.io/$PROJECT_ID/$_IMAGE:$SHORT_SHA',
]
- name: 'gcr.io/cloud-builders/docker'
id: docker-push-build-release-latest
waitFor:
- docker-build-release
args: [
'push',
'eu.gcr.io/$PROJECT_ID/$_IMAGE:latest',
]
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
id: deploy
entrypoint: gcloud
waitFor:
- docker-push-build-release-short-sha
args: [
'beta', 'run', 'deploy', 'graphql-training-demo',
'--image', 'eu.gcr.io/$PROJECT_ID/$_IMAGE:$SHORT_SHA',
'--region', '$_REGION',
'--cpu', '1000m',
'--memory', '256Mi',
'--min-instances', '0',
'--max-instances', '1',
'--service-account', '$_SERVICE_ACCOUNT_NAME',
'--allow-unauthenticated',
'--platform', 'managed',
'--vpc-connector', '$_VPC_CONNECTOR',
'--set-cloudsql-instances', '$_CLOUD_SQL_CONNECTION_NAME',
'--update-env-vars', 'IS_REDIS_USED=TRUE',
'--update-env-vars', 'REDIS_HOST=$_REDIS_HOST',
'--update-env-vars', 'REDIS_PORT=$_REDIS_PORT',
'--update-env-vars', 'REDIS_USERNAME=username',
'--update-env-vars', 'REDIS_PASSWORD=password',
'--update-env-vars', 'GOOGLE_CLOUD_SQL_CONNECTION_NAME=$_CLOUD_SQL_CONNECTION_NAME',
'--update-env-vars', 'GOOGLE_CLOUD_PROJECT_ID=$PROJECT_ID',
'--update-env-vars', 'PLATFORM=google-cloud-platform',
'--update-env-vars', 'API_NUMBER_FACT_TOKEN=abcdkissakavelee',
'--update-env-vars', 'GRAPHQL_ALLOW_INTROSPECTION=TRUE',
'--update-env-vars', 'GRAPHQL_INLINE_TRACE=TRUE',
'--update-env-vars', 'DATABASE_NAME=$_CLOUD_SQL_INSTANCE_NAME',
'--update-env-vars', 'DATABASE_USER=$_CLOUD_SQL_USER_NAME',
'--update-env-vars', 'DATABASE_PORT=5432',
'--update-env-vars', 'DATABASE_HOST=/cloudsql',
'--update-env-vars', 'DATABASE_TYPE=pg',
'--update-env-vars', 'TOKEN_PATH=/graphql',
'--update-env-vars', 'TOKEN_DOMAIN=frakt.io',
'--update-env-vars', 'ACCESS_TOKEN_AGE_SECONDS=302400',
'--update-env-vars', 'REFRESH_TOKEN_AGE_SECONDS=604800',
'--update-env-vars', 'API_CORS_ENDPOINT=*',
'--update-env-vars', 'IS_PRODUCTION=TRUE',
'--update-env-vars', 'API_EXPOSE_ERRORS=TRUE',
'--update-env-vars', 'LOGGING_LEVEL=info',
'--update-secrets', 'TOKEN_SECRET=TOKEN_SECRET:latest',
'--update-secrets', 'DATABASE_PASSWORD=DATABASE_PASSWORD:latest',
'--update-secrets', 'APOLLO_KEY=APOLLO_KEY:latest',
'--update-env-vars', 'APOLLO_GRAPH_ID=Boiler-test',
'--update-env-vars', 'APOLLO_GRAPH_VARIANT=current',
'--update-env-vars', 'APOLLO_SCHEMA_REPORTING=true',
]
tags: ['$PROJECT_ID-$_IMAGE']
images: ['eu.gcr.io/$PROJECT_ID/$_IMAGE-build:latest', 'eu.gcr.io/$PROJECT_ID/$_IMAGE:$SHORT_SHA', 'eu.gcr.io/$PROJECT_ID/$_IMAGE:latest']