blob: 0a6e14f55808f89e1024769c5588be523cb4907d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
---
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
|