-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcloudbuild.yaml
More file actions
94 lines (81 loc) · 2.98 KB
/
cloudbuild.yaml
File metadata and controls
94 lines (81 loc) · 2.98 KB
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
steps:
- name: 'gcr.io/cloud-builders/docker'
id: 'pull-platform-image'
entrypoint: 'bash'
args: [
'-c',
'docker pull eu.gcr.io/$PROJECT_ID/acme-platform-core:latest || exit 0'
]
waitFor: ['-']
- name: 'gcr.io/cloud-builders/docker'
id: 'pull-platform-nginx-image'
entrypoint: 'bash'
args: [
'-c',
'docker pull eu.gcr.io/$PROJECT_ID/acme-platform-nginx:latest || exit 0'
]
waitFor: ['-']
- name: 'gcr.io/cloud-builders/docker'
id: 'build-platform-core-image'
args: [
'build',
'-t', 'eu.gcr.io/$PROJECT_ID/acme-platform-core:latest',
'-t', 'eu.gcr.io/$PROJECT_ID/acme-platform-core:$BRANCH_NAME-$SHORT_SHA',
'--cache-from', 'eu.gcr.io/$PROJECT_ID/acme-platform-core:latest',
'.'
]
waitFor: ['pull-platform-image']
# Build nginx gateway
- name: 'gcr.io/cloud-builders/docker'
id: 'build-platform-nginx-image'
args: [
'build',
'-f', 'etc/infrastructure/nginx/Dockerfile',
'-t', 'eu.gcr.io/$PROJECT_ID/acme-platform-nginx:latest',
'-t', 'eu.gcr.io/$PROJECT_ID/acme-platform-nginx:$BRANCH_NAME-$SHORT_SHA',
'--cache-from', 'eu.gcr.io/$PROJECT_ID/acme-platform-nginx:latest',
'.'
]
waitFor: ['pull-platform-nginx-image']
# Start a database instance (for Tests)
- name: 'gcr.io/cloud-builders/docker'
id: 'start-test-db'
entrypoint: 'bash'
args: [
'-c',
'docker run --name test-database -d -v `pwd`/etc/infrastructure/mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d -e "MYSQL_USER=acme" -e "MYSQL_PASSWORD=acme" -e "MYSQL_ROOT_PASSWORD=root" mysql:8'
]
waitFor: ['-']
######################################################################################################################
### Marketplace.Checkout
# Checkout Pipeline
- name: 'gcr.io/cloud-builders/docker'
id: 'acme.platform.marketplace.checkout'
entrypoint: 'bash'
args: [
'-c',
'docker run --link test-database:db eu.gcr.io/$PROJECT_ID/acme-platform-core:$BRANCH_NAME-$SHORT_SHA make prep'
]
waitFor: ['build-platform-core-image', 'start-test-db']
######################################################################################################################
# Build Production image
- name: 'gcr.io/cloud-builders/docker'
id: 'build-platform-core-image:prod'
args: [
'build',
'-t', 'eu.gcr.io/$PROJECT_ID/acme-platform-core:latest',
'-t', 'eu.gcr.io/$PROJECT_ID/acme-platform-core:$BRANCH_NAME-$SHORT_SHA',
'--target', 'php_build',
'--cache-from', 'eu.gcr.io/$PROJECT_ID/acme-platform-core:latest',
'.'
]
waitFor: ['acme.platform.marketplace.checkout']
#timeout: 3000s
tags:
- "cloudbuild"
images: [
'eu.gcr.io/$PROJECT_ID/acme-platform-core:latest',
'eu.gcr.io/$PROJECT_ID/acme-platform-nginx:latest',
'eu.gcr.io/$PROJECT_ID/acme-platform-nginx:$BRANCH_NAME-$SHORT_SHA',
'eu.gcr.io/$PROJECT_ID/acme-platform-core:$BRANCH_NAME-$SHORT_SHA'
]