summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: 412ef49b7580cefa444ebc2cb4c2deb7ceb4775e (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
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
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
# Configuration for Gitlab-CI.
# Builds appear on https://gitlab.com/buildroot.org/buildroot/pipelines
# The .gitlab-ci.yml file is generated from .gitlab-ci.yml.in.
# It needs to be regenerated every time a defconfig is added, using
# "make .gitlab-ci.yml".

image: buildroot/base:20180318.1724

.defconfig_script: &defconfig_script
    - echo 'Configure Buildroot'
    - make ${CI_JOB_NAME}
    - echo 'Build buildroot'
    - |
        make > >(tee build.log |grep '>>>') 2>&1 || {
            echo 'Failed build last output'
            tail -200 build.log
            exit 1
        }

check-gitlab-ci.yml:
    script:
        - mv .gitlab-ci.yml .gitlab-ci.yml.orig
        - make .gitlab-ci.yml
        - diff -u .gitlab-ci.yml.orig .gitlab-ci.yml

check-DEVELOPERS:
    # get-developers should print just "No action specified"; if it prints
    # anything else, it's a parse error.
    # The initial ! is removed by YAML so we need to quote it.
    script:
        - "! utils/get-developers | grep -v 'No action specified'"

check-flake8:
    before_script:
        # Help flake8 to find the Python files without .py extension.
        - find * -type f -name '*.py' > files.txt
        - find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
        - sort -u files.txt | tee files.processed
    script:
        - python -m flake8 --statistics --count $(cat files.processed)
    after_script:
        - wc -l files.processed

check-package:
    script:
        - make check-package

.defconfig: &defconfig
    # Running the defconfigs for every push is too much, so limit to
    # explicit triggers through the API.
    only:
        - triggers
        - tags
        - /-defconfigs$/
    script: *defconfig_script
    artifacts:
        when: always
        expire_in: 2 weeks
        paths:
            - build.log
            - output/images/
            - output/build/build-time.log
            - output/build/packages-file-list.txt

.runtime_test: &runtime_test
    # Running the runtime tests for every push is too much, so limit to
    # explicit triggers through the API.
    only:
        - triggers
        - tags
        - /-runtime-tests$/
    # Keep build directories so the rootfs can be an artifact of the job. The
    # runner will clean up those files for us.
    # Multiply every emulator timeout by 10 to avoid sporadic failures in
    # elastic runners.
    script: ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${CI_JOB_NAME}
    artifacts:
        when: always
        expire_in: 2 weeks
        paths:
            - test-output/*.log
            - test-output/*/.config
            - test-output/*/images/*
aarch64_efi_defconfig: *defconfig
acmesystems_aria_g25_128mb_defconfig: *defconfig
acmesystems_aria_g25_256mb_defconfig: *defconfig
acmesystems_arietta_g25_128mb_defconfig: *defconfig
acmesystems_arietta_g25_256mb_defconfig: *defconfig
amarula_a64_relic_defconfig: *defconfig
amarula_vyasa_rk3288_defconfig: *defconfig
arcturus_ucls1012a_defconfig: *defconfig
arcturus_ucp1020_defconfig: *defconfig
arm_foundationv8_defconfig: *defconfig
arm_juno_defconfig: *defconfig
armadeus_apf27_defconfig: *defconfig
armadeus_apf28_defconfig: *defconfig
armadeus_apf51_defconfig: *defconfig
asus_tinker_rk3288_defconfig: *defconfig
at91sam9260eknf_defconfig: *defconfig
at91sam9g20dfc_defconfig: *defconfig
at91sam9g45m10ek_defconfig: *defconfig
at91sam9rlek_defconfig: *defconfig
at91sam9x5ek_defconfig: *defconfig
at91sam9x5ek_dev_defconfig: *defconfig
at91sam9x5ek_mmc_defconfig: *defconfig
at91sam9x5ek_mmc_dev_defconfig: *defconfig
atmel_sama5d27_som1_ek_mmc_dev_defconfig: *defconfig
atmel_sama5d2_xplained_mmc_defconfig: *defconfig
atmel_sama5d2_xplained_mmc_dev_defconfig: *defconfig
atmel_sama5d3_xplained_defconfig: *defconfig
atmel_sama5d3_xplained_dev_defconfig: *defconfig
atmel_sama5d3_xplained_mmc_defconfig: *defconfig
atmel_sama5d3_xplained_mmc_dev_defconfig: *defconfig
atmel_sama5d3xek_defconfig: *defconfig
atmel_sama5d4_xplained_defconfig: *defconfig
atmel_sama5d4_xplained_dev_defconfig: *defconfig
atmel_sama5d4_xplained_mmc_defconfig: *defconfig
atmel_sama5d4_xplained_mmc_dev_defconfig: *defconfig
bananapi_m1_defconfig: *defconfig
bananapi_m2_plus_defconfig: *defconfig
bananapi_m2_ultra_defconfig: *defconfig
bananapi_m64_defconfig: *defconfig
bananapro_defconfig: *defconfig
beagleboardx15_defconfig: *defconfig
beaglebone_defconfig: *defconfig
beaglebone_qt5_defconfig: *defconfig
chromebook_snow_defconfig: *defconfig
ci20_defconfig: *defconfig
csky_gx6605s_defconfig: *defconfig
cubieboard2_defconfig: *defconfig
engicam_imx6qdl_icore_defconfig: *defconfig
engicam_imx6qdl_icore_qt5_defconfig: *defconfig
engicam_imx6qdl_icore_rqs_defconfig: *defconfig
engicam_imx6ul_geam_defconfig: *defconfig
engicam_imx6ul_isiot_defconfig: *defconfig
freescale_imx28evk_defconfig: *defconfig
freescale_imx6dlsabreauto_defconfig: *defconfig
freescale_imx6dlsabresd_defconfig: *defconfig
freescale_imx6qsabreauto_defconfig: *defconfig
freescale_imx6qsabresd_defconfig: *defconfig
freescale_imx6sxsabresd_defconfig: *defconfig
freescale_imx7dsabresd_defconfig: *defconfig
freescale_imx8mqevk_defconfig: *defconfig
freescale_p1025twr_defconfig: *defconfig
freescale_t1040d4rdb_defconfig: *defconfig
friendlyarm_nanopi_a64_defconfig: *defconfig
friendlyarm_nanopi_neo2_defconfig: *defconfig
galileo_defconfig: *defconfig
grinn_chiliboard_defconfig: *defconfig
grinn_liteboard_defconfig: *defconfig
imx23evk_defconfig: *defconfig
imx6-sabreauto_defconfig: *defconfig
imx6-sabresd_defconfig: *defconfig
imx6-sabresd_qt5_defconfig: *defconfig
imx6slevk_defconfig: *defconfig
imx6sx-sdb_defconfig: *defconfig
imx6ulevk_defconfig: *defconfig
imx6ulpico_defconfig: *defconfig
imx7d-sdb_defconfig: *defconfig
imx7dpico_defconfig: *defconfig
lego_ev3_defconfig: *defconfig
linksprite_pcduino_defconfig: *defconfig
minnowboard_max-graphical_defconfig: *defconfig
minnowboard_max_defconfig: *defconfig
mx25pdk_defconfig: *defconfig
mx51evk_defconfig: *defconfig
mx53loco_defconfig: *defconfig
mx6cubox_defconfig: *defconfig
mx6sx_udoo_neo_defconfig: *defconfig
mx6udoo_defconfig: *defconfig
nanopi_m1_defconfig: *defconfig
nanopi_m1_plus_defconfig: *defconfig
nanopi_neo_defconfig: *defconfig
nexbox_a95x_defconfig: *defconfig
nitrogen6sx_defconfig: *defconfig
nitrogen6x_defconfig: *defconfig
nitrogen7_defconfig: *defconfig
nitrogen8m_defconfig: *defconfig
odroidc2_defconfig: *defconfig
odroidxu4_defconfig: *defconfig
olimex_a10_olinuxino_lime_defconfig: *defconfig
olimex_a13_olinuxino_defconfig: *defconfig
olimex_a20_olinuxino_lime2_defconfig: *defconfig
olimex_a20_olinuxino_lime_defconfig: *defconfig
olimex_a20_olinuxino_lime_legacy_defconfig: *defconfig
olimex_a20_olinuxino_micro_defconfig: *defconfig
olimex_a64_olinuxino_defconfig: *defconfig
olimex_imx233_olinuxino_defconfig: *defconfig
openblocks_a6_defconfig: *defconfig
orangepi_lite_defconfig: *defconfig
orangepi_one_defconfig: *defconfig
orangepi_pc2_defconfig: *defconfig
orangepi_pc_defconfig: *defconfig
orangepi_pc_plus_defconfig: *defconfig
orangepi_plus_defconfig: *defconfig
orangepi_prime_defconfig: *defconfig
orangepi_win_defconfig: *defconfig
orangepi_zero_defconfig: *defconfig
orangepi_zero_plus2_defconfig: *defconfig
pandaboard_defconfig: *defconfig
pc_x86_64_bios_defconfig: *defconfig
pc_x86_64_efi_defconfig: *defconfig
pine64_defconfig: *defconfig
pine64_sopine_defconfig: *defconfig
qemu_aarch64_virt_defconfig: *defconfig
qemu_arm_versatile_defconfig: *defconfig
qemu_arm_versatile_nommu_defconfig: *defconfig
qemu_arm_vexpress_defconfig: *defconfig
qemu_m68k_mcf5208_defconfig: *defconfig
qemu_m68k_q800_defconfig: *defconfig
qemu_microblazebe_mmu_defconfig: *defconfig
qemu_microblazeel_mmu_defconfig: *defconfig
qemu_mips32r2_malta_defconfig: *defconfig
qemu_mips32r2el_malta_defconfig: *defconfig
qemu_mips32r6_malta_defconfig: *defconfig
qemu_mips32r6el_malta_defconfig: *defconfig
qemu_mips64_malta_defconfig: *defconfig
qemu_mips64el_malta_defconfig: *defconfig
qemu_mips64r6_malta_defconfig: *defconfig
qemu_mips64r6el_malta_defconfig: *defconfig
qemu_nios2_10m50_defconfig: *defconfig
qemu_or1k_defconfig: *defconfig
qemu_ppc64_e5500_defconfig: *defconfig
qemu_ppc64_pseries_defconfig: *defconfig
qemu_ppc64le_pseries_defconfig: *defconfig
qemu_ppc_g3beige_defconfig: *defconfig
qemu_ppc_mpc8544ds_defconfig: *defconfig
qemu_ppc_virtex_ml507_defconfig: *defconfig
qemu_riscv64_virt_defconfig: *defconfig
qemu_sh4_r2d_defconfig: *defconfig
qemu_sh4eb_r2d_defconfig: *defconfig
qemu_sparc64_sun4u_defconfig: *defconfig
qemu_sparc_ss10_defconfig: *defconfig
qemu_x86_64_defconfig: *defconfig
qemu_x86_defconfig: *defconfig
qemu_xtensa_lx60_defconfig: *defconfig
qemu_xtensa_lx60_nommu_defconfig: *defconfig
raspberrypi0_defconfig: *defconfig
raspberrypi0w_defconfig: *defconfig
raspberrypi2_defconfig: *defconfig
raspberrypi3_64_defconfig: *defconfig
raspberrypi3_defconfig: *defconfig
raspberrypi3_qt5we_defconfig: *defconfig
raspberrypi_defconfig: *defconfig
riotboard_defconfig: *defconfig
roseapplepi_defconfig: *defconfig
s6lx9_microboard_defconfig: *defconfig
sheevaplug_defconfig: *defconfig
snps_aarch64_vdk_defconfig: *defconfig
snps_arc700_axs101_defconfig: *defconfig
snps_archs38_axs103_defconfig: *defconfig
snps_archs38_haps_defconfig: *defconfig
snps_archs38_hsdk_defconfig: *defconfig
snps_archs38_vdk_defconfig: *defconfig
socrates_cyclone5_defconfig: *defconfig
solidrun_clearfog_defconfig: *defconfig
solidrun_macchiatobin_mainline_defconfig: *defconfig
solidrun_macchiatobin_marvell_defconfig: *defconfig
stm32f429_disco_defconfig: *defconfig
stm32f469_disco_defconfig: *defconfig
toradex_apalis_imx6_defconfig: *defconfig
ts4800_defconfig: *defconfig
ts4900_defconfig: *defconfig
ts5500_defconfig: *defconfig
ts7680_defconfig: *defconfig
wandboard_defconfig: *defconfig
warp7_defconfig: *defconfig
warpboard_defconfig: *defconfig
zynq_microzed_defconfig: *defconfig
zynq_zc706_defconfig: *defconfig
zynq_zed_defconfig: *defconfig
zynq_zybo_defconfig: *defconfig
zynqmp_zcu106_defconfig: *defconfig
tests.boot.test_atf.TestATFAllwinner: *runtime_test
tests.boot.test_atf.TestATFMarvell: *runtime_test
tests.boot.test_atf.TestATFVexpress: *runtime_test
tests.core.test_file_capabilities.TestFileCapabilities: *runtime_test
tests.core.test_hardening.TestFortifyConserv: *runtime_test
tests.core.test_hardening.TestFortifyNone: *runtime_test
tests.core.test_hardening.TestRelro: *runtime_test
tests.core.test_hardening.TestRelroPartial: *runtime_test
tests.core.test_hardening.TestSspNone: *runtime_test
tests.core.test_hardening.TestSspStrong: *runtime_test
tests.core.test_post_scripts.TestPostScripts: *runtime_test
tests.core.test_rootfs_overlay.TestRootfsOverlay: *runtime_test
tests.core.test_timezone.TestGlibcAllTimezone: *runtime_test
tests.core.test_timezone.TestGlibcNonDefaultLimitedTimezone: *runtime_test
tests.core.test_timezone.TestNoTimezone: *runtime_test
tests.fs.test_ext.TestExt2: *runtime_test
tests.fs.test_ext.TestExt2r1: *runtime_test
tests.fs.test_ext.TestExt3: *runtime_test
tests.fs.test_ext.TestExt4: *runtime_test
tests.fs.test_f2fs.TestF2FS: *runtime_test
tests.fs.test_iso9660.TestIso9660Grub2External: *runtime_test
tests.fs.test_iso9660.TestIso9660Grub2ExternalCompress: *runtime_test
tests.fs.test_iso9660.TestIso9660Grub2Internal: *runtime_test
tests.fs.test_iso9660.TestIso9660SyslinuxExternal: *runtime_test
tests.fs.test_iso9660.TestIso9660SyslinuxExternalCompress: *runtime_test
tests.fs.test_iso9660.TestIso9660SyslinuxInternal: *runtime_test
tests.fs.test_jffs2.TestJffs2: *runtime_test
tests.fs.test_squashfs.TestSquashfs: *runtime_test
tests.fs.test_ubi.TestUbi: *runtime_test
tests.fs.test_yaffs2.TestYaffs2: *runtime_test
tests.init.test_busybox.TestInitSystemBusyboxRo: *runtime_test
tests.init.test_busybox.TestInitSystemBusyboxRoNet: *runtime_test
tests.init.test_busybox.TestInitSystemBusyboxRw: *runtime_test
tests.init.test_busybox.TestInitSystemBusyboxRwNet: *runtime_test
tests.init.test_none.TestInitSystemNone: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRoFull: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRoIfupdown: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRoNetworkd: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRwFull: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRwIfupdown: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRwNetworkd: *runtime_test
tests.package.test_dropbear.TestDropbear: *runtime_test
tests.package.test_ipython.TestIPythonPy2: *runtime_test
tests.package.test_ipython.TestIPythonPy3: *runtime_test
tests.package.test_perl.TestPerl: *runtime_test
tests.package.test_perl_class_load.TestPerlClassLoad: *runtime_test
tests.package.test_perl_gdgraph.TestPerlGDGraph: *runtime_test
tests.package.test_perl_libwww_perl.TestPerllibwwwperl: *runtime_test
tests.package.test_perl_mail_dkim.TestPerlMailDKIM: *runtime_test
tests.package.test_perl_x10.TestPerlX10: *runtime_test
tests.package.test_perl_xml_libxml.TestPerlXMLLibXML: *runtime_test
tests.package.test_python.TestPython2: *runtime_test
tests.package.test_python.TestPython3: *runtime_test
tests.package.test_python_argh.TestPythonPy2Argh: *runtime_test
tests.package.test_python_argh.TestPythonPy3Argh: *runtime_test
tests.package.test_python_attrs.TestPythonPy2Attrs: *runtime_test
tests.package.test_python_attrs.TestPythonPy3Attrs: *runtime_test
tests.package.test_python_autobahn.TestPythonPy2Autobahn: *runtime_test
tests.package.test_python_autobahn.TestPythonPy3Autobahn: *runtime_test
tests.package.test_python_automat.TestPythonPy2Automat: *runtime_test
tests.package.test_python_automat.TestPythonPy3Automat: *runtime_test
tests.package.test_python_bitstring.TestPythonPy2Bitstring: *runtime_test
tests.package.test_python_bitstring.TestPythonPy3Bitstring: *runtime_test
tests.package.test_python_cbor.TestPythonPy2Cbor: *runtime_test
tests.package.test_python_cbor.TestPythonPy3Cbor: *runtime_test
tests.package.test_python_click.TestPythonPy2Click: *runtime_test
tests.package.test_python_click.TestPythonPy3Click: *runtime_test
tests.package.test_python_constantly.TestPythonPy2Constantly: *runtime_test
tests.package.test_python_constantly.TestPythonPy3Constantly: *runtime_test
tests.package.test_python_crossbar.TestPythonPy3Crossbar: *runtime_test
tests.package.test_python_cryptography.TestPythonPy2Cryptography: *runtime_test
tests.package.test_python_cryptography.TestPythonPy3Cryptography: *runtime_test
tests.package.test_python_incremental.TestPythonPy2Incremental: *runtime_test
tests.package.test_python_incremental.TestPythonPy3Incremental: *runtime_test
tests.package.test_python_passlib.TestPythonPy2Passlib: *runtime_test
tests.package.test_python_passlib.TestPythonPy3Passlib: *runtime_test
tests.package.test_python_pexpect.TestPythonPy2Pexpect: *runtime_test
tests.package.test_python_pexpect.TestPythonPy3Pexpect: *runtime_test
tests.package.test_python_pynacl.TestPythonPy2Pynacl: *runtime_test
tests.package.test_python_pynacl.TestPythonPy3Pynacl: *runtime_test
tests.package.test_python_pyyaml.TestPythonPy2Pyyaml: *runtime_test
tests.package.test_python_pyyaml.TestPythonPy3Pyyaml: *runtime_test
tests.package.test_python_service_identity.TestPythonPy2ServiceIdentity: *runtime_test
tests.package.test_python_service_identity.TestPythonPy3ServiceIdentity: *runtime_test
tests.package.test_python_subprocess32.TestPythonPy2Subprocess32: *runtime_test
tests.package.test_python_treq.TestPythonPy2Treq: *runtime_test
tests.package.test_python_treq.TestPythonPy3Treq: *runtime_test
tests.package.test_python_twisted.TestPythonPy2Twisted: *runtime_test
tests.package.test_python_twisted.TestPythonPy3Twisted: *runtime_test
tests.package.test_python_txaio.TestPythonPy2Txaio: *runtime_test
tests.package.test_python_txaio.TestPythonPy3Txaio: *runtime_test
tests.package.test_python_txtorcon.TestPythonPy2Txtorcon: *runtime_test
tests.package.test_python_txtorcon.TestPythonPy3Txtorcon: *runtime_test
tests.package.test_python_ubjson.TestPythonPy2Ubjson: *runtime_test
tests.package.test_python_ubjson.TestPythonPy3Ubjson: *runtime_test
tests.package.test_rust.TestRust: *runtime_test
tests.package.test_rust.TestRustBin: *runtime_test
tests.package.test_syslog_ng.TestSyslogNg: *runtime_test
tests.toolchain.test_external.TestExternalToolchainBuildrootMusl: *runtime_test
tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc: *runtime_test
tests.toolchain.test_external.TestExternalToolchainCCache: *runtime_test
tests.toolchain.test_external.TestExternalToolchainCtngMusl: *runtime_test
tests.toolchain.test_external.TestExternalToolchainLinaroArm: *runtime_test
tests.toolchain.test_external.TestExternalToolchainSourceryArmv4: *runtime_test
tests.toolchain.test_external.TestExternalToolchainSourceryArmv5: *runtime_test
tests.toolchain.test_external.TestExternalToolchainSourceryArmv7: *runtime_test