Skip to content

Commit da18a8a

Browse files
authored
Provide CI build (#9)
* Provide basic ci for orders * Cleanup * Update trigger & PR * Fix stage name for orders * Add shipments & products + branch policy * No dependencies * Include monolith Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com> * Don't push for PRs * Fix condition for pushing Docker images Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com>
1 parent b544c2f commit da18a8a

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

.azure-devops/ci.yaml

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
resources:
2+
- repo: self
3+
trigger:
4+
- master
5+
pr:
6+
branches:
7+
include:
8+
- master
9+
paths:
10+
include:
11+
- src/*
12+
- .azure-devops/ci.yaml
13+
variables:
14+
DotNet.SDK.Version: '2.2.300'
15+
Images.Orders.Name: 'coditeu/microservices-with-api-management-services-order'
16+
Images.Products.Name: 'coditeu/microservices-with-api-management-services-product'
17+
Images.Shipments.Name: 'coditeu/microservices-with-api-management-services-shipment'
18+
stages:
19+
- stage: Monolith
20+
displayName: 'Monolith'
21+
dependsOn: []
22+
jobs:
23+
- job: Build
24+
displayName: 'Build and Push Product Docker image'
25+
pool:
26+
vmImage: ubuntu-16.04
27+
steps:
28+
- task: DotNetCoreInstaller@0
29+
displayName: 'Install .NET SDK'
30+
inputs:
31+
version: '$(DotNet.SDK.Version)'
32+
- task: DotNetCoreCLI@1
33+
displayName: Build
34+
inputs:
35+
projects: './src/monolith/Demo.sln'
36+
arguments: '--configuration Release'
37+
- stage: Orders
38+
displayName: 'Order Service'
39+
dependsOn: []
40+
jobs:
41+
- job: Build
42+
displayName: 'Build and Push Order Docker image'
43+
pool:
44+
vmImage: ubuntu-16.04
45+
steps:
46+
- task: DotNetCoreInstaller@0
47+
displayName: 'Install .NET SDK'
48+
inputs:
49+
version: '$(DotNet.SDK.Version)'
50+
- task: Docker@1
51+
displayName: 'Build Docker image'
52+
inputs:
53+
dockerFile: ./src/microservices/Demo.Microservices.Orders.API/Dockerfile
54+
imageName: '$(Images.Orders.Name)'
55+
includeLatestTag: true
56+
useDefaultContext: false
57+
buildContext: ./src/microservices/
58+
- task: Docker@1
59+
displayName: 'Push ''latest'' to Docker Hub'
60+
inputs:
61+
containerregistrytype: 'Container Registry'
62+
dockerRegistryEndpoint: 'Docker Hub'
63+
command: 'Push an image'
64+
imageName: '$(Images.Orders.Name):latest'
65+
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
66+
- stage: Products
67+
displayName: 'Product Service'
68+
dependsOn: []
69+
jobs:
70+
- job: Build
71+
displayName: 'Build and Push Product Docker image'
72+
pool:
73+
vmImage: ubuntu-16.04
74+
steps:
75+
- task: DotNetCoreInstaller@0
76+
displayName: 'Install .NET SDK'
77+
inputs:
78+
version: '$(DotNet.SDK.Version)'
79+
- task: Docker@1
80+
displayName: 'Build Docker image'
81+
inputs:
82+
dockerFile: ./src/microservices/Demo.Microservices.Products.API/Dockerfile
83+
imageName: '$(Images.Products.Name)'
84+
includeLatestTag: true
85+
useDefaultContext: false
86+
buildContext: ./src/microservices/
87+
- task: Docker@1
88+
displayName: 'Push ''latest'' to Docker Hub'
89+
inputs:
90+
containerregistrytype: 'Container Registry'
91+
dockerRegistryEndpoint: 'Docker Hub'
92+
command: 'Push an image'
93+
imageName: '$(Images.Products.Name):latest'
94+
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
95+
- stage: Shipments
96+
displayName: 'Shipment Service'
97+
dependsOn: []
98+
jobs:
99+
- job: Build
100+
displayName: 'Build and Push Shipment Docker image'
101+
pool:
102+
vmImage: ubuntu-16.04
103+
steps:
104+
- task: DotNetCoreInstaller@0
105+
displayName: 'Install .NET SDK'
106+
inputs:
107+
version: '$(DotNet.SDK.Version)'
108+
- task: Docker@1
109+
displayName: 'Build Docker image'
110+
inputs:
111+
dockerFile: ./src/microservices/Demo.Microservices.Shipments.API/Dockerfile
112+
imageName: '$(Images.Shipments.Name)'
113+
includeLatestTag: true
114+
useDefaultContext: false
115+
buildContext: ./src/microservices/
116+
- task: Docker@1
117+
displayName: 'Push ''latest'' to Docker Hub'
118+
inputs:
119+
containerregistrytype: 'Container Registry'
120+
dockerRegistryEndpoint: 'Docker Hub'
121+
command: 'Push an image'
122+
imageName: '$(Images.Shipments.Name):latest'
123+
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')

0 commit comments

Comments
 (0)