forked from Valmach/kubernetes-hackfest
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbrigade.js
More file actions
58 lines (47 loc) · 1.92 KB
/
brigade.js
File metadata and controls
58 lines (47 loc) · 1.92 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
const { events, Job, Group } = require('brigadier')
events.on("push", (brigadeEvent, project) => {
// setup variables
var acrServer = project.secrets.acrServer
var acrName = project.secrets.acrName
var azServicePrincipal = project.secrets.appId
var azClientSecret = project.secrets.password
var azTenant = project.secrets.tenant
var gitPayload = JSON.parse(brigadeEvent.payload)
var today = new Date()
var gitSHA = brigadeEvent.revision.commit.substr(0,7)
var branch = getBranch(gitPayload)
var imageTag = branch + "-" + gitSHA
console.log(`==> gitHub webook on ${branch} branch with commit ID ${gitSHA}`)
// setup brigade job to build container images
var acr = new Job("job-runner-acr-builder")
acr.storage.enabled = false
acr.image = "microsoft/azure-cli:2.0.38"
acr.tasks = [
`az login --service-principal -u ${azServicePrincipal} -p ${azClientSecret} --tenant ${azTenant}`,
`az acr build -t hackfest/data-api:${imageTag} -r ${acrName} ./src/app/data-api`,
`az acr build -t hackfest/flights-api:${imageTag} -r ${acrName} ./src/app/flights-api`,
`az acr build -t hackfest/service-tracker-ui:${imageTag} -r ${acrName} ./src/app/service-tracker-ui`
]
// setup brigade job for helm deployment
var helm = new Job("job-runner-helm")
helm.storage.enabled = false
helm.image = "lachlanevenson/k8s-helm:v3.0.2"
helm.tasks = [
`helm upgrade --install service-tracker-ui ./src/charts/service-tracker-ui --namespace hackfest --set deploy.imageTag=${imageTag}`
]
// create a brigade group and run
var pipeline = new Group()
pipeline.add(acr)
pipeline.add(helm)
pipeline.runEach()
})
events.on("after", (event, proj) => {
console.log("brigade pipeline finished successfully")
})
function getBranch (p) {
if (p.ref) {
return p.ref.substring(11)
} else {
return "PR"
}
}