diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0765485415f8e2f0c2fd081aedba78478adec8bd..e504560c1f8eb4404e7fb74f1c766866d854974e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,9 +1,17 @@
+variables:
+ NAMESPACE_DEV: test-notifications-service
+ OPENSHIFT_SERVER_DEV: https://openshift-dev.cern.ch
+ BUILD_ENV_DEV: dev
+ DEV_TAG: dev
+ RESOURCE: notifications-consumer-image-stream
+
stages:
- Build_base
- Check_base
- Test
- Build
-
+ - Tag_Image
+ - Import_Image
.build:
stage: Build
@@ -12,6 +20,20 @@ stages:
script:
- "echo 'Building docker image'"
+# If a new tag is pushed it needs to be referenced into the ImageStream
+.tag_image:
+ stage: Tag_Image
+ image: gitlab-registry.cern.ch/paas-tools/openshift-client:latest
+ script:
+ - oc tag --source=docker ${CI_REGISTRY_IMAGE}:${CI_REGISTRY_TAG} ${RESOURCE}:${TAG} --token=${TOKEN} --server=${OPENSHIFT_SERVER} -n ${NAMESPACE}
+
+# Import image to OpenShift.
+.import_image:
+ stage: Import_Image
+ image: gitlab-registry.cern.ch/paas-tools/openshift-client:latest
+ script:
+ - oc import-image ${RESOURCE}:${TAG} --token=${TOKEN} --server=${OPENSHIFT_SERVER} -n ${NAMESPACE}
+
# Lint
lint:
image: docker:19.03.12
@@ -68,11 +90,20 @@ build:
extends: .build
variables:
TO: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA}
+ rules:
+ - if: $CI_COMMIT_BRANCH == 'master'
+ - when: never
+
+# Build MR image and store it in the registry.
+build_test_image:
+ extends: .build
+ variables:
+ TO: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}
rules:
- if: $CI_MERGE_REQUEST_ID
when: manual
allow_failure: true
- - if: $CI_COMMIT_BRANCH == 'master'
+ - when: never
# Build dev image and store it in the registry.
build_dev_image:
@@ -81,6 +112,7 @@ build_dev_image:
TO: ${CI_REGISTRY_IMAGE}:dev
rules:
- if: $CI_COMMIT_BRANCH == 'master'
+ - when: never
# Build tagged image and store it in the registry.
build_tagged_image:
@@ -89,3 +121,95 @@ build_tagged_image:
TO: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}
rules:
- if: $CI_COMMIT_TAG
+ - when: never
+
+# Create tag for MR image in OpenShift DEV.
+tag_test_image_dev:
+ extends: .tag_image
+ environment:
+ name: branch/$CI_COMMIT_REF_SLUG
+ variables:
+ CI_REGISTRY_TAG: $CI_COMMIT_REF_SLUG
+ TAG: $CI_COMMIT_REF_SLUG
+ TOKEN: ${OPENSHIFT_DEV_TOKEN}
+ NAMESPACE: ${NAMESPACE_DEV}
+ OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+ rules:
+ - if: $CI_MERGE_REQUEST_ID
+ when: manual
+ allow_failure: true
+ - when: never
+
+# Create tag for dev image in OpenShift DEV.
+tag_dev_image_dev:
+ extends: .tag_image
+ environment:
+ name: dev
+ variables:
+ CI_REGISTRY_TAG: ${DEV_TAG}
+ TAG: ${DEV_TAG}
+ TOKEN: ${OPENSHIFT_DEV_TOKEN}
+ NAMESPACE: ${NAMESPACE_DEV}
+ OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+ rules:
+ - if: $CI_COMMIT_BRANCH == 'master'
+ - when: never
+
+# Create tag for tagged image in OpenShift DEV.
+tag_tagged_image_dev:
+ extends: .tag_image
+ environment:
+ name: dev
+ variables:
+ CI_REGISTRY_TAG: $CI_COMMIT_TAG
+ TAG: $CI_COMMIT_TAG
+ TOKEN: ${OPENSHIFT_DEV_TOKEN}
+ NAMESPACE: ${NAMESPACE_DEV}
+ OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+ rules:
+ - if: $CI_COMMIT_TAG
+ - when: never
+
+# Import MR image into OpenShift DEV.
+import_test_image_dev:
+ extends: .import_image
+ environment:
+ name: branch/$CI_COMMIT_REF_SLUG
+ variables:
+ TAG: $CI_COMMIT_REF_SLUG
+ TOKEN: ${OPENSHIFT_DEV_TOKEN}
+ NAMESPACE: ${NAMESPACE_DEV}
+ OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+ rules:
+ - if: $CI_MERGE_REQUEST_ID
+ when: manual
+ allow_failure: true
+ - when: never
+
+# Import dev image into OpenShift DEV.
+import_dev_image_dev:
+ extends: .import_image
+ environment:
+ name: dev
+ variables:
+ TAG: ${DEV_TAG}
+ TOKEN: ${OPENSHIFT_DEV_TOKEN}
+ NAMESPACE: ${NAMESPACE_DEV}
+ OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+ rules:
+ - if: $CI_COMMIT_BRANCH == 'master'
+ - when: never
+
+# Import tagged image into OpenShift DEV.
+import_tagged_image_dev:
+ extends: .import_image
+ environment:
+ name: dev
+ variables:
+ TAG: $CI_COMMIT_TAG
+ TOKEN: ${OPENSHIFT_DEV_TOKEN}
+ NAMESPACE: ${NAMESPACE_DEV}
+ OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}
+ rules:
+ - if: $CI_COMMIT_TAG
+ - when: never