forked from amplication/amplication
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cloudbuild.yaml
67 lines (61 loc) · 2.05 KB
/
cloudbuild.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
steps:
- id: "docker-pull"
name: "gcr.io/cloud-builders/docker"
entrypoint: "bash"
args:
[
"-c",
"docker pull gcr.io/$PROJECT_ID/$_IMAGE_REPOSITORY:latest || exit 0",
]
- id: "docker-build"
name: "gcr.io/cloud-builders/docker"
args:
- "build"
- "-t=gcr.io/$PROJECT_ID/$_IMAGE_REPOSITORY:$SHORT_SHA"
- "-t=gcr.io/$PROJECT_ID/$_IMAGE_REPOSITORY:latest"
- "."
- --cache-from=gcr.io/$PROJECT_ID/$_IMAGE_REPOSITORY:latest
waitFor: ["-"]
- id: "docker-push"
name: "gcr.io/cloud-builders/docker"
args: ["push", "gcr.io/$PROJECT_ID/$_IMAGE_REPOSITORY:$SHORT_SHA"]
waitFor: ["docker-build"]
- id: "docker-push-latest"
name: "gcr.io/cloud-builders/docker"
args: ["push", "gcr.io/$PROJECT_ID/$_IMAGE_REPOSITORY:latest"]
waitFor: ["docker-build"]
- id: "terraform-init"
name: "hashicorp/terraform:0.13.0"
args: ["init"]
dir: terraform/envs/dev
waitFor: ["-"]
- id: "terraform-apply"
name: "hashicorp/terraform:0.13.0"
args:
- "apply"
- "-auto-approve"
# 20 minutes
- "-lock-timeout=1200s"
dir: terraform/envs/dev
env:
- "TF_VAR_image_id=gcr.io/$PROJECT_ID/$_IMAGE_REPOSITORY:$SHORT_SHA"
waitFor: ["terraform-init", "docker-push"]
- name: "node:12-stretch"
entrypoint: bash
args:
- -c
- |
set -e;
wget -O /workspace/cloud_sql_proxy https://storage.googleapis.com/cloudsql-proxy/v1.16/cloud_sql_proxy.linux.386;
chmod +x /workspace/cloud_sql_proxy;
/workspace/cloud_sql_proxy -dir=/workspace -instances=$PROJECT_ID:$_REGION:$_DB_INSTANCE=tcp:5432 & sleep 2
cd packages/amplication-server/prisma/;
POSTGRESQL_URL="postgresql://$_POSTGRESQL_USER:$_POSTGRESQL_PASSWORD@localhost:5432/$_POSTGRESQL_DB" npx @prisma/cli migrate up --create-db --auto-approve --experimental;
waitFor: ["terraform-apply"]
images:
[
"gcr.io/$PROJECT_ID/$_IMAGE_REPOSITORY:$SHORT_SHA",
"gcr.io/$PROJECT_ID/$_IMAGE_REPOSITORY:latest",
]
# 1 hour
timeout: 3600s