blob: 2160d0cd2429870b1895d7e60b3602a5b87efba2 (
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
---
image: 0xacab.org:4567/leap/docker/ruby:latest
# This is for caching the gems not only between the stages, but also
# persistent on the gitlab-runner so we don't need to install from
# scratch on every pipeline
cache:
key: "global_platform_cache_between_pipelines"
untracked: true
paths:
- tests/platform-ci/vendor/
before_script:
- cd tests/platform-ci
# Check if running locally ($CI_PROJECT_ID is 0 then) and run setup.sh in
# this case
- if [ "$CI_PROJECT_ID" = "0" ]; then ./setup.sh; fi
stages:
- setup
- syntax
- deploy
setup:
stage: setup
script:
- ./setup.sh
lint:
stage: syntax
script:
- su -c '/usr/local/bin/bundle exec rake lint' cirunner
syntax:
stage: syntax
script:
- su -c '/usr/local/bin/bundle exec rake syntax' cirunner
validate:
stage: syntax
script:
- su -c '/usr/local/bin/bundle exec rake validate' cirunner
templates:
stage: syntax
script:
- su -c '/usr/local/bin/bundle exec rake templates' cirunner
catalog:
stage: syntax
script:
- su -c '/usr/local/bin/bundle exec rake catalog' cirunner
deploy_test:jessie:master:
stage: deploy
except:
- master
- stretch
script:
- su -c 'set -o pipefail; stdbuf -oL -eL ./ci-build.sh | ts' cirunner
deploy_test:jessie:staging:
stage: deploy
except:
- stretch
variables:
COMPONENT: "staging"
script:
- su -c 'set -o pipefail; stdbuf -oL -eL ./ci-build.sh | ts' cirunner
deploy_test:stretch:master:
image: 0xacab.org:4567/leap/docker/ruby:stretch_amd64
stage: deploy
only:
- stretch
allow_failure: true
script:
- su -c 'set -o pipefail; stdbuf -oL -eL ./ci-build.sh | ts' cirunner
deploy_test:stretch:staging:
image: 0xacab.org:4567/leap/docker/ruby:stretch_amd64
stage: deploy
only:
- stretch
allow_failure: true
variables:
COMPONENT: "staging"
script:
- su -c 'set -o pipefail; stdbuf -oL -eL ./ci-build.sh | ts' cirunner
# However, sometimes it's important to have a way of triggering a deploy
# from scratch manually even from the master branch, when i.e. new packages
# got uploaded to the master component of the platform deb repo.
deploy_test:manual:
stage: deploy
only:
- master
when: manual
allow_failure: false
script:
- su -c 'set -o pipefail; stdbuf -oL -eL ./ci-build.sh | ts' cirunner
# Test upgrades from the latetest release to latest HEAD
upgrade_test:
stage: deploy
script:
# Allow unpriviledged user to checkout last release of leap_platform
- chown cirunner:cirunner -R ../..
- su -c 'set -o pipefail; stdbuf -oL -eL ./ci-build.sh | ts' cirunner
# Latest job will only run on the master branch, which means all merge requests
# that are created from branches don't get to deploy to the latest-ci server.
# When a merge request is merged, then the latest job will deploy the code to
# the latest provider, and the deployment will be recorded in an environment
# named 'latest'
ci.leap.se:
stage: deploy
environment:
name: staging
only:
- master@leap/platform
script:
- >
su -c '/usr/bin/unbuffer /bin/bash -o pipefail ./ci-build.sh |
/usr/bin/ts' cirunner
demo.bitmask.net:
stage: deploy
environment:
name: production/demo/vpn
only:
- master
when: manual
script:
- >
su -c '/usr/bin/unbuffer /bin/bash -o pipefail ./ci-build.sh |
/usr/bin/ts' cirunner
mail.bitmask.net:
stage: deploy
environment:
name: production/demo/mail
only:
- master
when: manual
script:
- >
su -c '/usr/bin/unbuffer /bin/bash -o pipefail ./ci-build.sh |
/usr/bin/ts' cirunner
|