--- 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@leap/leap_se - branches@varac/leap_se - branches@kwadronaut/leap_se - branches@micah/leap_se - branches@elijah/leap_se - branches@meskio/leap_se - branches@drebs/leap_se 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@leap/leap_se - branches@kwadronaut/leap_se - branches@varac/leap_se - branches@micah/leap_se - branches@elijah/leap_se - branches@meskio/leap_se - branches@drebs/leap_se except: - master production: image: 0xacab.org:4567/leap/docker/ruby:stretch_amd64 stage: production environment: name: production only: - master@leap/leap_se before_script: # install ssh-agent - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' # run ssh-agent - eval $(ssh-agent -s) # add ssh key stored in SSH_PRIVATE_KEY variable to the agent store # see https://gitlab.com/gitlab-org/gitlab-ee/issues/2940 for fixing # broken line endings - ssh-add <(echo "$SSH_PRIVATE_KEY" | sed 's/\r$//') script: - apt-get update - apt-get install -y --no-install-recommends capistrano - cap deploy