Go to file
Romain Naour 12c7a05da1 utils/test-pkg: add gitlab-ci support
The gitlab-ci support in test-pkg allows to parallelize the test-pkg
work into several gitlab jobs. It's much faster than local serialized
testing.

To trigger this, a developer will have to add, in the latest commit of
their branch, a token on its own line, followed by a configuration
fragment, e.g.:

    test-pkg config:
    SOME_OPTION=y
    # OTHER_OPTION is not set
    SOME_VARIABLE="some value"

This configuration fragment is used as input to test-pkg.

To be able to generate one job per test to run, we need the list of
tests in the parent pipeline, and the individual .config files (one per
test) in the child pipeline. We use the newly-introduced --prepare-only
mode to test-pkg, and collect all the generated .config files as
artefacts; those are inherited in the child pipeline via the
"needs::pipeline" and "needs::job" directives. This is a bit tricky,
and is best described by the Gitlab-CI documentation [0].

We also list those .config files to generate the actual list of jobs to
run in the child pipeline.

Notes:
  - if the user provides an empty fragment, this is considered an error:
    indeed, without a fragment (and the package name), there is no way
    to know what to test;
  - if that fragment yields an empty list of tests, then there is
    nothing to test either, so that is also considered an error.

[0] https://docs.gitlab.com/ee/ci/yaml/README.html#artifact-downloads-to-child-pipelines

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[yann.morin.1998@free.fr:
  - split the change to test-pkg to its own patch
  - generate the actual yml snippet in support/scripts/generate-gitlab-ci-yml,
    listing the .config files created by test-pkg
  - some code-style-candies...
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2021-08-28 17:03:13 +02:00
arch arch: add BR2_ARCH_NEEDS_GCC_AT_LEAST_11 2021-06-20 18:46:51 +02:00
board configs/stm32f469_disco_xip_defconfig: alternative defconfig for XIP 2021-08-28 16:58:21 +02:00
boot Merge branch 'master' into next 2021-08-26 23:40:57 +02:00
configs configs/stm32f469_disco_xip_defconfig: alternative defconfig for XIP 2021-08-28 16:58:21 +02:00
docs docs/website: use lore for ml search 2021-08-26 23:09:17 +02:00
fs fs/erofs: add big pcluster support 2021-07-19 22:34:21 +02:00
linux linux: bump CIP RT kernel to version 4.19.198-cip54-rt21 2021-08-19 22:54:40 +02:00
package package/log4cxx: add libesmtp optional dependency 2021-08-28 17:00:15 +02:00
support utils/test-pkg: add gitlab-ci support 2021-08-28 17:03:13 +02:00
system system: support br2-external init systems 2020-10-14 22:48:42 +02:00
toolchain Revert "toolchain: handle toolchains with multiple ld*.so.* files" 2021-08-26 14:20:23 +02:00
utils utils/test-pkg: add mode to only prepare .config files 2021-08-28 17:01:11 +02:00
.defconfig arch: remove support for sh64 2016-09-08 22:15:15 +02:00
.flake8 Revert ".flake8: fix check for 80/132 columns" 2021-01-02 17:38:20 +01:00
.gitignore
.gitlab-ci.yml utils/test-pkg: add gitlab-ci support 2021-08-28 17:03:13 +02:00
CHANGES Update for 2021.08-rc2 2021-08-18 12:50:47 +02:00
Config.in Config.in: disable Fortify Source for microblaze 2021-08-23 23:08:05 +02:00
Config.in.legacy package/libmcrypt: drop package 2021-08-20 09:58:18 +02:00
COPYING
DEVELOPERS Merge branch 'master' into next 2021-08-26 23:40:57 +02:00
Makefile Update for 2021.08-rc2 2021-08-18 12:50:47 +02:00
Makefile.legacy Remove BR2_DEPRECATED 2016-10-15 23:14:45 +02:00
README docs: move the IRC channel away from Freenode 2021-05-29 22:16:23 +02:00

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches