From b17bbaa072573d1290f3b59fddaf04ba5daa7ead Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Fri, 27 Jan 2017 15:01:29 +0100 Subject: [PATCH] Add review apps support --- .gitlab-ci.yml | 38 ++++++++++++- scripts/deploy-review | 122 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+), 1 deletion(-) create mode 100755 scripts/deploy-review diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d30deef00963..310a9850a502 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,6 +17,9 @@ variables: PHANTOMJS_VERSION: "2.1.1" GET_SOURCES_ATTEMPTS: "3" + # Review apps deployment domain + KUBE_DOMAIN: gitlab-review-apps.ayucloud.ovh + before_script: - source ./scripts/prepare_build.sh - cp config/gitlab.yml.example config/gitlab.yml @@ -27,6 +30,7 @@ before_script: stages: - prepare +- review - test - post-test - pages @@ -232,7 +236,7 @@ spinach 9 10 ruby21: *spinach-knapsack-ruby21 script: - bundle exec $CI_BUILD_NAME -rubocop: +rubocop: <<: *ruby-static-analysis <<: *dedicated-runner stage: test @@ -473,3 +477,35 @@ cache gems: - vendor/cache only: - master@gitlab-org/gitlab-ce + +### REVIEW APPS + +review: + image: registry.gitlab.com/gitlab-examples/kubernetes-deploy + stage: prepare + before_script: [] + cache: {} + script: + - scripts/deploy-review + environment: + name: review/$CI_BUILD_REF_NAME + url: http://$CI_ENVIRONMENT_SLUG.$KUBE_DOMAIN + on_stop: stop_review + only: + - branches@gitlab-org/gitlab-ce + +stop_review: + image: registry.gitlab.com/gitlab-examples/kubernetes-deploy + stage: review + variables: + GIT_STRATEGY: none + before_script: [] + cache: {} + script: + - command destroy + environment: + name: review/$CI_BUILD_REF_NAME + action: stop + when: manual + only: + - branches@gitlab-org/gitlab-ce diff --git a/scripts/deploy-review b/scripts/deploy-review new file mode 100755 index 000000000000..6cbab3aaf361 --- /dev/null +++ b/scripts/deploy-review @@ -0,0 +1,122 @@ +#!/bin/bash + +source "/opt/kubernetes-deploy/src/common.bash" + +export GITLAB_REVIEW_APP_IMAGE=ayufan/gitlab-development-kit + +if [[ -z "$CI_ENVIRONMENT_URL" ]]; then + echo "Reading CI_ENVIRONMENT_URL from .gitlab-ci.yml..." + CI_ENVIRONMENT_URL="$(ruby -ryaml -e 'puts YAML.load_file(".gitlab-ci.yml")[ENV["CI_BUILD_NAME"]]["environment"]["url"]')" + CI_ENVIRONMENT_URL="$(eval echo "$CI_ENVIRONMENT_URL")" + echo "CI_ENVIRONMENT_URL: $CI_ENVIRONMENT_URL" +fi + +ensure_deploy_variables +create_kubeconfig + +CI_ENVIRONMENT_HOSTNAME="${CI_ENVIRONMENT_URL}" +CI_ENVIRONMENT_HOSTNAME="${CI_ENVIRONMENT_HOSTNAME/http:\/\//}" +CI_ENVIRONMENT_HOSTNAME="${CI_ENVIRONMENT_HOSTNAME/https:\/\//}" + +cat <