1
1
stages :
2
2
- test
3
3
- docker-build
4
- - oc-tag
4
+ - deploy
5
5
6
6
# Use the acc-py-devtools templates found at
7
7
# https://gitlab.cern.ch/-/ide/project/acc-co/devops/python/acc-py-devtools/blob/master/-/acc_py_devtools/templates/gitlab-ci/python.yml.
@@ -18,6 +18,8 @@ variables:
18
18
.test-base :
19
19
image : registry.cern.ch/docker.io/library/python:${PY_VERSION}
20
20
stage : test
21
+ except :
22
+ - live/caimira-test # do not run tests on live/caimira-test branch
21
23
22
24
.test-run :
23
25
extends :
@@ -62,11 +64,7 @@ test-cern-caimira-py39:
62
64
63
65
.test_openshift_config :
64
66
stage : test
65
- rules :
66
- - if : ' $OC_TOKEN && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $BRANCH'
67
- allow_failure : true # The branch must represent what is deployed. FIXME: change to true because of a diff between ConfigMaps
68
- - if : ' $OC_TOKEN && $CI_MERGE_REQUEST_EVENT_TYPE != "detached"'
69
- allow_failure : true # Anything other than the branch may fail without blocking the pipeline.
67
+ allow_failure : true
70
68
image : registry.cern.ch/docker.io/mambaorg/micromamba
71
69
before_script :
72
70
- micromamba create --yes -p $HOME/env python=3.9 ruamel.yaml wget -c conda-forge
@@ -86,6 +84,9 @@ test-cern-caimira-py39:
86
84
paths :
87
85
- ./app-config/openshift/${CAIMIRA_INSTANCE}/actual
88
86
- ./app-config/openshift/${CAIMIRA_INSTANCE}/expected
87
+ only :
88
+ - master
89
+ - live/caimira-test # do not run tests on live/caimira-test branch
89
90
90
91
check_openshift_config_test :
91
92
extends : .test_openshift_config
@@ -108,6 +109,7 @@ check_openshift_config_test:
108
109
# ###################################################################################################
109
110
# Build docker images
110
111
112
+ # base
111
113
.docker-build :
112
114
stage : docker-build
113
115
image :
@@ -116,6 +118,7 @@ check_openshift_config_test:
116
118
name : gcr.io/kaniko-project/executor:debug
117
119
entrypoint : [""]
118
120
script :
121
+ - echo "Building image for ${CI_COMMIT_REF_NAME} branch with tag ${IMAGE_TAG}"
119
122
# Prepare Kaniko configuration file
120
123
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
121
124
- echo "Building ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:latest Docker image..."
@@ -124,67 +127,95 @@ check_openshift_config_test:
124
127
# Print the full registry path of the pushed image
125
128
- echo "Image pushed successfully to ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${IMAGE_TAG}"
126
129
127
- .docker-build-live-test :
130
+ .docker-build-auth-service :
128
131
variables :
129
- IMAGE_TAG : caimira-test-latest
132
+ IMAGE_NAME : auth-service
133
+ DOCKERFILE_DIRECTORY : app-config/auth-service
134
+ DOCKER_CONTEXT_DIRECTORY : app-config/auth-service
130
135
extends : .docker-build
131
- before_script :
132
- - echo "Branch is $CI_COMMIT_REF_NAME"
133
- - echo "Building image for live/caimira-test branch with tag ${IMAGE_TAG}"
136
+
137
+ .docker-build-calculator-app :
138
+ variables :
139
+ IMAGE_NAME : calculator-app
140
+ DOCKERFILE_DIRECTORY : app-config/calculator-app
141
+ DOCKER_CONTEXT_DIRECTORY : " "
142
+ extends : .docker-build
143
+
144
+ # on push to live/caimira-test
145
+ .docker-build-test :
146
+ variables :
147
+ IMAGE_TAG : caimira-test-latest
148
+
149
+ docker-build-auth-service-test :
150
+ extends :
151
+ - .docker-build-test
152
+ - .docker-build-auth-service
153
+ only :
154
+ - live/caimira-test
155
+
156
+ docker-build-calculator-app-test :
157
+ extends :
158
+ - .docker-build-test
159
+ - .docker-build-calculator-app
134
160
only :
135
161
- live/caimira-test
136
162
163
+ # on release
137
164
.docker-build-release :
138
- extends : .docker-build
139
165
before_script :
140
- - echo "Tag is $CI_COMMIT_REF_NAME"
141
166
# Extract version number without 'v' prefix as IMAGE_TAG
142
167
- IMAGE_TAG=$(echo "$CI_COMMIT_REF_NAME" | sed 's/^v//')
143
168
- echo "Version is $IMAGE_TAG"
144
- only :
145
- - tags
146
169
147
- build-auth-service-image :
170
+ docker- build-auth-service-release :
148
171
extends :
149
- - .docker-build-live-test
150
172
- .docker-build-release
151
- variables :
152
- IMAGE_NAME : auth-service
153
- DOCKERFILE_DIRECTORY : app-config/auth-service
154
- DOCKER_CONTEXT_DIRECTORY : app-config/auth-service
173
+ - .docker-build-auth-service
174
+ only :
175
+ - tag
155
176
156
- build-calculator-app-image :
177
+ docker- build-calculator-app-release :
157
178
extends :
158
- - .docker-build-live-test
159
179
- .docker-build-release
160
- variables :
161
- IMAGE_NAME : calculator-app
162
- DOCKERFILE_DIRECTORY : app-config/calculator-app
163
- DOCKER_CONTEXT_DIRECTORY : " "
180
+ - .docker-build-calculator-app
181
+ only :
182
+ - tag
164
183
165
184
# ###################################################################################################
166
- # Link build Docker images OpenShift <-> GitLab registry
167
-
168
- .link_docker_images_with_gitlab_registry :
169
- stage : oc-tag
170
- image : gitlab-registry.cern.ch/paas-tools/openshift-client:latest
185
+ # Deploy to OpenShift
186
+ .deploy :
187
+ stage : deploy
188
+ image : gitlab-registry.cern.ch/paas-tools/openshift-client
171
189
variables :
172
- OC_PROJECT : " caimira-test"
173
- OC_TOKEN : ${OPENSHIFT_CAIMIRA_TEST_DEPLOY_TOKEN}
174
190
IMAGE_TAG : caimira-test-latest
191
+ OPENSHIFT_SERVER : https://api.paas.okd.cern.ch
192
+ OPENSHIFT_PROJECT : caimira-test
175
193
script :
176
- - oc tag --source=docker ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${IMAGE_TAG} ${IMAGE_NAME}:latest --token ${OC_TOKEN} --server=https://api.paas.okd.cern.ch -n ${OC_PROJECT}
194
+ - echo "Deploying ${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${IMAGE_TAG} to OpenShift"
195
+ - oc login $OPENSHIFT_SERVER --token=$OPENSHIFT_CAIMIRA_TEST_DEPLOY_TOKEN
196
+ - oc project $OPENSHIFT_PROJECT
197
+ - oc set image dc/$OPENSHIFT_DEPLOYMENT $OPENSHIFT_CONTAINER_NAME=${CI_REGISTRY_IMAGE}/${IMAGE_NAME}:${IMAGE_TAG}
198
+ - oc rollout status dc/$OPENSHIFT_DEPLOYMENT
177
199
only :
178
- - live/caimira-test # for prod, we want to manually deploy the tag that we need
200
+ - live/caimira-test
179
201
180
- link_auth-service_with_gitlab_registry :
181
- extends :
182
- - .link_docker_images_with_gitlab_registry
202
+ deploy-auth-service-test :
203
+ extends : .deploy
183
204
variables :
184
205
IMAGE_NAME : auth-service
206
+ OPENSHIFT_DEPLOYMENT : auth-service
207
+ OPENSHIFT_CONTAINER_NAME : auth-service
185
208
186
- link_calculator-app_with_gitlab_registry :
187
- extends :
188
- - .link_docker_images_with_gitlab_registry
209
+ deploy-calculator-app-test :
210
+ extends : .deploy
211
+ variables :
212
+ IMAGE_NAME : calculator-app
213
+ OPENSHIFT_DEPLOYMENT : calculator-app
214
+ OPENSHIFT_CONTAINER_NAME : calculator-app
215
+
216
+ deploy-calculator-open-app-test :
217
+ extends : .deploy
189
218
variables :
190
219
IMAGE_NAME : calculator-app
220
+ OPENSHIFT_DEPLOYMENT : calculator-open-app
221
+ OPENSHIFT_CONTAINER_NAME : calculator-open-app
0 commit comments