From 9293398b4bf11c9641eeab03d8e1bf2049fa2b65 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 25 Jan 2018 10:00:10 -0500 Subject: setup review app --- .gitlab-ci.yml | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) (limited to '.gitlab-ci.yml') diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9fdbaad..493ae68 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,62 @@ --- -image: 0xacab.org:4567/leap/docker/ruby:stretch_amd64 -deploy: +variables: + OPENSHIFT_SERVER: hexacab.org:8443 + OPENSHIFT_DOMAIN: apps.hexacab.org + PROJECT_NAME: leapse + # Configure this variable in Secure Variables: + # OPENSHIFT_TOKEN: my.openshift.token + +stages: + - review + - production + - cleanup + +.deploy: &deploy + image: ayufan/openshift-cli + before_script: + - oc login "${OPENSHIFT_SERVER}" --token="${OPENSHIFT_TOKEN}" + - oc project "${PROJECT_NAME}-${CI_PROJECT_ID}" 2> /dev/null || oc new-project "${PROJECT_NAME}-${CI_PROJECT_ID}" + script: + - "oc get services ${APP} 2> /dev/null || oc new-app ${CI_REPOSITORY_URL}#${CI_COMMIT_REF_NAME} --name=${APP} --strategy=docker && sleep 3 && oc logs -f bc/${APP}" + - "oc status -v" + - "oc expose dc ${APP} --port=8080 && oc expose service ${APP} --port=8080 --hostname=${PROJECT_NAME}-${CI_ENVIRONMENT_SLUG}.${OPENSHIFT_DOMAIN}" + +review: + <<: *deploy + stage: review + variables: + APP: review-$CI_COMMIT_REF_NAME + APP_HOST: $PROJECT_NAME-$CI_ENVIRONMENT_SLUG.$OPENSHIFT_DOMAIN + environment: + name: review/$CI_COMMIT_REF_NAME + url: http://$PROJECT_NAME-$CI_ENVIRONMENT_SLUG.$OPENSHIFT_DOMAIN + on_stop: stop-review + only: + - branches + except: + - master + +stop-review: + <<: *deploy + stage: cleanup + script: + - oc delete all -l "app=$APP" + when: manual + variables: + APP: review-$CI_COMMIT_REF_NAME + GIT_STRATEGY: none + environment: + name: review/$CI_COMMIT_REF_NAME + action: stop + only: + - branches + except: + - master + +production: + image: debian:stretch + stage: production environment: name: production only: @@ -19,3 +74,4 @@ deploy: - apt-get update - apt-get install -y --no-install-recommends capistrano - cap deploy + -- cgit v1.2.3