@@ -24,131 +24,129 @@ stages:
24
24
pool :
25
25
vmImage : ubuntu-latest
26
26
steps :
27
+ - task : HelmInstaller@1
28
+ inputs :
29
+ helmVersionToInstall : " 3.7.0"
30
+ displayName : " tools - helm - install"
27
31
- task : DockerInstaller@0
28
- displayName : " Docker install"
32
+ displayName : " tools - docker - install"
29
33
inputs :
30
- dockerVersion : " 19.03.9"
31
-
34
+ dockerVersion : " 20.10.9"
32
35
- task : Docker@2
33
- displayName : " Docker login"
36
+ displayName : " tools - docker - login"
34
37
inputs :
35
38
containerRegistry : " Emberstack Docker Hub"
36
39
command : login
37
40
38
41
- script : |
39
42
mkdir -p artifacts/helm
40
43
workingDirectory: "$(Build.ArtifactStagingDirectory)"
41
- displayName: "Create Artifacts directories"
44
+ displayName: "artifacts - prepare directories"
42
45
43
- - task : HelmInstaller@1
44
- inputs :
45
- helmVersionToInstall : " 3.2.4"
46
- displayName : " Helm install"
47
46
48
47
- script : |
49
- cp README.md src/helm/azure-pipelines-agent/README.md
50
- displayName: "Import README in helm chart"
51
-
48
+ cp README.md src/helm/reflector/README.md
49
+ displayName: "helm - import README"
52
50
- script : |
53
51
helm package --destination $(Build.ArtifactStagingDirectory)/artifacts/helm --version $(Build.BuildNumber) --app-version $(Build.BuildNumber) src/helm/azure-pipelines-agent
54
- displayName: "Helm Package"
55
-
52
+ displayName: "helm - template chart"
56
53
- publish : " $(Build.ArtifactStagingDirectory)/artifacts/helm"
57
54
artifact : " helm"
58
- displayName : " Publish helm artifact "
55
+ displayName : " artifacts - publish - helm chart "
59
56
60
57
- script : |
61
58
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
62
59
docker buildx rm builder
63
60
docker buildx create --name builder --driver docker-container --use
64
61
docker buildx inspect --bootstrap
65
- docker buildx build --push --platform linux/amd64 -t $(imageRepository):build-$(Build.BuildNumber)-amd64 -f src/docker /Dockerfile src/docker
66
- docker buildx build --push --platform linux/arm -t $(imageRepository):build-$(Build.BuildNumber)-arm -f src/docker /Dockerfile src/docker
67
- docker buildx build --push --platform linux/arm64 -t $(imageRepository):build-$(Build.BuildNumber)-arm64 -f src/docker /Dockerfile src/docker
62
+ docker buildx build --push --platform linux/amd64 -t $(imageRepository):build-$(Build.BuildNumber)-amd64 -f src/ES.Kubernetes.Reflector /Dockerfile src/
63
+ docker buildx build --push --platform linux/arm -t $(imageRepository):build-$(Build.BuildNumber)-arm32v7 -f src/ES.Kubernetes.Reflector /Dockerfile src/
64
+ docker buildx build --push --platform linux/arm64 -t $(imageRepository):build-$(Build.BuildNumber)-arm64v8 -f src/ES.Kubernetes.Reflector /Dockerfile src/
68
65
docker pull $(imageRepository):build-$(Build.BuildNumber)-amd64
69
- docker pull $(imageRepository):build-$(Build.BuildNumber)-arm
70
- docker pull $(imageRepository):build-$(Build.BuildNumber)-arm64
71
- docker manifest create $(imageRepository):build-$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm $(imageRepository):build-$(Build.BuildNumber)-arm64
66
+ docker pull $(imageRepository):build-$(Build.BuildNumber)-arm32v7
67
+ docker pull $(imageRepository):build-$(Build.BuildNumber)-arm64v8
68
+ docker manifest create $(imageRepository):build-$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm32v7 $(imageRepository):build-$(Build.BuildNumber)-arm64v8
72
69
docker manifest inspect $(imageRepository):build-$(Build.BuildNumber)
73
70
docker manifest push $(imageRepository):build-$(Build.BuildNumber)
74
- displayName: "Build and push multi-arch Docker image"
75
-
76
- - stage : cd
77
- displayName : " CD"
78
- dependsOn : " ci"
79
- condition : and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'Manual'), in(variables['Build.SourceBranchName'], 'master'))
80
- jobs :
81
- - job : release
82
- displayName : " Release Job"
83
- pool :
84
- vmImage : ubuntu-latest
85
- variables :
86
- - group : " OpenSource.GitHub"
87
- steps :
88
- - checkout : none
89
-
90
- - download : current
91
- artifact : " helm"
92
- displayName : " Download helm artifact"
93
-
94
- - task : DockerInstaller@0
95
- displayName : " Docker install"
96
- inputs :
97
- dockerVersion : " 19.03.9"
98
-
99
- - task : Docker@2
100
- displayName : " Docker login"
101
- inputs :
102
- containerRegistry : " Emberstack Docker Hub"
103
- command : login
104
-
105
- - task : HelmInstaller@1
106
- inputs :
107
- helmVersionToInstall : " 3.1.1"
108
- displayName : " Helm install"
109
-
110
- - script : |
111
- docker pull $(imageRepository):build-$(Build.BuildNumber)-amd64
112
- docker pull $(imageRepository):build-$(Build.BuildNumber)-arm
113
- docker pull $(imageRepository):build-$(Build.BuildNumber)-arm64
114
- docker manifest create $(imageRepository):$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm $(imageRepository):build-$(Build.BuildNumber)-arm64
115
- docker manifest create $(imageRepository):latest $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm $(imageRepository):build-$(Build.BuildNumber)-arm64
116
- docker manifest push $(imageRepository):$(Build.BuildNumber)
117
- docker manifest push $(imageRepository):latest
118
- docker manifest push $(imageRepository):$(Build.BuildNumber)
119
- docker manifest push $(imageRepository):latest
120
- docker tag $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):$(Build.BuildNumber)-amd64
121
- docker tag $(imageRepository):build-$(Build.BuildNumber)-arm64 $(imageRepository):$(Build.BuildNumber)-arm64
122
- docker tag $(imageRepository):build-$(Build.BuildNumber)-arm $(imageRepository):$(Build.BuildNumber)-arm
123
- docker push $(imageRepository):$(Build.BuildNumber)-amd64
124
- docker push $(imageRepository):$(Build.BuildNumber)-arm
125
- docker push $(imageRepository):$(Build.BuildNumber)-arm64
126
- displayName: "Build and push multi-arch Docker image"
127
-
128
- - script : |
129
- git config --global user.email "$(emberstack-agent-email)"
130
- git config --global user.name "$(emberstack-agent-name)"
131
- git clone https://$(emberstack-agent-username):$(emberstack-agent-pat)@github.com/emberstack/helm-charts.git
132
-
133
- mkdir -p helm-charts/charts
134
- cp $(Pipeline.Workspace)/helm/azure-pipelines-agent-$(Build.BuildNumber).tgz helm-charts/charts
135
-
136
- cd helm-charts
137
- rm index.yaml
138
- helm repo index ./
139
- git add .
140
- git status
141
- git commit -m "Added azure-pipelines-agent-$(Build.BuildNumber).tgz"
142
- git push
143
- displayName: "Create chart release"
144
-
145
- - task : GitHubRelease@1
146
- displayName : " Create GitHub release"
147
- inputs :
148
- gitHubConnection : GitHub
149
- repositoryName : " EmberStack/docker-azure-pipelines-agent"
150
- tagSource : userSpecifiedTag
151
- tag : " v$(Build.BuildNumber)"
152
- title : " Release v$(Build.BuildNumber)"
153
- releaseNotesSource : inline
154
- releaseNotes : " The release process is automated."
71
+ displayName: "docker - build and publish"
72
+
73
+ - ${{ if eq(variables['Build.SourceBranchName'], 'main') }} :
74
+ - stage : cd
75
+ displayName : " CD"
76
+ dependsOn : " ci"
77
+ condition : and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'Manual'), in(variables['Build.SourceBranchName'], 'master'))
78
+ jobs :
79
+ - job : release
80
+ displayName : " Release"
81
+ pool :
82
+ vmImage : ubuntu-latest
83
+ variables :
84
+ - group : " OpenSource.GitHub"
85
+ steps :
86
+ - checkout : none
87
+
88
+
89
+ - task : HelmInstaller@1
90
+ inputs :
91
+ helmVersionToInstall : " 3.7.0"
92
+ displayName : " tools - helm - install"
93
+ - task : DockerInstaller@0
94
+ displayName : " tools - docker - install"
95
+ inputs :
96
+ dockerVersion : " 20.10.9"
97
+ - task : Docker@2
98
+ displayName : " tools - docker - login"
99
+ inputs :
100
+ containerRegistry : " Emberstack Docker Hub"
101
+ command : login
102
+
103
+
104
+ - download : current
105
+ artifact : " helm"
106
+ displayName : " artifacts - download - helm chart"
107
+
108
+
109
+ - script : |
110
+ docker pull $(imageRepository):build-$(Build.BuildNumber)-amd64
111
+ docker pull $(imageRepository):build-$(Build.BuildNumber)-arm32v7
112
+ docker pull $(imageRepository):build-$(Build.BuildNumber)-arm64v8
113
+ docker manifest create $(imageRepository):$(Build.BuildNumber) $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm32v7 $(imageRepository):build-$(Build.BuildNumber)-arm64v8
114
+ docker manifest create $(imageRepository):latest $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):build-$(Build.BuildNumber)-arm32v7 $(imageRepository):build-$(Build.BuildNumber)-arm64v8
115
+ docker manifest push $(imageRepository):$(Build.BuildNumber)
116
+ docker manifest push $(imageRepository):latest
117
+ docker manifest push $(imageRepository):$(Build.BuildNumber)
118
+ docker manifest push $(imageRepository):latest
119
+ docker tag $(imageRepository):build-$(Build.BuildNumber)-amd64 $(imageRepository):$(Build.BuildNumber)-amd64
120
+ docker tag $(imageRepository):build-$(Build.BuildNumber)-arm32v7 $(imageRepository):$(Build.BuildNumber)-arm32v7
121
+ docker tag $(imageRepository):build-$(Build.BuildNumber)-arm64v8 $(imageRepository):$(Build.BuildNumber)-arm64v8
122
+ docker push $(imageRepository):$(Build.BuildNumber)-amd64
123
+ docker push $(imageRepository):$(Build.BuildNumber)-arm32v7
124
+ docker push $(imageRepository):$(Build.BuildNumber)-arm64v8
125
+ displayName: "Build and push multi-arch Docker image"
126
+ - script : |
127
+ git config --global user.email "$(emberstack-agent-email)"
128
+ git config --global user.name "$(emberstack-agent-name)"
129
+ git clone https://$(emberstack-agent-username):$(emberstack-agent-pat)@github.com/emberstack/helm-charts.git
130
+
131
+ mkdir -p helm-charts/charts
132
+ cp $(Pipeline.Workspace)/helm/azure-pipelines-agent-$(Build.BuildNumber).tgz helm-charts/charts
133
+
134
+ cd helm-charts
135
+ rm index.yaml
136
+ helm repo index ./
137
+ git add .
138
+ git status
139
+ git commit -m "Added azure-pipelines-agent-$(Build.BuildNumber).tgz"
140
+ git push
141
+ displayName: "github - release - chart"
142
+
143
+ - task : GitHubRelease@1
144
+ displayName : " github - create release"
145
+ inputs :
146
+ gitHubConnection : GitHub
147
+ repositoryName : " EmberStack/docker-azure-pipelines-agent"
148
+ tagSource : userSpecifiedTag
149
+ tag : " v$(Build.BuildNumber)"
150
+ title : " Release v$(Build.BuildNumber)"
151
+ releaseNotesSource : inline
152
+ releaseNotes : " The release process is automated."
0 commit comments