diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000..4cfe9df524 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,190 @@ +# 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: debian:stable + +before_script: + - dpkg --add-architecture i386 + # The container has no package lists, so need to update first + - apt-get update -qq + - apt-get install -y -qq --no-install-recommends + build-essential locales bc ca-certificates file rsync + git bzr cvs mercurial subversion libc6:i386 unzip wget cpio + # To be able to generate a toolchain with locales, enable one UTF-8 locale + - sed -i 's/# \(en_US.UTF-8\)/\1/' /etc/locale.gen + - /usr/sbin/locale-gen + +.defconfig_script: &defconfig_script + - echo 'Configure Buildroot' + - make ${CI_BUILD_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 + +.defconfig: &defconfig + # Running the defconfigs for every push is too much, so limit to + # explicit triggers through the API. + only: + - triggers + - tags + 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 + +acmesystems_aria_g25_128mb_defconfig: *defconfig +acmesystems_aria_g25_256mb_defconfig: *defconfig +acmesystems_arietta_g25_128mb_defconfig: *defconfig +acmesystems_arietta_g25_256mb_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 +armadeus_apf9328_defconfig: *defconfig +at91sam9260eknf_defconfig: *defconfig +at91sam9g20dfc_defconfig: *defconfig +at91sam9g45m10ek_defconfig: *defconfig +at91sam9rlek_defconfig: *defconfig +at91sam9x5ek_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 +beagleboardx15_defconfig: *defconfig +beaglebone_defconfig: *defconfig +beaglebone_qt5_defconfig: *defconfig +chromebook_snow_defconfig: *defconfig +ci20_defconfig: *defconfig +cubieboard2_defconfig: *defconfig +firefly_rk3288_defconfig: *defconfig +firefly_rk3288_demo_defconfig: *defconfig +freescale_imx28evk_defconfig: *defconfig +freescale_imx31_3stack_defconfig: *defconfig +freescale_imx6dlsabreauto_defconfig: *defconfig +freescale_imx6dlsabresd_defconfig: *defconfig +freescale_imx6qsabreauto_defconfig: *defconfig +freescale_imx6qsabresd_defconfig: *defconfig +freescale_imx6sololiteevk_defconfig: *defconfig +freescale_imx6sxsabresd_defconfig: *defconfig +freescale_imx6ulevk_defconfig: *defconfig +freescale_imx7dsabresd_defconfig: *defconfig +freescale_mpc8315erdb_defconfig: *defconfig +freescale_p1010rdb_pa_defconfig: *defconfig +galileo_defconfig: *defconfig +gdb_bfin_bf512_defconfig: *defconfig +grinn_chiliboard_defconfig: *defconfig +grinn_liteboard_defconfig: *defconfig +imx23evk_defconfig: *defconfig +imx6q-sabresd_defconfig: *defconfig +imx6ulpico_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_neo_defconfig: *defconfig +nexbox_a95x_defconfig: *defconfig +nitrogen6sx_defconfig: *defconfig +nitrogen6x_defconfig: *defconfig +nitrogen7_defconfig: *defconfig +odroidc2_defconfig: *defconfig +olimex_a20_olinuxino_lime2_defconfig: *defconfig +olimex_a20_olinuxino_lime_defconfig: *defconfig +olimex_a20_olinuxino_lime_mali_defconfig: *defconfig +olimex_a20_olinuxino_micro_defconfig: *defconfig +olimex_imx233_olinuxino_defconfig: *defconfig +openblocks_a6_defconfig: *defconfig +orangepi_one_defconfig: *defconfig +orangepi_pc_defconfig: *defconfig +pandaboard_defconfig: *defconfig +pc_x86_64_bios_defconfig: *defconfig +pc_x86_64_efi_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_pseries_defconfig: *defconfig +qemu_ppc_g3beige_defconfig: *defconfig +qemu_ppc_mpc8544ds_defconfig: *defconfig +qemu_ppc_virtex_ml507_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 +raspberrypi2_defconfig: *defconfig +raspberrypi3_defconfig: *defconfig +raspberrypi_defconfig: *defconfig +riotboard_defconfig: *defconfig +roseapplepi_defconfig: *defconfig +s6lx9_microboard_defconfig: *defconfig +sheevaplug_defconfig: *defconfig +snps_aarch64_vdk_defconfig: *defconfig +snps_archs38_vdk_defconfig: *defconfig +snps_archs38_zebu_defconfig: *defconfig +snps_axs101_defconfig: *defconfig +snps_axs103_defconfig: *defconfig +stm32f429_disco_defconfig: *defconfig +stm32f469_disco_defconfig: *defconfig +telit_evk_pro3_defconfig: *defconfig +toradex_apalis_imx6_defconfig: *defconfig +ts4800_defconfig: *defconfig +ts4900_defconfig: *defconfig +ts5x00_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 diff --git a/.gitlab-ci.yml.in b/.gitlab-ci.yml.in new file mode 100644 index 0000000000..b4a6a3fb28 --- /dev/null +++ b/.gitlab-ci.yml.in @@ -0,0 +1,52 @@ +# 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: debian:stable + +before_script: + - dpkg --add-architecture i386 + # The container has no package lists, so need to update first + - apt-get update -qq + - apt-get install -y -qq --no-install-recommends + build-essential locales bc ca-certificates file rsync + git bzr cvs mercurial subversion libc6:i386 unzip wget cpio + # To be able to generate a toolchain with locales, enable one UTF-8 locale + - sed -i 's/# \(en_US.UTF-8\)/\1/' /etc/locale.gen + - /usr/sbin/locale-gen + +.defconfig_script: &defconfig_script + - echo 'Configure Buildroot' + - make ${CI_BUILD_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 + +.defconfig: &defconfig + # Running the defconfigs for every push is too much, so limit to + # explicit triggers through the API. + only: + - triggers + - tags + 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 + diff --git a/Makefile b/Makefile index da1d7d2634..fb2c235293 100644 --- a/Makefile +++ b/Makefile @@ -1068,6 +1068,9 @@ release: print-version: @echo $(BR2_VERSION_FULL) +.gitlab-ci.yml: .gitlab-ci.yml.in configs/*_defconfig + (cd configs; LC_ALL=C ls -1 *_defconfig) | sed 's/$$/: *defconfig/' | cat $< - > $@ + include docs/manual/manual.mk -include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(dir)/docs/*/*.mk)