xref: /OK3568_Linux_fs/buildroot/support/misc/gitlab-ci.yml.in (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1.check-DEVELOPERS_base:
2    # get-developers should print just "No action specified"; if it prints
3    # anything else, it's a parse error.
4    # The initial ! is removed by YAML so we need to quote it.
5    script:
6        - "! utils/get-developers | grep -v 'No action specified'"
7
8.check-flake8_base:
9    script:
10        - make check-flake8
11
12.check-package_base:
13    script:
14        - make check-package
15
16.defconfig_check:
17    before_script:
18        - DEFCONFIG_NAME=$(echo ${CI_JOB_NAME} | sed -e 's,_check$,,g')
19    script:
20        - echo "Configure Buildroot for ${DEFCONFIG_NAME}"
21        - make ${DEFCONFIG_NAME}
22        - support/scripts/check-dotconfig.py .config configs/${DEFCONFIG_NAME}
23    artifacts:
24        when: on_failure
25        expire_in: 2 weeks
26        paths:
27            - .config
28
29.run_make: &run_make
30    |
31      make O=${OUTPUT_DIR} > >(tee build.log |grep '>>>') 2>&1 || {
32          echo 'Failed build last output'
33          tail -200 build.log
34          exit 1
35      }
36
37.defconfig_base:
38    before_script:
39        - DEFCONFIG_NAME=${CI_JOB_NAME}
40        - OUTPUT_DIR=output
41    script:
42        - echo "Configure Buildroot for ${DEFCONFIG_NAME}"
43        - make ${DEFCONFIG_NAME}
44        - ./support/scripts/check-dotconfig.py .config ./configs/${DEFCONFIG_NAME}
45        - echo 'Build buildroot'
46        - *run_make
47        - |
48            ./support/scripts/boot-qemu-image.py "${DEFCONFIG_NAME}" > >(tee runtime-test.log) 2>&1 || {
49                echo 'Failed runtime test last output'
50                tail -200 runtime-test.log
51                exit 1
52            }
53    artifacts:
54        when: always
55        expire_in: 2 weeks
56        paths:
57            - .config
58            - build.log
59            - output/images/
60            - output/build/build-time.log
61            - output/build/packages-file-list.txt
62            - output/build/*/.config
63            - runtime-test.log
64
65.runtime_test_base:
66    before_script:
67        - TEST_CASE_NAME=${CI_JOB_NAME}
68    # Keep build directories so the rootfs can be an artifact of the job. The
69    # runner will clean up those files for us.
70    # Multiply every emulator timeout by 10 to avoid sporadic failures in
71    # elastic runners.
72    script:
73        - echo "Starting runtime test ${TEST_CASE_NAME}"
74        - ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME}
75    artifacts:
76        when: always
77        expire_in: 2 weeks
78        paths:
79            - test-output/*.log
80            - test-output/*/.config
81            - test-output/*/images/*
82
83.test_pkg:
84    stage: build
85    before_script:
86        - OUTPUT_DIR=${CI_JOB_NAME}
87    script:
88        - echo "Configure Buildroot for ${OUTPUT_DIR}"
89        - make O=${OUTPUT_DIR} syncconfig
90        - make O=${OUTPUT_DIR} savedefconfig
91        - echo 'Build buildroot'
92        - *run_make
93    needs:
94        - pipeline: $PARENT_PIPELINE_ID
95          job: generate-gitlab-ci-yml
96    artifacts:
97        when: always
98        expire_in: 2 weeks
99        paths:
100            - build.log
101            - br-test-pkg/*/.config
102            - br-test-pkg/*/defconfig
103            - br-test-pkg/*/build/build-time.log
104            - br-test-pkg/*/build/packages-file-list*.txt
105