summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml.in
blob: 0855bffb7919faa5fbe947d6e229504a4eb922a6 (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
# 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 gcc-multilib
        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

check-DEVELOPERS:
    script:
        - ! utils/get-developers | grep -v 'No action specified'

.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