-
Notifications
You must be signed in to change notification settings - Fork 23
/
.gitlab-ci.yml
222 lines (195 loc) · 5.27 KB
/
.gitlab-ci.yml
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
# This file calls one sub-pipeline for each sample
# Each sample has one .gitlab-ci.yml on its own sub-directory
# those samples are included from here
# Shared scripts are in .gitlab-ci-scripts.yml and included in each sample
variables:
# On local runner setup over VPN, fetch may fail with many jobs in parallel
# see https://docs.gitlab.com/ee/ci/runners/configure_runners.html#job-stages-attempts
GET_SOURCES_ATTEMPTS: 5
default:
# retry failed jobs, since Docker is not very stable when running many jobs in parallel
retry: 2
# Only run branch pipelines
include:
- template: 'Workflows/Branch-Pipelines.gitlab-ci.yml'
stages:
# Trigger samples child pipelines
- build
# Final job, always run even if no child pipelines run
- end
.pass-torizon-containers-variable:
rules:
- if: $CI_PIPELINE_SOURCE == "pipeline"
# This case is selected when samples' pipeline is triggered by
# torizon-containers one. Since we trigger each sample pipeline
# separately, we need to pass the variable received from the
# multi-project pipeline to the parent-child triggered pipeline.
variables:
TORIZON_CONTAINERS_CI_REGISTRY: "$TORIZON_CONTAINERS_CI_REGISTRY"
- if: $CI_PIPELINE_SOURCE != "pipeline"
changes:
- "$SAMPLE_FOLDER"
#### Dockerfile-base samples ####
adc-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: adc/**/*
trigger:
include: adc/.gitlab-ci.yml
strategy: depend
dbus-tools-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: dbus/tools/*
trigger:
include: dbus/tools/.gitlab-ci.yml
strategy: depend
dbus-python-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: dbus/python/*
trigger:
include: dbus/python/.gitlab-ci.yml
strategy: depend
gpio-bash-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: gpio/bash/*
trigger:
include: gpio/bash/.gitlab-ci.yml
strategy: depend
gpio-c-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: gpio/c/*
trigger:
include: gpio/c/.gitlab-ci.yml
strategy: depend
dlr-gstreamer-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: dlr-gstreamer/**/*
trigger:
include: dlr-gstreamer/.gitlab-ci.yml
strategy: depend
uart-gps-python-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: gps/python/*
trigger:
include: gps/python/.gitlab-ci.yml
strategy: depend
collectd-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: grafana/*
trigger:
include: grafana/.gitlab-ci.yml
strategy: depend
gstreamer-simple-pipeline-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: gstreamer/bash/simple-pipeline/*
trigger:
include: gstreamer/bash/simple-pipeline/.gitlab-ci.yml
nodejs-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: nodejs/*
trigger:
include: nodejs/.gitlab-ci.yml
strategy: depend
opencl-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: opencl/*
trigger:
include: opencl/.gitlab-ci.yml
strategy: depend
opencv-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: opencv/*
trigger:
include: opencv/.gitlab-ci.yml
strategy: depend
pwm-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: pwm/**/*
trigger:
include: pwm/.gitlab-ci.yml
qt5-python-qml-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: python-qml/**/*
trigger:
include: python-qml/.gitlab-ci.yml
strategy: depend
uart-sht31-flask-app-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: sht31/flaskapp/**/*
trigger:
include: sht31/flaskapp/.gitlab-ci.yml
strategy: depend
uart-sht31-influxdb-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: sht31/sht31-influxdb/**/*
trigger:
include: sht31/sht31-influxdb/.gitlab-ci.yml
uart-sht31-kiosk-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: sht31/kiosk/*
trigger:
include: sht31/kiosk/.gitlab-ci.yml
strategy: depend
tflite-basic-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: tflite/tflite-basic/*
trigger:
include: tflite/tflite-basic/.gitlab-ci.yml
strategy: depend
tflite-rtsp-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: tflite/tflite-rtsp/**/*
trigger:
include: tflite/tflite-rtsp/.gitlab-ci.yml
strategy: depend
weather-jobs:
stage: build
extends: .pass-torizon-containers-variable
variables:
SAMPLE_FOLDER: weather/**/*
trigger:
include: weather/.gitlab-ci.yml
strategy: depend
# Run this job even if no other job is added to the pipeline
# It prevents commits without a job
final-job:
stage: end
script:
- echo "All jobs were run"