-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
86 lines (83 loc) · 2.86 KB
/
azure-pipelines.yml
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
variables:
agent-pool: 'Docker-pool'
isPrimary: $[eq(variables['Build.SourceBranch'], 'refs/heads/main')]
srcDir: '$(System.DefaultWorkingDirectory)/src'
GO111MODULE: 'auto'
stages:
- stage: Tests
displayName: 'Tests'
jobs:
- job: Tests
pool:
vmImage: 'ubuntu-latest'
steps:
- task: GoTool@0
inputs:
version: '1.23.1'
- bash: |
cd src/
go test $(go list ./... | grep -v '/functional_tests')
displayName: 'Run unit tests'
- bash: |
docker compose -f azure_pipelines/docker-compose.functional_tests.yml up -d
displayName: 'Docker compose postgres'
- task: Go@0
inputs:
command: 'test'
arguments: 'github.com/dfds/confluent-gateway/functional_tests'
workingDirectory: '$(srcDir)'
displayName: 'Functional tests'
- stage: CD
displayName: 'Build, deliver deployment artifacts'
jobs:
- job: CD
pool:
vmImage: 'ubuntu-latest'
steps:
- task: GoTool@0
inputs:
version: '1.23.1'
- bash: |
make clean-restore-build
displayName: 'Build'
- bash: |
chmod +x ./tools/push-container.sh
make docker-build-push BUILD_NUMBER="$(Build.BuildNumber)"
env:
AWS_ACCESS_KEY_ID: $(AWS_ACCESS_KEY_ID)
AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY)
ALLOW_PUSH_CONTAINER: $(ALLOW_PUSH_CONTAINER)
displayName: 'Push Docker Images'
condition: succeeded()
- bash: |
make manifests BUILD_NUMBER="$(Build.BuildNumber)"
displayName: 'Create k8s manifests'
- task: PublishBuildArtifacts@1
displayName: "Publish Artifact: manifests"
inputs:
PathtoPublish: '$(System.DefaultWorkingDirectory)/.output/manifests'
ArtifactName: manifests
- stage: Deploy
condition: and(succeeded(), eq(variables.isPrimary, true))
dependsOn: CD
displayName: 'Deployments'
jobs:
- job: Production
pool:
vmImage: 'ubuntu-latest'
steps:
- checkout: none
- download: current
artifact: manifests
displayName: 'Download build artifacts'
- publish: '$(Pipeline.Workspace)/manifests/'
artifact: deployed-manifests
displayName: 'Publish manifests'
- task: Kubernetes@1
displayName: kubectl apply
inputs:
connectionType: Kubernetes Service Connection
kubernetesServiceEndpoint: Kubernetes-Hellman-selfservice-deploy
cwd: '$(Pipeline.Workspace)/manifests/'
command: apply
arguments: -f .