Commit 493b11c9 authored by Louis Gesbert's avatar Louis Gesbert
Browse files

CI: rewrite to test changes to gitlab-deployments

parent fcc8d8f4
stages:
- build
- image
- review
- deploy
- cleanup
include:
- project: 'OCamlPro/gitlab-deployments'
ref: testing
file: deploy.yml
# Define some conditions to run the whole pipeline
workflow:
rules:
- if: $CI_MERGE_REQUEST_ID # Run on MRs
- if: $CI_COMMIT_TAG # Run on tags
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run on master
- if: $CI_COMMIT_BRANCH == 'test-marv'
# Customize the build rules and the artifacts here
......@@ -34,17 +29,6 @@ build:
paths:
- www.tar.gz
include:
- project: 'OCamlPro/gitlab-deployments'
ref: master
file: deploy.yml
- local: marvdepl.gitlab-ci.yml
variables:
CI_APPLICATION_REPOSITORY: "$CI_REGISTRY_IMAGE"
CI_APPLICATION_TAG: "$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA"
HELM_UPGRADE_EXTRA_ARGS: "--set service.internalPort=8080"
# Builds and pushes the Docker image using Kaniko
make-image:
extends: .make-image # defined in deploy.yml
......
variables:
AUTO_DEPLOY_IMAGE_VERSION: 'v2.17.0'
.auto-deploy:
image: "registry.gitlab.com/gitlab-org/cluster-integration/auto-deploy-image:${AUTO_DEPLOY_IMAGE_VERSION}"
dependencies: []
review:
extends: .auto-deploy
stage: review
script:
- auto-deploy check_kube_domain
- auto-deploy download_chart
- auto-deploy use_kube_context || true
- auto-deploy ensure_namespace
- auto-deploy initialize_tiller
- auto-deploy create_secret
- auto-deploy deploy
- auto-deploy persist_environment_url
environment:
name: marv/$CI_COMMIT_REF_NAME
url: http://$CI_PROJECT_ID-$CI_ENVIRONMENT_SLUG.$KUBE_INGRESS_BASE_DOMAIN
on_stop: stop_review
artifacts:
paths: [environment_url.txt, tiller.log]
when: always
rules:
- if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
when: never
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
when: never
- if: '$REVIEW_DISABLED'
when: never
- if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH'
stop_review:
extends: .auto-deploy
stage: cleanup
variables:
GIT_STRATEGY: none
script:
- auto-deploy use_kube_context || true
- auto-deploy initialize_tiller
- auto-deploy delete
environment:
name: marv/$CI_COMMIT_REF_NAME
action: stop
allow_failure: true
rules:
- if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
when: never
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
when: never
- if: '$REVIEW_DISABLED'
when: never
- if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH'
when: manual
# # Staging deploys are disabled by default since
# # continuous deployment to production is enabled by default
# # If you prefer to automatically deploy to staging and
# # only manually promote to production, enable this job by setting
# # STAGING_ENABLED.
# staging:
# extends: .auto-deploy
# stage: staging
# script:
# - auto-deploy check_kube_domain
# - auto-deploy download_chart
# - auto-deploy use_kube_context || true
# - auto-deploy ensure_namespace
# - auto-deploy initialize_tiller
# - auto-deploy create_secret
# - auto-deploy deploy
# environment:
# name: staging
# url: http://$CI_PROJECT_PATH_SLUG-staging.$KUBE_INGRESS_BASE_DOMAIN
# rules:
# - if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
# when: never
# - if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
# when: never
# - if: '$STAGING_ENABLED'
# # Canaries are disabled by default, but if you want them,
# # and know what the downsides are, you can enable this by setting
# # CANARY_ENABLED.
# canary:
# extends: .auto-deploy
# stage: canary
# allow_failure: true
# script:
# - auto-deploy check_kube_domain
# - auto-deploy download_chart
# - auto-deploy use_kube_context || true
# - auto-deploy ensure_namespace
# - auto-deploy initialize_tiller
# - auto-deploy create_secret
# - auto-deploy deploy canary 50
# environment:
# name: production
# url: http://$CI_PROJECT_PATH_SLUG.$KUBE_INGRESS_BASE_DOMAIN
# rules:
# - if: '$CI_DEPLOY_FREEZE != null'
# when: never
# - if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
# when: never
# - if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
# when: never
# - if: '$CANARY_ENABLED'
# when: manual
# .production: &production_template
# extends: .auto-deploy
# stage: production
# script:
# - auto-deploy check_kube_domain
# - auto-deploy download_chart
# - auto-deploy use_kube_context || true
# - auto-deploy ensure_namespace
# - auto-deploy initialize_tiller
# - auto-deploy create_secret
# - auto-deploy deploy
# - auto-deploy delete canary
# - auto-deploy persist_environment_url
# environment:
# name: production
# url: http://$CI_PROJECT_PATH_SLUG.$KUBE_INGRESS_BASE_DOMAIN
# artifacts:
# paths: [environment_url.txt, tiller.log]
# when: always
# production:
# <<: *production_template
# rules:
# - if: '$CI_DEPLOY_FREEZE != null'
# when: never
# - if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
# when: never
# - if: '$STAGING_ENABLED'
# when: never
# - if: '$CANARY_ENABLED'
# when: never
# - if: '$INCREMENTAL_ROLLOUT_ENABLED'
# when: never
# - if: '$INCREMENTAL_ROLLOUT_MODE'
# when: never
# - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
# production_manual:
# <<: *production_template
# allow_failure: false
# rules:
# - if: '$CI_DEPLOY_FREEZE != null'
# when: never
# - if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
# when: never
# - if: '$INCREMENTAL_ROLLOUT_ENABLED'
# when: never
# - if: '$INCREMENTAL_ROLLOUT_MODE'
# when: never
# - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $STAGING_ENABLED'
# when: manual
# - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CANARY_ENABLED'
# when: manual
# # This job implements incremental rollout on for every push to the default branch.
# .rollout: &rollout_template
# extends: .auto-deploy
# script:
# - auto-deploy check_kube_domain
# - auto-deploy download_chart
# - auto-deploy use_kube_context || true
# - auto-deploy ensure_namespace
# - auto-deploy initialize_tiller
# - auto-deploy create_secret
# - auto-deploy deploy canary $ROLLOUT_PERCENTAGE
# - auto-deploy persist_environment_url
# environment:
# name: production
# url: http://$CI_PROJECT_PATH_SLUG.$KUBE_INGRESS_BASE_DOMAIN
# artifacts:
# paths: [environment_url.txt, tiller.log]
# when: always
# .manual_rollout_template: &manual_rollout_template
# <<: *rollout_template
# stage: production
# resource_group: production
# allow_failure: true
# rules:
# - if: '$CI_DEPLOY_FREEZE != null'
# when: never
# - if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
# when: never
# - if: '$INCREMENTAL_ROLLOUT_MODE == "timed"'
# when: never
# - if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
# when: never
# # $INCREMENTAL_ROLLOUT_ENABLED is for compatibility with pre-GitLab 11.4 syntax
# - if: '$INCREMENTAL_ROLLOUT_MODE == "manual" || $INCREMENTAL_ROLLOUT_ENABLED'
# when: manual
# .timed_rollout_template: &timed_rollout_template
# <<: *rollout_template
# rules:
# - if: '$CI_DEPLOY_FREEZE != null'
# when: never
# - if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
# when: never
# - if: '$INCREMENTAL_ROLLOUT_MODE == "manual"'
# when: never
# - if: '$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
# when: never
# - if: '$INCREMENTAL_ROLLOUT_MODE == "timed"'
# when: delayed
# start_in: 5 minutes
# timed rollout 10%:
# <<: *timed_rollout_template
# stage: incremental rollout 10%
# variables:
# ROLLOUT_PERCENTAGE: 10
# timed rollout 25%:
# <<: *timed_rollout_template
# stage: incremental rollout 25%
# variables:
# ROLLOUT_PERCENTAGE: 25
# timed rollout 50%:
# <<: *timed_rollout_template
# stage: incremental rollout 50%
# variables:
# ROLLOUT_PERCENTAGE: 50
# timed rollout 100%:
# <<: *timed_rollout_template
# <<: *production_template
# stage: incremental rollout 100%
# variables:
# ROLLOUT_PERCENTAGE: 100
# rollout 10%:
# <<: *manual_rollout_template
# variables:
# ROLLOUT_PERCENTAGE: 10
# rollout 25%:
# <<: *manual_rollout_template
# variables:
# ROLLOUT_PERCENTAGE: 25
# rollout 50%:
# <<: *manual_rollout_template
# variables:
# ROLLOUT_PERCENTAGE: 50
# rollout 100%:
# <<: *manual_rollout_template
# <<: *production_template
# allow_failure: false
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment