forked from andrewshawcare/docker-ecosystem-gocd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cruise-config.xml
111 lines (111 loc) · 4.43 KB
/
cruise-config.xml
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
<?xml version="1.0" encoding="utf-8"?>
<cruise xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cruise-config.xsd" schemaVersion="81">
<server artifactsdir="artifacts" agentAutoRegisterKey="123456789abcdef" commandRepositoryLocation="default" serverId="" />
<pipelines group="dockerEcosystem">
<pipeline name="docker-ecosystem-migration" template="docker">
<materials>
<git url="https://github.com/andrewshawcare/docker-ecosystem-migration.git" />
</materials>
</pipeline>
<pipeline name="docker-ecosystem-java-service" template="docker">
<materials>
<git url="https://github.com/andrewshawcare/docker-ecosystem-java-service.git" />
<pipeline pipelineName="docker-ecosystem-migration" stageName="push" materialName="docker-ecosystem-migration" />
</materials>
</pipeline>
<pipeline name="docker-ecosystem-node-service" template="docker">
<materials>
<git url="https://github.com/andrewshawcare/docker-ecosystem-node-service.git" />
<pipeline pipelineName="docker-ecosystem-migration" stageName="push" materialName="docker-ecosystem-migration" />
</materials>
</pipeline>
<pipeline name="docker-ecosystem-client" template="docker">
<materials>
<git url="https://github.com/andrewshawcare/docker-ecosystem-client.git" />
<pipeline pipelineName="docker-ecosystem-java-service" stageName="push" materialName="docker-ecosystem-java-service" />
<pipeline pipelineName="docker-ecosystem-node-service" stageName="push" materialName="docker-ecosystem-node-service" />
</materials>
</pipeline>
</pipelines>
<templates>
<pipeline name="docker">
<stage name="build" cleanWorkingDir="true">
<jobs>
<job name="build">
<environmentvariables>
<variable name="REGISTRY_HOST">
<value>localhost:5000</value>
</variable>
</environmentvariables>
<tasks>
<exec command="bash">
<arg>-c</arg>
<arg>docker build --tag "$REGISTRY_HOST/$GO_PIPELINE_NAME:$GO_REVISION" . &&
docker push "$REGISTRY_HOST/$GO_PIPELINE_NAME:$GO_REVISION"</arg>
<runif status="passed" />
</exec>
</tasks>
</job>
</jobs>
</stage>
<stage name="test" cleanWorkingDir="true">
<jobs>
<job name="test">
<environmentvariables>
<variable name="REGISTRY_HOST">
<value>localhost:5000</value>
</variable>
</environmentvariables>
<tasks>
<exec command="bash">
<arg>-c</arg>
<arg>(export IMAGE_TAG=$GO_REVISION; docker-compose pull &&
docker-compose run --rm $GO_PIPELINE_NAME test &&
docker-compose down --rmi local --volumes)</arg>
<runif status="passed" />
</exec>
</tasks>
</job>
</jobs>
</stage>
<stage name="push" cleanWorkingDir="true">
<jobs>
<job name="push">
<environmentvariables>
<variable name="REGISTRY_HOST">
<value>localhost:5000</value>
</variable>
</environmentvariables>
<tasks>
<exec command="bash">
<arg>-c</arg>
<arg>docker tag "$REGISTRY_HOST/$GO_PIPELINE_NAME:$GO_REVISION" "$REGISTRY_HOST/$GO_PIPELINE_NAME:latest" &&
docker push "$REGISTRY_HOST/$GO_PIPELINE_NAME:latest"</arg>
<runif status="passed" />
</exec>
</tasks>
</job>
</jobs>
</stage>
<stage name="deploy">
<jobs>
<job name="deploy">
<environmentvariables>
<variable name="REGISTRY_HOST">
<value>localhost:5000</value>
</variable>
</environmentvariables>
<tasks>
<exec command="bash">
<arg>-c</arg>
<arg>(export IMAGE_TAG=$GO_REVISION; docker-compose pull &&
docker-compose --project-name $GO_PIPELINE_NAME up -d)</arg>
<runif status="passed" />
</exec>
</tasks>
</job>
</jobs>
</stage>
</pipeline>
</templates>
</cruise>