diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ad2dc7d25eda5fccfccb514725e16dc08970bc15..306fd11e9affc5811ee641e1245418749098793f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,9 @@ variables: RESOURCE: cern-search-rest-api ### OpenShift namespace and server values NAMESPACE: cern-search-master + NAMESPACE_DEV: test-cern-search-master OPENSHIFT_SERVER: https://openshift.cern.ch + OPENSHIFT_SERVER_DEV: https://openshift-dev.cern.ch ### By default, there are 6 stages that we may use: ### Feel free to adapt this to your specific case. @@ -147,8 +149,8 @@ build_test_version_manual: BUILD_ARG: build_env=dev TO: ${CI_REGISTRY_IMAGE}:$CI_COMMIT_REF_SLUG -# If a new tag is pushed it needs to be referenced into the ImageStream -tag_image_test: +### Create tag in OpenShift. +tag_image_merge_request_prod: extends: .tag_image only: refs: @@ -161,8 +163,24 @@ tag_image_test: TAG: $CI_COMMIT_REF_SLUG TOKEN: ${SERVICE_ACCOUNT_TOKEN_PROD} +### Create tag in OpenShift DEV. +tag_image_merge_request_dev: + extends: .tag_image + only: + refs: + - merge_requests + environment: + name: branch/$CI_COMMIT_REF_SLUG + when: manual + variables: + CI_REGISTRY_TAG: $CI_COMMIT_REF_SLUG + TAG: $CI_COMMIT_REF_SLUG + TOKEN: ${SERVICE_ACCOUNT_TOKEN_DEV} + NAMESPACE: ${NAMESPACE_DEV} + OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV} + # Import image into OpenShift. -import_image_test: +import_image_merge_request_prod: extends: .import_image only: refs: @@ -174,6 +192,21 @@ import_image_test: TAG: $CI_COMMIT_REF_SLUG TOKEN: ${SERVICE_ACCOUNT_TOKEN_PROD} +# Import image into OpenShift DEV. +import_image_merge_request_dev: + extends: .import_image + only: + refs: + - merge_requests + environment: + name: branch/$CI_COMMIT_REF_SLUG + when: manual + variables: + TAG: $CI_COMMIT_REF_SLUG + TOKEN: ${SERVICE_ACCOUNT_TOKEN_DEV} + NAMESPACE: ${NAMESPACE_DEV} + OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV} + ###################################################### ##################### Dev branch ##################### build_dev_version: @@ -184,7 +217,7 @@ build_dev_version: BUILD_ARG: build_env=dev ### Import image into OpenShift. -import_image_dev_test: +import_image_dev_branch_prod: extends: .import_image only: - dev @@ -194,6 +227,18 @@ import_image_dev_test: TAG: latest TOKEN: ${SERVICE_ACCOUNT_TOKEN_PROD} +### Import image into OpenShift DEV +import_image_dev_branch_dev: + extends: .import_image + only: + - dev + environment: + name: staging + variables: + TAG: latest + TOKEN: ${SERVICE_ACCOUNT_TOKEN_DEV} + NAMESPACE: ${NAMESPACE_DEV} + OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV} ###################################################### ####################### Tags ######################## @@ -204,6 +249,7 @@ build_tagged_version: variables: TO: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG} +### Create tag in OpenShift. tag_image_prod: extends: .tag_image environment: @@ -213,6 +259,19 @@ tag_image_prod: TAG: ${CI_COMMIT_TAG} TOKEN: ${SERVICE_ACCOUNT_TOKEN_PROD} +### Create tag in OpenShift DEV. +tag_image_dev: + extends: .tag_image + environment: + name: production + variables: + CI_REGISTRY_TAG: ${CI_COMMIT_TAG} + TAG: ${CI_COMMIT_TAG} + TOKEN: ${SERVICE_ACCOUNT_TOKEN_DEV} + NAMESPACE: ${NAMESPACE_DEV} + OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV} + +### Import image into OpenShift. import_tagged_image_prod: extends: .import_image environment: @@ -223,6 +282,20 @@ import_tagged_image_prod: TAG: ${CI_COMMIT_TAG} TOKEN: ${SERVICE_ACCOUNT_TOKEN_PROD} +### Import image into OpenShift DEV. +import_tagged_image_dev: + extends: .import_image + environment: + name: production + only: + - tags + variables: + TAG: ${CI_COMMIT_TAG} + TOKEN: ${SERVICE_ACCOUNT_TOKEN_DEV} + NAMESPACE: ${NAMESPACE_DEV} + OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV} + +### Deploy stable into OpenShift. deploy_production: extends: .tag_image stage: deploy @@ -233,3 +306,17 @@ deploy_production: CI_REGISTRY_TAG: ${CI_COMMIT_TAG} TAG: stable TOKEN: ${SERVICE_ACCOUNT_TOKEN_PROD} + +### Deploy stable into OpenShift DEV. +deploy_dev: + extends: .tag_image + stage: deploy + environment: + name: production + when: manual + variables: + CI_REGISTRY_TAG: ${CI_COMMIT_TAG} + TAG: stable + TOKEN: ${SERVICE_ACCOUNT_TOKEN_DEV} + NAMESPACE: ${NAMESPACE_DEV} + OPENSHIFT_SERVER: ${OPENSHIFT_SERVER_DEV}